WPScan
使用完整教程之記一次對WordPress
的滲透過程
渣渣一枚,萌新一個,會划水,會喊六六
個人博客:https://www.cnblogs.com/lxz-1263030049/
本文已發至i春秋:https://bbs.ichunqiu.com/thread-46194-1-1.html
先知社區:https://xz.aliyun.com/t/2794
本次簡單的記錄優下自己關於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)
插件,就可以屏蔽和禁止這類掃描