記一次用WPScan輔助滲透WordPress站點
記一次用WPScan輔助滲透WordPress站點
一、什麼是WPScan?
WPScan
是一個掃描 WordPress
漏洞的黑盒子掃描器,它可以為所有 Web
開發人員掃描 WordPress
漏洞並在他們開發前找到並解決問題。我們還使用了 Nikto
,它是一款非常棒的 Web
伺服器評估工具,我們認為這個工具應該成為所有針對 WordPress
網站進行的滲透測試的一部分。 Wordpress
作為三大建站模板之一,在全世界範圍內有大量的使用者,這也導致白帽子都會去跟蹤 WordPress
的安全漏洞, Wordpress
自誕生起也出現了很多漏洞。 Wordpress
還可以使用外掛、主題。於是 Wordpress
本身很難挖掘什麼安全問題的時候,安全研究者開始研究其外掛、主題的漏洞。通過外掛、主題的漏洞去滲透 Wordpress
站點,於是 WPScan
應運而生,收集 Wordpress
的各種漏洞,形成一個 Wordpress
專用掃描器。該掃描器可以實現獲取站點使用者名稱,獲取安裝的所有外掛、主題,以及存在漏洞的外掛、主題,並提供漏洞資訊。同時還可以實現對未加防護的 Wordpress
站點暴力破解使用者名稱密碼。
WPScan已經被預安裝在以下Linux系統中:
- ofollow,noindex" target="_blank">BackBox Linux
- Kali Linux
- Pentoo
- SamuraiWTF
- BlackArch
二、WPScan的安裝和使用
由於 Windows
不支援 WPScan
。最新版本的 WPScan
可以在 Linux
或 Mac
上下載使用:
Debian/Ubuntu下安裝:
sudo apt-get install libcurl4-gnutls-dev libopenssl-ruby libxml2 libxml2-dev libxslt1-dev ruby-dev git clone https://github.com/wpscanteam/wpscan.git cd wpscan sudo gem install bundler && bundle install --without test development
Fedora下安裝:
sudo yum install gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel libcurl-devel git clone https://github.com/wpscanteam/wpscan.git cd wpscan sudo gem install bundler && bundle install --without test development
Archlinux下安裝:
pacman -Syu ruby pacman -Syu libyaml git clone https://github.com/wpscanteam/wpscan.git cd wpscan sudo gem install bundler && bundle install --without test development gem install typhoeus gem install nokogiri
MAC OSX下安裝:
git clone https://github.com/wpscanteam/wpscan.git cd wpscan sudo gem install bundler && bundle install --without test development
具體參考: https://wpscan.org/
常見引數選項:
--update更新到最新版本 --url| -u <target url>要掃描的WordPress站點. --force | -f不檢查網站執行的是不是WordPress --enumerate | -e [option(s)]列舉.
Option:
u 列舉使用者名稱,預設從1-10 u[10-20] 列舉使用者名稱,配置從10-20 p 列舉外掛 vp 只列舉有漏洞的外掛 ap 列舉所有外掛,時間較長 tt 列舉縮圖相關的檔案 t 列舉主題資訊 vt 只列舉存在漏洞的主題 at 列舉所有主題,時間較長 可以指定多個掃描選項,例:"-e tt,p" 如果沒有指定選項,預設選項為:"vt,tt,u,vp" --exclude-content-based "<regexp or string>" 當使用列舉選項時,可以使用該引數做一些過濾,基於正則或者字串,可以不寫正則分隔符,但要用單引號或雙引號包裹 --config-file | -c <config file> 使用指定的配置檔案 --user-agent | -a <User-Agent> 指定User-Agent --cookie <String> 指定cookie --random-agent | -r 使用隨機User-Agent --follow-redirection 如果目標包含一個重定向,則直接跟隨跳轉 --batch 無需使用者互動,都使用預設行為 --no-color 不要採用彩色輸出 --wp-content-dir <wp content dir> WPScan會去發現wp-content目錄,使用者可手動指定 --wp-plugins-dir <wp plugins dir> 指定wp外掛目錄,預設是wp-content/plugins --proxy <[protocol://]host:port> 設定一個代理,可以使用HTTP、SOCKS4、SOCKS4A、SOCKS5,如果未設定預設是HTTP協議 --proxy-auth <username:password> 設定代理登陸資訊 --basic-auth <username:password> 設定基礎認證資訊 --wordlist | -w <wordlist> 指定密碼字典 --username | -U <username> 指定爆破的使用者名稱 --usernames <path-to-file> 指定爆破使用者名稱字典 --threads | -t <number of threads> 指定多執行緒 --cache-ttl <cache-ttl> 設定 cache TTL. --request-timeout <request-timeout> 請求超時時間 --connect-timeout <connect-timeout> 連線超時時間 --max-threads <max-threads> 最大執行緒數 --throttle <milliseconds> 當執行緒數設定為1時,設定兩個請求之間的間隔 --help | -h 輸出幫助資訊 --verbose | -v 輸出Verbose --version 輸出當前版本
三、WPScan的輔助滲透WordPress站點演示
環境準備
- Kali Linux
- WPScan工具(Kali Linux裡面已經預裝好了)
- CentOS 7
- WordPress環境(預先在CentOS 7裡面搭建好了環境)
滲透過程
1、更新漏洞資料庫
在使用WPScan之前,先更新它的漏洞資料庫:
wpscan --update
我們直接檢視下當前版本:
2、掃描WordPress漏洞
接下來使用下面的命令來掃描可能存在的漏洞網站:
wpscan ––url [wordpress url]
這裡我直接用我自己的站點為例子進行演示
wpscan --url http://angelkitty.xin/
效果如下:
3、掃描wordpress使用者
我們可以對其使用者進行列舉:
wpscan ––url [wordpress url] –-enumerate u
4、暴力破解
wpscan ––url [wordpress url] ––wordlist [path to wordlist] ––username [username to brute force] ––threads [number of threads to use]
既然當前有兩個使用者 angel_kitty
和 test
,我們直接把兩個均枚舉出來
wpscan -u 119.23.243.4 -e u --wordlist /root/桌面/password.txt
這裡我也有個問題一直沒解決,就是用 url
去指定域名和用 username
去指定使用者均不太好使,直接就 302
調整爆出了 password
,連字典都沒去查,也不知道咋回事,查了 wpscan
的 Issue
,可能是 wpscan
升級了以後,新版本和老版本命令上有所差異,具體以後分析一下 wpscan
的原始碼,所以演示出這個效果弄了整整一天。
演示效果如下:
視訊演示
也歡迎大家關注我的bilibili賬號:Angel_Kitty,不定期傳送一些演示視訊教程
四、WordPress的防護措施
如果你想要避免WordPress使用者列表被列舉,不要把使用者名稱作為暱稱,並且不要使用已經被大眾知道的使用者名稱。最好的方式是選擇一個包含隨機字元的名字做使用者名稱並且使用其他名字作為暱稱。 WPScan
掃描 URL
來獲取使用者名稱,所以如果你不使用這個使用者名稱,你肯定不會被 WPScan
搜尋到。
防止暴力破解的最好方式是限制一個 IP
地址的嘗試登入次數。 WordPress
有很多外掛可以實現這個功能。我使用的一個外掛叫: Brute Force Login Protection
。