BrownFineSecurity/iothackbot · 上手攻略
- 仓库:BrownFineSecurity/iothackbot
- 链接:https://github.com/BrownFineSecurity/iothackbot
- 分类:安全 / IoT 渗透测试 / Claude Code skill
- 作者:spark
- 更新:2026-08-25
是什么
iothackbot(IoT HackBot)是一个面向 IoT 设备、IP 摄像头、嵌入式系统安全评估的开源工具集,同时打包成 Claude Code plugin 提供 AI 辅助渗透工作流。它由两层组成:
- 一组 CLI 工具(
wsdiscovery/iotnet/netflows/ffind/onvifscan/chipsec/apktool/jadx/jtagprobe/picocom/telnetshell/nmap)。 - 对应同名 Claude Code skills,让 Claude 直接调用这些工具。
整套遵循一致的架构模式:CLI 层(tools/iothackbot/*.py,argparse)→ 核心层(tools/iothackbot/core/*_core.py,实现 ToolInterface)→ 可执行包装(bin/*),工具输出统一支持 text / json / quiet 三种格式。
⚠️ 仓库 README 顶部明确写:"Only test devices you own or have explicit permission to test"。本文介绍的工具涉及未授权设备检测与爆破,仅适用于授权渗透测试 / 红队评估。
解决什么问题
IoT / 嵌入式渗透测试里几个常见活儿,平时需要自己装 nmap / binwalk / apktool / J-Link 工具链、写 Python 胶水、写报告格式化。iothackbot 把它们收成一个统一接口:
- 设备发现:ONVIF 摄像头(WS-Discovery)、嵌入式设备的网络指纹。
- 网络取证:从
.pcap抽 IoT 协议流(iotnet)+ 按源 IP 解析 DNS 主机名(netflows)。 - 固件分析:
ffind文件识别 + ext2/3/4/F2FS 提取;chipsecskill 做 UEFI/BIOS 静态扫描(LoJax、ThinkPwn、HackingTeam 已知 rootkit 检测 + EFI inventory + NVRAM dump)。 - APK 反编译:
apktool拆包(AndroidManifest / smali)+jadxDEX→Java 反编译,配合 hardcoded credential 搜索。 - 硬件调试接口探测:
jtagprobe用 SEGGER J-Link 在多组时钟下扫 SWD / JTAG,读 DPIDR / IDCODE 区分厂商(STM32 / NXP / Nordic / TI),并通过 halt + memory read 验证是否真在调试器控制下。 - UART / Telnet 交互:
picocom+ Python 胶水脚本(bootloader 操作、shell 枚举、固件提取);telnetshell处理 BusyBox 风格的未认证 shell 测试。 - 认证攻击:
onvifscan auth/onvifscan brute模式做 ONVIF 设备的认证绕过与凭证爆破。
快速安装
系统依赖
# Arch Linux(README 给的样例)
sudo pacman -S nmap e2fsprogs f2fs-tools python python-pip inetutils
# 其他发行版换包管理器即可(apt / dnf / brew)
Python 依赖
pip install colorama pyserial pexpect requests
拉仓库 + 把 bin/ 加进 PATH
git clone https://github.com/BrownFineSecurity/iothackbot.git
cd iothackbot
# 当前会话
export PATH="$PATH:$(pwd)/bin"
# 永久(写到 ~/.bashrc / ~/.zshrc)
echo 'export PATH="$PATH:/path/to/iothackbot/bin"' >> ~/.bashrc
作为 Claude Code plugin 安装(三选一)
方式 1:开发期直接挂载
claude --plugin-dir /path/to/iothackbot
方式 2:本地 marketplace(持久) —— 写到 ~/.claude/settings.json:
{
"extraKnownMarketplaces": {
"iothackbot-local": {
"source": {
"source": "directory",
"path": "/path/to/iothackbot"
}
}
},
"enabledPlugins": {
"iothackbot": true
}
}
然后重启 Claude Code。
方式 3:项目内 .claude/skills/ 软链(向后兼容)
ln -s /path/to/iothackbot/skills/<skill-name> /your/project/.claude/skills/
⚠️ 方式 2 的 settings.json 字段名(extraKnownMarketplaces / enabledPlugins / source.source = "directory")直接来自 README,未在本攻略独立校验 Claude Code 当前版本 plugin manifest schema;如版本不匹配请查 Claude Code 官方 plugin 文档。
核心用法
1. 设备发现(ONVIF 摄像头)
# 扫一段子网找 ONVIF 设备
wsdiscovery 192.168.1.0/24
# 对单台设备做认证绕过 / 凭证爆破
onvifscan auth http://192.168.1.100
onvifscan brute http://192.168.1.100
2. 网络流量分析
# 离线 pcap 分析(识别 IoT 协议 + 漏洞签名)
iotnet capture.pcap
# 在线抓包 60 秒
sudo iotnet -i eth0 -d 60
# 从 pcap 抽某个源 IP 的 flow + DNS 解析
netflows capture.pcap --source-ip 192.168.1.100
netflows capture.pcap -s 192.168.1.100 --format quiet # 只输出 host:port
3. 固件分析
# 文件类型识别
ffind firmware.bin
# 提取文件系统(需要 root 写 block device)
sudo ffind firmware.bin -e
4. JTAG / SWD 探测
# 用 J-Link 自动扫 SWD / JTAG,识别芯片厂商
jtagprobe
# 通过 DPIDR / IDCODE → 厂商(STM32/NXP/Nordic/TI ...)
# halt + memory read 验证真在调试器控制下
# 每次尝试的 JLinkExe stdout 自动捕获作为 pentest 证据
5. Claude Code 内的 skill 触发
装好 plugin 后,在 Claude Code 里直接说"扫一下 192.168.1.0/24 的 ONVIF 设备"或"分析这个 pcap",skill 调度对应的 CLI,所有工具的 text / json / quiet 输出在 Claude 端被结构化解析。
典型适用场景
- 红队 IoT 评估:找目标 → 网络抓包 → 固件解包 → 找调试接口 → UART / JTAG 取 shell,全链路工具已经齐。
- 摄像头 / DVR 渗透:ONVIF 认证绕过、默认口令爆破、协议指纹。
- Android 配套 IoT App 审计:APK 反编译 + 硬编码密钥搜索。
- 嵌入式 UEFI 调查:UEFI/BIOS 静态分析 + 已知 rootkit(LoJax 等)检测。
- 报告自动化:
--format json输出直接喂给下游报告生成器。
坑与注意
- 必须有授权:README 与本文顶部反复强调,未授权测试触法;部分模块(爆破、认证绕过)即使在授权下也建议先与客户确认 scope 边界。
ffind -e需要 root:文件系统提取会写 block device。jtagprobe假定 SEGGER J-Link 硬件已装:纯软件跑不通。- 生产环境影响:
onvifscan brute容易被摄像头防爆模块锁 IP,注意节奏;iotnet -i eth0在线抓包需在镜像口 / 旁路部署。 - MIT License ≠ 免责:README 写明 "authors are not responsible for misuse"。
- commands 取自 README:本攻略的命令行参数(如
wsdiscovery 192.168.1.0/24、netflows --source-ip/-s、ffind firmware.bin -e)直接来自 README;具体参数的最新行为以仓库tools/iothackbot/下的 argparse 定义为准,建议升级前bin/<tool> --help自查一次。 - ⚠️ 未独立核验项:本攻略未拉取仓库 release tag 也未读
tools/iothackbot/core/*.py源码,故wsdiscovery/jtagprobe等子工具的输出 schema 与 CLI flag 列表可能比 README 更全;遇到 edge case 直接看源码最稳。
与同类对比
- Kali Linux 默认工具集:更全但 IoT / 固件专项弱;
iothackbot聚焦 IoT,工具更紧凑。 bettercap/nmap NSE scripts:网络层强,但固件 / UEFI / APK / JTAG 一概不沾。firmwalker/binwalk+ 自写脚本:固件分析标配,但缺统一 CLI / 输出格式 / AI 胶水;iothackbot用ToolInterface把所有工具输出统一成 text/json/quiet。jadx/apktool单独使用:Android 反编译要自己串 smali + manifest + 资源;iothackbot把它包装成可被 Claude 调用的 skill。chipsec单独 vs skill 化:原版chipsec是 Python CLI,需要自己写报告;iothackbot把chipsecskill 化后可直接在 Claude 里跑。
一句话推荐
拿到一份 IoT / 摄像头 / 嵌入式设备评估合同,又不想从零拼工具链 ——
iothackbot是一份"开箱即用 + AI 友好"的工具清单;记住每次开工先确认授权 scope。