sage-502/mitigation-lab

GitHub: sage-502/mitigation-lab

一套 Linux 二进制保护机制的学习实验仓库,通过对比实验帮助理解 NX、Canary、ASLR、PIE、RELRO 等保护的工作原理与拦截机制。

Stars: 0 | Forks: 0

# mitigation-lab 二进制保护机制学习记录合集
([pwnable-lab](https://github.com/sage-502/pwnable-lab)的后续实践) 本仓库旨在通过代码、编译选项和调试,验证各种**二进制保护机制**在实际中究竟是**在何处拦截攻击的**。 - 包含保护机制的引入背景、实现与工作原理,以及实践练习 - 实践环节通过使用相同的 payload 对比开启/关闭保护机制时的二进制 - 攻击失败属于正常现象,相较于利用本身,更侧重于**分析失败原因** - 基于 gdb、readelf、objdump 进行实践 - 基于 ubuntu 24.04、32位环境 ※ 建议仅在虚拟机中使用。 ## 目录结构 ``` mitigation-lab/ ├── setup.sh // 실습 환경 세팅 스크립트 ├── env.md // 공통 환경, ABI, 호출 규약 등 ├── nx/ │ ├── sample.c // 실습 소스코드 │ ├── build.sh // 소스 빌드 스크립트 │ ├── payload.py // 보호기법 동작 확인용 페이로드 (혹은 exploit.py) │ └── README.md // 보호기법 설명, 바이너리 분석 ├── stack-canary/ ├── aslr/ ├── pie/ ├── relro/ ├── combo/ ├── memo.md // 메모 └── images/ // VM 스샷 ``` ## 学习顺序 1. [nx](https://github.com/sage-502/mitigation-lab/tree/main/nx) 2. [stack-canary](https://github.com/sage-502/mitigation-lab/tree/main/stack-canary) 3. [aslr](https://github.com/sage-502/mitigation-lab/tree/main/aslr) 4. [pie](https://github.com/sage-502/mitigation-lab/tree/main/pie) 5. relro ## 使用说明 ### 1. 环境配置 (setup.sh) 用法:`sudo bash setup.sh` * 安装实践所需的包、工具以及 32 位环境 ### 2. 构建实践二进制文件 (build.sh) 用法:`sudo bash build.sh` * 创建实践目录 `/tmp/(保护机制)-lab` * 将 `sample.c` 复制到实践目录中,编译 `sample.c` 并设置权限
→ 将生成开启和关闭保护机制的两个版本的二进制文件 * 同时输出 `file` 和 `checksec` 的结果 * 如果不以 root 权限运行,将难以确认是否成功获取 root(或 root 组 shell) * ASLR 请根据最后输出的提示信息手动进行设置 ### 3. 运行示例 ``` git clone https://github.com/sage-502/mitigation-lab cd mitigation-lab sudo bash setup.sh # 최초 1회만 실행 cd nx sudo bash build.sh ``` 实践环境配置完毕,可以开始分析。
标签:DNS 反向解析, 二进制漏洞利用, 云资产清单, 安全防护机制, 实验教程, 应用安全, 漏洞分析, 路径探测, 逆向工具, 逆向工程