二進制保護繞過 是做什麼的?
二進制保護繞過操作手冊。用於識別並繞過 ELF 二進制檔案中的 ASLR、PIE、NX/DEP、棧金絲雀、RELRO、FORTIFY_SOURCE、CET 和 MTE 保護,以實現漏洞利用。
介紹
本技能提供一個完整的操作手冊,幫助安全研究人員和開發者識別並繞過現代 ELF 二進制檔案中實施的多種保護機制。通過理解這些保護的工作原理和弱點,您可以有效地繞過它們以實現漏洞利用。
支援的保護機制
- ASLR:位址空間佈局隨機化
- PIE:位置無關可執行檔
- NX/DEP:不可執行記憶體/資料執行防止
- 棧金絲雀:緩衝區溢位檢測
- RELRO:僅讀取重定位
- FORTIFY_SOURCE:原始碼強化
- CET:間接分支追蹤
- MTE:記憶體標籤擴展
使用方法
識別保護
checksec --file=<binary>
或使用 YAKLANG:
checkElfProtection("./target_binary")
繞過技術
每種保護機制都有對應的繞過策略。
繞過 ASLR/PIE
使用資訊洩露漏洞來洩露位址:
# 範例:洩露 PIE 基址
leak = leak_address()
base = leak - offset_of_leaked_function
繞過 NX/DEP
使用 ROP(返回導向編程)技術:
ropgadget --binary=<binary>
繞過棧金絲雀
使用格式字串漏洞或堆疊溢出:
// 範例:覆蓋金絲雀值
char canary[8] = leak_canary();
overflow_with_canary(canary);
跨平台支援
本技能支援以下平台:
- Linux (x86, x86-64, ARM, AArch64)
- FreeBSD
- 其他類 Unix 系統
整合
您可以將此技能整合到自動化漏洞利用開發工作流程中:
// YAKLANG 範例
binary = "./vulnerable_binary"
protections = analyzeProtections(binary)
if protections.has("NX") {
log("偵測到 NX,使用 ROP 繞過")
ropChain = buildROPChain(binary)
}