二进制保护绕过
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/binary-protection-bypass-t7up
技能介绍
问题:多保护机制下的二进制攻击困境
现代二进制文件普遍启用多重防护:ASLR随机化内存地址、PIE隔离代码段、NX阻止栈执行、RELRO保护GOT表、canary守护栈完整性、FORTIFY_SOURCE加固危险函数,CET和MTE更引入硬件级防护。攻击者常面临两大挑战:一是难以快速定位当前二进制启用了哪些保护,二是不同保护的对抗方法易混淆(如NX需ROP但RELRO可能阻止GOT覆盖),多机制叠加时绕过路径更难推导。
核心能力:从识别到绕过的闭环方法论
技能以“保护识别-绕过匹配-原语验证”为主线展开。首先通过 checksec、readelf 等工具提取保护特征:ASLR检查 /proc/sys/kernel/randomize_va_space,PIE通过二进制Type是否为DYN判断,RELRO根据GOT表是否只读区分部分/完全模式。针对不同保护,技能提供标准化绕过路径:
- ASLR:通过信息泄露(如格式化字符串
%N$p)、部分覆盖(覆写地址后1-2字节)或ret2dlresolve绕过,需匹配读取原语或栈溢出能力; - PIE:利用栈上返回地址泄露计算基址(
基址=泄露值-已知偏移),或单字节覆写利用页内偏移固定特性; - NX:依赖ROP链(
ret结尾的gadget)或ret2libc调用libc函数,部分场景需结合mprotect将栈转为可执行; - RELRO:完全模式下放弃GOT覆写,转向
__free_hook(glibc<2.34)、_IO_FILEvtable或栈返回地址等替代目标; - canary:优先通过格式化字符串泄露栈上canary值,或在fork服务器场景下逐字节爆破(需256×(长度-1)次尝试)。
适用边界:研究导向的技能边界
技能内容提炼自CTF-Wiki缓解措施章节与真实漏洞利用案例,主要用于安全研究中的二进制保护分析与攻击路径推导。需注意:部分绕过方法依赖特定环境(如ret2dlresolve需要栈溢出+写原语),CET和MTE等硬件级防护的绕过需结合目标平台特性(如MTE标签暴力破解仅1/16成功率)。技能不涉及非法工具开发,仅作为安全攻防知识图谱的参考实现。
使用场景
- CTF竞赛中遇到启用多重保护(ASLR+PIE+NX)的二进制题目,需快速定位保护类型并推导绕过路径
- 分析真实漏洞利用案例时,需明确目标二进制启用的RELRO级别及对应的GOT覆写替代方案
- 编写漏洞利用脚本前,需验证当前环境下ASLR熵值及可用的信息泄露原语(如格式化字符串)
- 评估目标程序防护强度时,需系统识别其启用的canary、FORTIFY_SOURCE等保护机制及潜在攻击面
适合人员
- CTF选手,需要在竞赛中快速破解启用多重二进制保护的题目
- 安全研究员,需分析真实漏洞利用案例中的保护机制及绕过路径
- 漏洞利用开发者,需编写针对特定二进制保护的利用脚本
- 二进制安全工程师,需评估目标程序的防护强度及潜在攻击面