/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
小編為大家帶來了全新開發的自動化漏洞利用引擎,Rex自動化漏洞利用引擎,該軟件是為了參加DARPA網絡挑戰賽而設計,展示Rex棧溢出之Exploit自動生成能力 ,測試樣例為linux下可執行程序vuln_stacksmash,其中存在棧溢出漏洞,通過rex自動生成rop2text ,rop2system ,jmpesp等三種Exploit,有需要的快來下載Rex自動化漏洞利用引擎
使用 radare2 簡要分析 vuln_stacksmash。vuln() 函數中,調用 read(int fd, void * buf, size_t count) 時未檢查緩衝區大小,導致棧溢出。

使用 GDB 調試 vuln_stacksmash,運行至溢出點,程序狀態如下:

計算偏移為 0×44,構造 PoC 並輸入。單步執行並檢查棧幀情況,可見 EBP 已被 “\x41\x41\x41\x41” 覆蓋,後續四個字節為 EIP 值,已被覆蓋為 “\x42\x42\x42\x42”。

跟蹤至 vuln() 返回,觸發異常,EIP 被劫持為 “\x42\x42\x42\x42”。

上文簡要分析了 vuln_stacksmash 中存在的棧溢出漏洞,下文將介紹如何利用 Rex 自動生成 Exploit。
Rex 的實現基於 Angr,主要采用混合符號執行技術,對原理感興趣的同學可以閱讀論文 《(State of) The Art of War: Offensive Techniques in Binary Analysis》。由於封裝的原因,整體代碼看起來較為簡潔,從漏洞複現、漏洞類型判定、Exploit 生成到 Exploit 有效性驗證,共計 10 行代碼。其中,Crash 類用以複現漏洞並返回漏洞類型,Exploit 類用以判定漏洞的可利用性,並生成 Exploit。171 ~ 174 行用以驗證 Exploit 的有效性。

Rex 在實現混合符號執行時,首先使用 QEMU 進行 Concrete Execution,在獲取到 Crash 狀態後,使用 Angr 進行 Concolic Execution,相關功能封裝在 Crash 類中。
1、Concrete Execution
使用 QEMU 加載 vuln_stacksmash,以 PoC 為輸入運行,獲取程序崩潰時的狀態。執行結果如下:

2、Concolic Execution
在獲取到 Crash state 後,基於 Angr 實現 Concolic Execution。首先設置程序初始狀態。

使用 ‘posix’、’preconstrainer’ 插件輔助分析:

SimSystemPosix()
Data storage and interaction mechanisms for states with an environment conforming to posix.
Available as “state.posix“.
SimStatePreconstrainer()
This state plugin manages the concept of preconstraining – adding constraints which you would like to remove later.
:param constrained_addrs : SimActions for memory operations whose addresses should be constrained during crash analysis
使用 ‘Tracer’、’Oppologist’ 兩種 Exploration_techniques:

設置 simulation_manager :

執行結果:

0×03 漏洞類型判定
Crash 類中的 _triage_crash() 方法對漏洞類型進行判定。

執行結果為 IP_OVERWRITE:

代碼中設置了 rop_leak_memory、rop_set_register、 explore_for_exploit 三種利用方式。通過閱讀源碼可知,rop_leak_memory、rop_set_register 均是針對 CGC 格式文件的利用技術。在 Rex 現有的 exploit_technique 中,call_jmp_sp_shellcode、call_shellcode、rop_to_system 三種技術用以針對 ELF 文件。執行結果如下:

0×05 Verified
對三種生成結果進行確認。

0×06 小結















火絨5.0自定義規則(火絨導入規則方法) 最新版病毒防治
/ 6K
Max殺毒衛士完美版(電腦病毒查殺)v1.8 免費版病毒防治
/ 54M
小紅傘2018激活碼(所有版本通用秘鑰) 綠色版病毒防治
/ 2K
usbkiller無需注冊碼版(usbkiller企業版) v2017 特別版病毒防治
/ 7.29M
eset nod32 9.0最新用戶名和密碼2018.9月更新病毒防治
/ 2K
3Dmax病毒清理大師(3D模型的病毒防治) v1.0 免費版病毒防治
/ 1M
360天擎最新漏洞補丁庫(掃描修複含震網三代95個補丁) v1.0.1.2830 官方版病毒防治
/ 66M
eset nod32在線用戶名密碼轉許可證密鑰工具官方版病毒防治
/ 2K
冰凍精靈64位版(計算機保護係統工具) 完美版病毒防治
/ 615K
eset nod32永久激活版簡體中文免費版病毒防治
/ 86M
火絨5.0自定義規則(火絨導入規則方法) 最新版病毒防治
/ 6K
Max殺毒衛士完美版(電腦病毒查殺)v1.8 免費版病毒防治
/ 54M
小紅傘2018激活碼(所有版本通用秘鑰) 綠色版病毒防治
/ 2K
usbkiller無需注冊碼版(usbkiller企業版) v2017 特別版病毒防治
/ 7.29M
eset nod32 9.0最新用戶名和密碼2018.9月更新病毒防治
/ 2K
3Dmax病毒清理大師(3D模型的病毒防治) v1.0 免費版病毒防治
/ 1M
360天擎最新漏洞補丁庫(掃描修複含震網三代95個補丁) v1.0.1.2830 官方版病毒防治
/ 66M
eset nod32在線用戶名密碼轉許可證密鑰工具官方版病毒防治
/ 2K
冰凍精靈64位版(計算機保護係統工具) 完美版病毒防治
/ 615K
eset nod32永久激活版簡體中文免費版病毒防治
/ 86M
火絨5.0自定義規則(火絨導入規則方法) 最新版病毒防治
Max殺毒衛士完美版(電腦病毒查殺)v1.8 免費版病毒防治
小紅傘2018激活碼(所有版本通用秘鑰) 綠色版病毒防治
usbkiller無需注冊碼版(usbkiller企業版) v2017 特別版病毒防治
eset nod32 9.0最新用戶名和密碼2018.9月更新病毒防治
3Dmax病毒清理大師(3D模型的病毒防治) v1.0 免費版病毒防治
360天擎最新漏洞補丁庫(掃描修複含震網三代95個補丁) v1.0.1.2830 官方版病毒防治
eset nod32在線用戶名密碼轉許可證密鑰工具官方版病毒防治
冰凍精靈64位版(計算機保護係統工具) 完美版病毒防治