利用Pocsuite3進行遠程漏洞測試?
簡介
Pocsuite 是由知道創宇404實驗室打造的一款開源的遠程漏洞測試框架。可以直接使用 Pocsuite 進行漏洞的驗證與利用;
也可以基于 Pocsuite 進行 PoC/Exp 的開發,因為它也是一個 PoC 開發框架;還可以使用漏洞測試工具里直接集成 Pocsuite,它也提供標準的調用類。
這里不做詳細的介紹,具體可以去官網查看:http://pocsuite.org/
功能介紹
Pocsuite3 采用 Python3 編寫,支持驗證,利用 及 shell 三種插件模式,你可以指定單個目標或者從文件導入多個目標,使用單個 PoC 或者 PoC 集合進行漏洞的驗證或利用。
安裝
Pocsuite 可以運行在 Python 3.x 版本的任何平臺上。
你可以通過用 Git 來克隆代碼倉庫中的最新源代碼
- $ git clone git@github.com:knownsec/pocsuite3.git
或者你可以點擊 這里 下載最新的源代碼 zip 包,并解壓
- $ wget https://github.com/knownsec/pocsuite3/archive/master.zip
- $ unzip master.zip
- $ cd pocsuite3
- $ python cli.py —version
或者直接使用
- $ pip install pocsuite3
- $ pocsuite —version
- 我們這里采用了pip進行安裝,安裝成功后,在cmd窗口中輸入:pocsuite —version,看到版本號及安裝成功。

實戰操作
具體可以參考官網:https://github.com/knownsec/pocsuite3/blob/master/docs/CODING.md
網上也有很多例子,但有的例子還需要自己搭建靶場環境,這無疑還沒有開始學,就先放棄了。
所以我們可以直接利用現有的通用漏洞來進行操作。
1、尋找通用漏洞
我們可以在https://poc.wgpsec.org/(WgpSec POC文庫)或其他漏洞平臺上查找到通用的漏洞。
很多漏洞都提供了編寫好的poc。
例如:我們這里找到一個CMS漏洞:獅子魚CMS SQL注入漏洞:

2、分析漏洞
獅子魚CMS ApiController.class.php 參數過濾存在不嚴謹,導致SQL注入漏洞,報錯注入點:
https://xxx.xxx.xx.xxx/index.php?s=apigoods/get_goods_detail&id=1%20and%20updatexml(1,concat(0x7e,md5(1),0x7e),1)
頁面出現c4ca4238a0b923820dcc509a6f75849就是md5(1)的值,因此我們可以通過判斷該值來判斷頁面是否存在SQL注入漏洞。
如下所示:

3、編寫POC(漏洞驗證)
我們按照要求填寫了相關是信息,由于沒有找到相關是漏洞版本的信息,這里先這樣填寫,不影響后續的操作:

verify(漏洞驗證)部分編寫:
這部分我們把md5(1)換成database()驗證證明拿到庫名即可,并不做深入的數據獲取。

5、 測試操作:
先把編寫好的poc放到Pocsuite3/pocs目錄下
主要是為了方便測試:我這里是放到我自己的安裝路徑:E:\software\python3.8\Lib\site-packages\pocsuite3\pocs\下
然后在fofa網站中搜索:”/seller.php?s=/Public/login”:

我們先找幾個手動進行驗證一下,作為我們測試用例。
(官方建議使用3個成功和3個失敗),這里只拿其中一個成功和一個失敗作為例子:


打開cmd輸入:pocsuite -r lionfish_apicontroller_login_sql-inj.py -u https://www.86cdt.cn —verify測試一下:發現沒有漏洞

測試輸入:pocsuite -r lionfish_apicontroller_login_sql-inj.py -u https://47.104.132.238 —attack,試驗成功:

6、 批量操作:
接下來我們就可以使用命令進行批量驗證了,先把找到的url地址保存到一個文件,并把文件放到路徑pocsuite3/pocs目錄中,進行驗證:

Exp(漏洞利用)部分編寫:

我們還是先使用上面2個url地址進行驗證
輸入:pocsuite -r lionfish_apicontroller_login_sql-inj.py -u https://www.86cdt.cn/ —attack

輸入:pocsuite -r lionfish_apicontroller_login_sql-inj.py -u https://47.104.132.238/ —attack

可以看到數據庫信息。
批量操作:pocsuite -r lionfish_apicontroller_login_sql-inj.py -f lion.txt -–attack

最后我們結合ZoomEye語法進行批量操作:pocsuite -r lionfish_apicontroller_login_sql-inj.py —dork ‘/seller.php?s=/Public/login’ —max-page 2 —thread 20 –verify
這里的意思是使用ZoomEye搜索通用漏洞’/seller.php?s=/Public/login’,最多使用2頁的數據,—thread 20分配20個線程。接下來輸入Zoomeye注冊的賬號:

輸入完成后自動進行批量驗證操作:

常用操作命令:
—dork (默認為zoomeye搜索搜索引擎)
—dork-zoomeye 搜過關鍵字
—dork-shodan 搜索關鍵字
—dork-censys 搜索關鍵字
—max-page 多少頁
—search-type 搜索類型選擇API,Web or Host
—vul-keyword seebug關鍵詞搜索
—ssv-id seebug漏洞編號
—lhost shell模式反彈主機
—lport shell模式反彈端口
—comparison 比較兩個搜索引擎
—plugins 加載插件
—pocs-path poc地址
—threads 開啟線程
—batch 自動默認選項
—requires 檢測需要安裝的模塊
—quiet 沒有logger
—ppt 隱藏敏感信息
7、 保存結果
我找了一下,發現并沒有直接保存的方法。
所以這里自己寫了一個保存的方法進行保存,格式可按照自己想要的進行保存。

我這里按照ip地址作為文件名進行保存:

文件內容如下:

自動化提交
我們使用selenium提交到漏洞盒子中,腳本在掌控安全QQ群文件中,可以自己去下載,但是腳本不完善還需要自己重新修改編寫:
1、這里還需要截圖證明漏洞,我這里重新寫了一個自動截圖的方法,url地址文件可以通過poc編寫時,再保存一個文件,這里自己補充。


文件名也是IP地址,到時候提交的時候好一一對應。

使用selenium編寫自動化腳本提交到漏洞盒子:


總結
Pocsuite還有很多其他的功能操作使用,網上也有很多相關博客和文章,可以自己去挖掘。
src要上分一般都是通過手動+goby+自動化等方式進行。
工具的使用的使用大大加快我們效率,但如果使用的工具需要花費太多的時間精力去編寫和維護也會得不償失。我們使用工具但又不迷信工具。
PS:我寫的腳本也是存在瑕疵,這里漏洞名稱是不能重復的,否則無法提交成功。
但頁面無法直接獲取企業名稱,企業名稱是一張圖片,如果要獲取得截取(下載)圖片,然后通過OCR識別轉換成文字,再保存。
需要花費更多時間和精力,我覺得沒有必要,可以自己每次保存不同名字即可。