Agent Skills
返回列表
🔒

二进制保护绕过

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 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_FILE vtable或栈返回地址等替代目标;
  • canary:优先通过格式化字符串泄露栈上canary值,或在fork服务器场景下逐字节爆破(需256×(长度-1)次尝试)。

适用边界:研究导向的技能边界

技能内容提炼自CTF-Wiki缓解措施章节与真实漏洞利用案例,主要用于安全研究中的二进制保护分析与攻击路径推导。需注意:部分绕过方法依赖特定环境(如ret2dlresolve需要栈溢出+写原语),CET和MTE等硬件级防护的绕过需结合目标平台特性(如MTE标签暴力破解仅1/16成功率)。技能不涉及非法工具开发,仅作为安全攻防知识图谱的参考实现。

使用场景

  • CTF竞赛中遇到启用多重保护(ASLR+PIE+NX)的二进制题目,需快速定位保护类型并推导绕过路径
  • 分析真实漏洞利用案例时,需明确目标二进制启用的RELRO级别及对应的GOT覆写替代方案
  • 编写漏洞利用脚本前,需验证当前环境下ASLR熵值及可用的信息泄露原语(如格式化字符串)
  • 评估目标程序防护强度时,需系统识别其启用的canary、FORTIFY_SOURCE等保护机制及潜在攻击面

适合人员

  • CTF选手,需要在竞赛中快速破解启用多重二进制保护的题目
  • 安全研究员,需分析真实漏洞利用案例中的保护机制及绕过路径
  • 漏洞利用开发者,需编写针对特定二进制保护的利用脚本
  • 二进制安全工程师,需评估目标程序的防护强度及潜在攻击面