中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解PoC框架Pocsuite3

發布時間:2021-11-11 16:51:43 來源:億速云 閱讀:297 作者:柒染 欄目:安全技術

這篇文章將為大家詳細講解有關如何理解PoC框架Pocsuite3,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

簡介

Pocsuite是由知道創宇404實驗室打造的一款開源的遠程漏洞測試框架。它是知道創宇安全研究團隊發展的基石,是團隊發展至今一直維護的一個項目,保障了我們的Web安全研究能力的領先。

你可以直接使用Pocsuite進行漏洞的驗證與利用;你也可以基于Pocsuite進行PoC/Exp的開發,因為它也是一個PoC開發框架;同時,你還可以在你的漏洞測試工具里直接集成Pocsuite,它也提供標準的調用類。

Pocsuite3是完全由Python3編寫,支持Windows/Linux/Mac OSX等系統,在原Pocsuite的基礎上進行了整體的重寫與升級,使整個框架更具有操作性和靈活性。

巨人的肩膀

Pocsuite3在編寫時參考了很多市面上的開源框架以及流行成熟的框架,在代碼工程結構上參考了Sqlmap,Pocsuite-console模式則參照了routersploit與metasploit,所以PoC的代碼格式和以前有些差別(但是盡量克制了大的改動)。Pocsuite3也提供了非常簡單的接口調用,可以集成到其他安全工具內部。

下載

Pip安裝

安裝有兩種,pip和直接運行源碼。

pip install -U pocsuite3 --no-cache-dir

將使用Pocsuite3最新版。

執行:

pocsuite -h

檢驗安裝效果。

源碼安裝

如果你自信能折騰的話,可以下載源碼使用,這也是我們推薦的方式,因為pip的更新可能會慢于github。

wget https://github.com/knownsec/pocsuite3/archive/master.zip
unzip master.zip

同時需要安裝兩個依賴:

pip install requests requests-toolbelt

如果同時也是Windows系統,除了上面的依賴還需要安裝一個:

pip install pyreadline # Windows console模式下使用,如果不使用可以不安裝

最后:

python cli.py -h

檢驗安裝效果。

另外需要注意的是,兩種安裝方式只可以取其一,不可同時安裝。建議使用源碼安裝的方式。

一般使用幫助

大多數情況,-h可以幫助你了解Pocsuite支持的功能。

如何理解PoC框架Pocsuite3如何理解PoC框架Pocsuite3

一個簡單的測試

python3 cli.py -r pocs/ecshop_rce.py --dork ecshop --threads 5

將使用ZoomEye搜索ecshop并使用ecshop_rce.py探測,指定線程數量為5

如何理解PoC框架Pocsuite3

Pocsuite的運行模式默認是verify驗證模式,此時對目標影響最小,也有attackshell模式,對目標進行相關攻擊與shell反彈(當然需要PoC的支持,Pocsuite的PoC編寫格式預留了這三種模式的接口,并且有很多內置API幫助實現這三種接口)。

Shell模式

Pocsuite3新增加了shell模式的設定,當你選擇了此函數,Pocsuite3將會監聽一個端口,并等待目標的反連。我們提供了各種語言用于反連的payload,以及用于生成在Windows/Linux平臺下可執行的shellcode。

如何理解PoC框架Pocsuite3

從配置文件運行

有時候命令行命令太多,有些參數的重用性比較高,Pocsuite也提供了從配置文件中運行的方法。

我們以redis未授權訪問漏洞為例,我們修改這個文件pocsuite.ini。

如何理解PoC框架Pocsuite3如何理解PoC框架Pocsuite3如何理解PoC框架Pocsuite3如何理解PoC框架Pocsuite3

線程也調整一下,RUN!

python3 cli.py -c ../pocsuite.ini

如何理解PoC框架Pocsuite3

由于開啟了comparsion參數,我們可以看到更多的信息:

如何理解PoC框架Pocsuite3

如果你同時還是Zoomeye VIP,搜集目標的同時也能夠識別出蜜罐信息。目前只有通過Zoomeye接口獲取的數據才能有蜜罐的標識。Shodan、Censys暫未開放相關API接口。

插件系統

Pocsuite支持了插件系統,按照加載目標(targets),加載PoC(pocs),結果處理(results)分為三種類型插件。

Targets插件

除了本身可以使用-u-f加載本地的目標之外,你可以編寫一個targets類型插件從任何你想加載的地方加載目標(eg:Zoomeye、Shodan)甚至從網頁上,redis,都可以。Pocsuite3內置了四種目標加載插件。

如何理解PoC框架Pocsuite3

從上文可以看出,如果使用了搜索dork—dork—dork_zoomeye—dork_shodan—dork_censys,相關插件將自動加載,無需手動指定。

Pocs插件

原來只能通過從seebug中調用插件,現在將這種方式抽離出來作為插件,將允許從任何能夠訪問的地方調用,甚至寫一個插件在github上維護一個倉庫調用都行。

Demo:

https://github.com/knownsec/pocsuite3/blob/master/pocsuite3/plugins/poc_from_redis.pyhttps://github.com/knownsec/pocsuite3/blob/master/pocsuite3/plugins/poc_from_seebug.py

Results-plugin

Results插件允許對掃描的結果進行處理,可以參考內置的兩個插件,保存結果為html與保存結果為txt。Results插件的結果是實時的,具體可以看plugins/file_record.py的實現方式。

https://github.com/knownsec/pocsuite3/blob/master/pocsuite3/plugins/html_report.pyhttps://github.com/knownsec/pocsuite3/blob/master/pocsuite3/plugins/file_record.py

調用插件

通過--plugins在后面指定插件名稱,多個插件可以用,分割。例如--plugins html_report將會生成HTML報表格式文檔。

內置API

基于我們漏洞應急的積累,基本上Pocsuite內置的API接口可以做到PoC編寫的全覆蓋了。很多API接口我們下一章再說,這里說兩個比較有趣的案例。

Shellcode生成支持

在一些特殊的Linux和Windows環境下,想得到反彈shell條件比較困難。為此我們制作了用于在Windows/Linux x86 x64環境下的用于反彈的shellcode,并制作了接口支持,你在只需要擁有命令執行權限下便可以自動將shellcode寫入到目標機器以及執行反彈shell命令。

Demo Poc:https://github.com/knownsec/pocsuite3/blob/master/pocsuite3/pocs/thinkphp_rce2.py

HTTP服務內置

如果你們還對Hacking Jenkins Part 2 - Abusing Meta Programming for Unauthenticated RCE!有印象。多么完美的漏洞,但是在編寫PoC的時候我們遇到了困難,verify模式我們可以輕松用Ceye來識別,但是attack模式與shell模式我們就必須要制作自己的Jar并將它上傳到服務器上面!

為此我們制作Jar格式打包的API以及HTTP服務API,在后面的眾多越來越難以自動化的PoC編寫中,會發現它是如此好用。

附Jenkins Abusing Meta Programming for Unauthenticated RCE(CVE-2019-1003000) with Pocsuite3演示視頻:

https://www.youtube.com/watch?v=5P7WWlqYt4U

自定義參數傳遞

隨著編程人員的安全意識逐漸提高,會發現以前一條鏈接就可以獲取RCE的時代已經過去了。越來越多的漏洞轉向需要一定"權限"才能觸發。為此,我們需要在Pocsuite3預留參數接口。

在盡量保持原有PoC格式的前提下,我們增加了一個_options方法,用于指定用戶傳遞的參數。

DemoPoc:https://github.com/knownsec/pocsuite3/blob/master/tests/login_demo.py

我們定義了在Poc中需要傳遞usernamepassword兩個參數,為了使用的方便,可以直接在命令行模式下如下:

python3 cli.py -u http://localhost -r tests/login_demo.py --username "404team" --password "password"

是的,就是這么簡單。可能你會問如果PoC中定義的參數與Pocsuite自帶的參數名沖突了如何解決?我們的解決辦法是不允許定義沖突的參數名,Pocsuite在啟動時就會檢查,如果有沖突的參數名會提示你修改PoC中的自定義參數名稱。

Console模式

在某些情況下,我們也考慮到了可交互的命令模式(黑客的儀式感)。并且它完全能兼容命令行模式下的PoC,如果你在Linux或Mac下使用它,將得到更好的體驗。

如何理解PoC框架Pocsuite3如何理解PoC框架Pocsuite3

API 通用集成

我們鼓勵也支持將Pocsuite3作為安全產品中的一部分。只需要將Pocsuite3作為模塊導入到你的項目中就能輕松使用。后面我們也會詳細說明Pocsuite3是如何做到這一點的。

pocsuite3.api將Pocsuite中所有接口暴露出來,不管是寫PoC還是集成到自己的環境,只需要使用這就可以。一個簡單調用Demo。

 from   pocsuite3.api   import   init_pocsuite 
 from   pocsuite3.api   import   start_pocsuite 
 from   pocsuite3.api   import   get_result 
 from   pocsuite3.api   import   path 
 import   os 

 config   =   { 
   'url'  :   'https://www.baidu.com/'  , 
   'poc'  :   os  .  path  .  join  (  paths  .  POCSUITE_ROOT_PATH  ,   "../tests/login_demo.py"  ), 
   'username'  :   "asd"  , 
   'password'  :   'asdss'  , 
   'verbose'  :   0 
 } 
 # config字典的配置和cli命令行參數配置一模一樣 
 init_pocsuite  (  config  ) 
 start_pocsuite  () 
 result   =   get_results  ()  .  pop  () 
 print  (  result  )

一個功能完備的框架并不只是一個可以批量處理任務的引擎,很多東西需要在實戰中積累并以最好的方式實現出來(俗稱踩坑)。在打造自己的PoC框架過程中,一定要清楚自己需要的是什么,以及用何種方式將它優雅的解決?

關于如何理解PoC框架Pocsuite3就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淳化县| 孝感市| 林周县| 武城县| 茂名市| 金堂县| 忻城县| 怀集县| 五莲县| 富裕县| 宕昌县| 武汉市| 澜沧| 彭水| 五寨县| 义乌市| 英山县| 新泰市| 芜湖县| 孝昌县| 安陆市| 南阳市| 德安县| 富顺县| 东莞市| 友谊县| 门头沟区| 黄大仙区| 油尖旺区| 仁寿县| 稻城县| 无为县| 河津市| 孟村| 余江县| 镇沅| 哈尔滨市| 武定县| 锡林浩特市| 南江县| 崇左市|