WPScan使用完整教程之記一次對WordPress的滲透過程
WPScan
使用完整教程之記一次對WordPress
的滲透過程
渣渣一枚,萌新一個,會划水,會喊六六
本次簡單的記錄優下自己關於WPScan滲透實戰的案例,以及對於WPScan的一些使用方法,有什麼錯誤的地方希望各位大佬指正(Orz)
一:什麼是WPScan
WPScan
是一個掃描 WordPress
漏洞的黑盒子掃描器,它可以為所有 Web
開發人員掃描 WordPress
漏洞並在他們開發前找到並解決問題。
我們還使用了 Nikto
,它是一款非常棒的Web
伺服器評估工具,我們認為這個工具應該成為所有針對 WordPress
網站進行的滲透測試的一部分。
Wordpress
作為三大建站模板之一,在全世界範圍內有大量的使用者,這也導致白帽子都會去跟蹤 WordPress
Wordpress
自誕生起
也出現了很多漏洞.Wordpress
還可以使用外掛、主題。於是Wordpress
本身很難挖掘什麼安全問題的時候,安全研究者開始研究其外掛、主題的
漏洞。通過外掛,主題的漏洞去滲透Wordpress
站點,於是WPScan
應運而生,收集 Wordpress
的各種漏洞,形成一個Wordpress
專用掃描器。
該掃描器可以實現獲取站點使用者名稱,獲取安裝的所有外掛、主題,以及存在漏洞的外掛、主題,並提供漏洞資訊。同時還可以實現對未加防護的
Wordpress
站點暴力破解使用者名稱密碼。
WPScan
已經被預安裝在以下Linux
系統中:
1: BackBox Linux
2: Kali Linux
3: Pentoo
4: SamuraiWTF
5:BlackArch
二:預備知識之WPscan
安裝與使用
由於Windows
不支援WPScan
。最新版本的WPScan
可以在Linux
或Mac
上下載使用:
在Ubuntu上安裝
sudo apt-get install libcurl4-openssl-dev libxml2 libxml2-dev libxslt1-dev ruby-dev build-essential libgmp-dev zlib1g-dev
在Debian上安裝
sudo apt-get install gcc git ruby ruby-dev libcurl4-openssl-dev make zlib1g-dev
在Fedora上安裝
sudo dnf install gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel libcurl-devel patch rpm-build
在Arch Linux上安裝
pacman -Syu ruby
pacman -Syu libyaml
在macOS上安裝
需要Apple Xcode
,命令列工具和libffi
(能夠安裝FFI gem
)具體安裝過程請點選這裡
常用引數選項:
--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 dirWPScan會去發現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 輸出當前版本
三:滲透站點演示
環境準備
kali linux
Debian 9
WPScan(linux中已經與安裝)
滲透過程
1:安裝及更新資料漏洞庫
你可以使用下列命令在自己的裝置中安裝WPScan
git clone https://github.com/wpscanteam/wpscan.git
更新漏洞庫,使用命令:wpscan --update
2:掃描WordPress
漏洞
接下來使用下面的命令來掃描可能存在的漏洞網站:
wpscan --url [wordpress url]
z這裡我直接用一個不認識的人的站點為例子進行演示(是我的好友HHHHH)
wpscan --url https://www.xxxxx.wiki/
3:掃描wordpress
使用者
我們可以對其使用者進行列舉:
wpscan --url https://www.xxxxxxx.wiki/ --enumerate u
得到的使用者資訊:
4:暴力破解得到密碼
在進行暴力破解攻擊之前,我們需要建立對應的字典檔案
wpscan --url https://www.xxxxx.wiki/ -e u --wordlist /root/桌面/password.txt
效果圖如下:
5:掃描外掛漏洞
外掛可以擴充套件WordPress
站點的功能,但很多外掛中都存在安全漏洞,而這也會給攻擊者提供可乘之機。
我們可以使用下列命令掃描WordPress
站點中安裝的外掛:
wpscan -u https://www.xxxxx.wiki/ -enumerate p
我們可以看到該網站中安裝了easy-wp-smtp
,theme-my-login
外掛:
接下來,我們可以使用下列命令來掃描目標外掛中的安全漏洞:
wpscan --url https://www.xxxxx.wiki/ --enumerate vp
效果演示:
6:主題漏洞掃描
使用下列命令對主題進行掃描:
wpscan --url https://www.xxxxx.wiki --enumerate t
發現一個主題:
使用下列命令掃描主題中存在的漏洞:
wpscan --url https://www.xxxxxx.wiki --enumerate vt
7:TimThumbs
檔案漏洞掃描
wpscan -u https://www.xxxxxx.wiki/ -enumerate tt
四:WordPress
的防護措施
1:關於密碼爆出防護措施
如果你想要避免WordPress
使用者列表被列舉,不要把使用者名稱作為暱稱,並且不要使用已經被大眾知道的使用者名稱。最好的方式是選擇一個包含隨機字
符的名字做使用者名稱並且使用其他名字作為暱稱。 WPScan
掃描URL
來獲取使用者名稱,所以如果你不使用這個使用者名稱,你肯定不會被WPScan
搜尋到。
防止暴力破解的最好方式是限制一個IP
地址的嘗試登入次數。WordPress
有很多外掛可以實現這個功能。列如有一個外掛叫
Brute Force Login Protection
(當然你也可以寫一個指令碼防止爆出個人密碼)
2:如何防範掃描外掛、主題、TimThumb
檔案
使用Block Bad Queries (BBQ)
外掛,就可以遮蔽和禁止這類掃描