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 反向解析, 二进制漏洞利用, 云资产清单, 安全防护机制, 实验教程, 应用安全, 漏洞分析, 路径探测, 逆向工具, 逆向工程