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 提取;chipsec skill 做 UEFI/BIOS 静态扫描(LoJax、ThinkPwn、HackingTeam 已知 rootkit 检测 + EFI inventory + NVRAM dump)。
  • APK 反编译apktool 拆包(AndroidManifest / smali)+ jadx DEX→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/24netflows --source-ip / -sffind 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 胶水;iothackbotToolInterface 把所有工具输出统一成 text/json/quiet。
  • jadx / apktool 单独使用:Android 反编译要自己串 smali + manifest + 资源;iothackbot 把它包装成可被 Claude 调用的 skill。
  • chipsec 单独 vs skill 化:原版 chipsec 是 Python CLI,需要自己写报告;iothackbotchipsec skill 化后可直接在 Claude 里跑。

一句话推荐

拿到一份 IoT / 摄像头 / 嵌入式设备评估合同,又不想从零拼工具链 —— iothackbot 是一份"开箱即用 + AI 友好"的工具清单;记住每次开工先确认授权 scope。