banner
肥皂的小屋

肥皂的小屋

github
steam
bilibili
douban
tg_channel

用wpscan對wordpress站點進行滲透

環境準備#

wordpress#

我們用上一篇文章 (傳送門:在 Ubuntu 中安裝 docker 快速搭建測試環境) 中寫道的官方出品的 Docker 鏡像:wpscanteam/vulnerablewordpress 快速搭建:

docker pull wpscanteam/vulnerablewordpress
docker run --name vulnerablewordpress -d -p 80:80 -p 3306:3306 wpscanteam/vulnerablewordpress

我們配置下帳號密碼:

image

帳戶名是 admin,密碼是 password123,標準的弱密碼

然後進入網站後台,提示更新 wordpress 版本:

image

順勢更新了所有的插件,主題,隨便又下了兩個插件:

image

創建了幾個用戶:

image

testadmin:123456haha:作者
soapffz:abc123456:管理員

wpscan#

WPScan 是 Kali Linux 默認自帶的一款漏洞掃描工具,它採用 Ruby 編寫,能夠掃描 WordPress 網站中的多種安全漏洞,其中包括主題漏洞、插件漏洞和 WordPress 本身的漏洞。最新版本 WPScan 的數據庫中包含超過 18000 種插件漏洞和 2600 種主題漏洞,並且支持最新版本的 WordPress。值得注意的是,它不僅能夠掃描類似 robots.txt 這樣的敏感文件,而且還能夠檢測當前已啟用的插件和其他功能。

Kali 中是自帶 wpscan 的,但是我打開掃描就會一直卡在 Updating the Database 處,過了一會報了 timeout 錯誤

image

Kali 也能訪問工具的首頁:https://wpscan.org/,但是掛了 vpn 也是更新不了,我們這裡用 Docker 拉取一個 wpscan,教程在 wpscan 的 Github 上也有:https://github.com/wpscanteam/wpscan

  • 拉取一個 wpscan:docker pull wpscanteam/wpscan

image

docker run -it --rm wpscanteam/wpscan --url https://yourblog.com [options]

後面的 [options] 為參數,可為空則進行默認的掃描,當然這樣每次都需要執行一次 docker 命令,如果想直接進入這個 wpscan 的 docker image 上執行 wpscan 可以使用以下指令:

docker run -it --entrypoint /bin/sh wpscanteam/wpscan

image

這個--entrypoint /bin/sh是什麼意思呢,字面意思是用 /bin/sh 作為入口,我們可以理解為用 /bin/sh 即 shell 執行後面的腳本

滲透站點#

我們這裡默認你已經進入這個 docker image 中,則可以使用 wpscan 開頭的語句:

  • wpscan --url 192.168.2.18 對整個站點進行掃描

image

額,可以看到伺服器和 php 版本信息,下面掃描了一些敏感目錄和文件備份,還有主題和插件信息掃描

東西太多了,我們一樣一樣看,但是後面的每條指令掃描出的結果都會包含以下內容:

[+] URL: http://192.168.2.18/
[+] Started: Wed Jan 30 10:12:18 2019

Interesting Finding(s):

[+] http://192.168.2.18/
 | Interesting Entries:
 |  - Server: Apache/2.4.7 (Ubuntu)
 |  - X-Powered-By: PHP/5.5.9-1ubuntu4.24
 |  - SecretHeader: SecretValue
 |  - via: Squid 1.0.0
 | Found By: Headers (Passive Detection)
 | Confidence: 100%

[+] http://192.168.2.18/robots.txt
 | Found By: Robots Txt (Aggressive Detection)
 | Confidence: 100%

[+] http://192.168.2.18/searchreplacedb2.php
 | Found By: Search Replace Db2 (Aggressive Detection)
 | Confidence: 100%
 | Reference: https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

[+] http://192.168.2.18/xmlrpc.php
 | Found By: Link Tag (Passive Detection)
 | Confidence: 100%
 | Confirmed By: Direct Access (Aggressive Detection), 100% confidence
 | References:
 |  - http://codex.wordpress.org/XML-RPC_Pingback_API
 |  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_ghost_scanner
 |  - https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_xmlrpc_dos
 |  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_xmlrpc_login
 |  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_pingback_access

[+] http://192.168.2.18/readme.html
 | Found By: Direct Access (Aggressive Detection)
 | Confidence: 100%

[+] http://192.168.2.18/wp-content/debug.log
 | Found By: Direct Access (Aggressive Detection)
 | Confidence: 100%
 | Reference: https://codex.wordpress.org/Debugging_in_WordPress

[+] Upload directory has listing enabled: http://192.168.2.18/wp-content/uploads/
 | Found By: Direct Access (Aggressive Detection)
 | Confidence: 100%

[+] WordPress version 5.0.3 identified (Latest, released on 2019-01-09).
 | Detected By: Rss Generator (Passive Detection)
 |  - http://192.168.2.18/index.php/feed/, <generator>https://wordpress.org/?v=5.0.3</generator>
 |  - http://192.168.2.18/index.php/comments/feed/, <generator>https://wordpress.org/?v=5.0.3</generator>

[+] WordPress theme in use: twentyfifteen
 | Location: http://192.168.2.18/wp-content/themes/twentyfifteen/
 | Latest Version: 2.3 (up to date)
 | Last Updated: 2019-01-09T00:00:00.000Z
 | Readme: http://192.168.2.18/wp-content/themes/twentyfifteen/readme.txt
 | Style URL: http://192.168.2.18/wp-content/themes/twentyfifteen/style.css?ver=5.0.3
 | Style Name: Twenty Fifteen
 | Style URI: https://wordpress.org/themes/twentyfifteen/
 | Description: Our 2015 default theme is clean, blog-focused, and designed for clarity. Twenty Fifteen's simple, st...
 | Author: the WordPress team
 | Author URI: https://wordpress.org/
 |
 | Detected By: Css Style (Passive Detection)
 |
 | Version: 2.3 (80% confidence)
 | Detected By: Style (Passive Detection)
 |  - http://192.168.2.18/wp-content/themes/twentyfifteen/style.css?ver=5.0.3, Match: 'Version: 2.3'

於是我們知道了它 wpscan 默認每次都會掃描敏感文件備份文件上傳目錄wordpress版本信息主題信息

接下來我們來掃描一些比較敏感的東西:

  • wpscan --url 192.168.2.18 --enumerate u對用戶名進行枚舉

image

可以看到很輕易就得到了用戶名

  • wpscan --url 192.168.2.18 --enumerate t對主題進行掃描

image

得到了主題的名字和版本

  • wpscan --url 192.168.2.18 --enumerate p對插件進行掃描

image

  • wpscan --url 192.168.2.18 --enumerate vp掃描插件中的安全漏洞

image

沒有插件的漏洞,同樣的,掃描脆弱的主題將後面的參數 t 改為 vt 即可

  • wpscan --url 192.168.2.18 --enumerate tt掃描 TimThumb 文件

TimThumb 是一個非常簡潔方便用於裁圖的 PHP 程序,只要給他設置一些參數,它就可以生成縮略圖。現在很多 WordPress 主題中,都使用 TimThumb 這個 PHP 類庫進行縮略圖的處理。通過 TimThumb 的漏洞很容易獲得站點 root 權限。

image

沒有找到

  • wpscan --url 192.168.2.18 --passwords /mnt/passwd.txt --username admin –-threads 100暴力破解 admin 密碼

這裡發現讀不到文件:

image

了解到是需要將宿主機目錄掛載到鏡像中的,所以我們刪除這個容器重新創建一個容器:

exit
docker ps -a (查看wpscan這個container的id)
docker stop [id] 先停止
docker rm [id] 再刪除
docker run -it -v /mnt:/tmp --entrypoint /bin/sh wpscanteam/wpscan 多加一個-v參數,使用:分割宿主機目錄和鏡像目錄

image

關於鏡像內掛載目錄的詳解可以參考這篇:https://www.cnblogs.com/ivictor/p/4834864.html

然後我們爆破:

帳號密碼只有--passwords/--usernames選項,都有s,但是不但可以指定字典也可以指定單個用戶名:

wpscan --url 192.168.2.18 --passwords /tmp/passwd.txt --usernames admin –-threads 100

wpscan -h幫助中的說明:
-P, --passwords FILE-PATH List of passwords to use during the password attack.
If no --username/s option supplied, user enumeration will be run.
-U, --usernames LIST List of usernames to use during the password attack.

開 100 個線程效果如下:

image

爆破效果及速度都取決於字典和線程的大小,爆破 admin 密碼的效果如下:

image

image

密碼在 16878 行,花費了 35 分 20 秒,速度,emmm,爆破是世界上最沒有效率的辦法

其他的參數可以使用 wpscan -h 來查看

利用 searchreplacedb2.php 修改郵箱重置密碼拿下管理員帳號

這是一個用於 WordPress 網站更換域名之後批量替換數據庫內容的工具。但是用了兩下之後可以看出,它只能替換,並沒有找到查詢數據的方法。

另外,searchreplacedb2.php 會自動讀取 wp-config.php,然後返回的表單裡面也包含數據庫用戶名和密碼。存在一個遺留後門 searchreplacedb2.php,可以利用它修改管理員 admin 預留的郵箱,點擊忘記密碼發送重置密碼鏈接,然後重置密碼。

這個文件的利用方式參考文章:https://blog.csdn.net/t91zzh5f/article/details/55805438

防範措施#

1. 怎麼防止 wordpress 網站被人暴力破解管理員密碼呢?

防止暴力破解的最好方式是限制一個 IP 地址的嘗試登錄次數。WordPress 有 n 多插件可以實現這個功能,比如:

  • Login Security Solution

  • Brute Force Login Protection

  • 也可以寫一個腳本防止爆出個人密碼

    2. 如何防範掃描插件、主題、TimThumb 文件

使用 Block Bad Queries (BBQ) 插件,就可以屏蔽和禁止這類掃描

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。