當前位置:
首頁 > 最新 > 一款通過尋找和串聯Gadget來構建ROP漏洞利用的工具

一款通過尋找和串聯Gadget來構建ROP漏洞利用的工具

今天給大家介紹的是一款名叫ROPGenerator的ROP漏洞利用開發工具,它能夠自動尋找gadget,並構建ROP漏洞利用鏈,該工具當前版本支持x86和x64源碼。

工具介紹

ROPGenerator使用了ROPgadget工具來從二進位代碼中提取出可利用的gadget,並利用barf-project來對它們進行反彙編。提取出gadget之後,它將會對這些gadget進行分析,並解析代碼語義,最後根據它們的實用性來存儲gadget信息。分析完成之後,測試人員就可以利用ROPGenerator來自動化查詢gadget,並通過語義查詢來構建相關的ROP漏洞利用鏈。

ROPGenerator採用Python開發,該工具目前只支持Python 2環境。

註:ROPGenerator目前仍處於測試階段,當前主分支版本為v0.5,目前我正在開發v1.0版本,這個版本的速度會更快,功能也會更強,大概幾周之後就可以發布。


優秀的命令行介面:工具提供了一個流暢且易於使用的命令行介面;

基於語義的gadget查詢:你可以通過指定語義來快速查詢相關的gadget;

Gadget鏈構建引擎:單個gadget無法滿足你的需求?沒關係,ROPGenerator可以幫你構建ROP利用鏈;

完全自動化實現:ROPGenerator能夠幫你自動化構建出完整的漏洞利用鏈。

工具安裝


你可以使用下列命令下載安裝並運行ROPGenerator:


ROPGenerator的運行需要ROPgadget、prompt_toolkit、enum、python-magic、pwntools和barf v0.4.0:

prompt_toolkit、enum、python-magic和barf v0.4.0會在工具安裝過程中自動完成添加;

如果你沒有安裝ROPgadget的話,它同樣會在工具安裝過程中自動安裝,但是該工具當前託管在pypi上的版本並不是最新版,所以你需要手動進行更新。

工具使用

ROPGenerator的使用非常簡單,下面給出一些參考實例。


第一步就是從你想要利用的源碼中載入gedget,你可以使用「load」命令實現:

這條命令將運行ROPgadget來從代碼中提取gadget,接下來工具會對所有提取出來的gadget進行分析,並計算語義,然後將分析結果存儲在一個gadget資料庫中。


你可以使用「find」命令查詢gadget和ROP利用鏈,你需要指定一個想要完成的操作,隨後ROPGenerator將生成相應的ROP利用鏈,支持的表達式如下:

樣例:

如果你不確定哪一個寄存器可用,你可以使用「registers」命令來進行查詢。如果你想進行有針對性的查詢,你還可以使用「find」命令提供的其他選項:

樣例:

構建漏洞利用代碼

載入代碼之後,你可以使用「exploit」命令來自動化構建漏洞利用代碼,ROPGenerator提供了多種漏洞利用方法:

run-payload:向可執行內存區域發送Payload,並跳轉執行;

call:通過中斷或系統調用來調用系統函數;

更多功能敬請期待!

可用的漏洞利用調試選項如下:

樣例:

註:ROPGenerator提供了一個嵌入式Payload資料庫,你也可以直接使用「payload」命令來管理和調用其中的Payload。


「run-payload」策略會嘗試通過調用mprotect來製作.bss RWX,然後將payload拷貝進相應的內存區域,並跳轉執行payload。你通過使用下列命令來使用「run-payload」策略:

正在開發中,敬請期待:D

運行截圖

啟動ROPGenerator:

獲取幫助信息:

從源碼文件載入gadget:

快速查詢gadget:

自動化生成漏洞利用代碼:

*參考來源:ropgenerator,FB小編Alpha_h4ck編譯,轉載請註明來自FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

3步以內利用中間人MitM攻擊從RDP連接中獲得密碼
沒有大冷門也不用上天台,這是一場專屬於黑客的世界盃

TAG:FreeBuf |