arkanzasfeziii/Forge

GitHub: arkanzasfeziii/Forge

Forge 是一款物理与硬件安全评估框架,提供 BadUSB 载荷生成、RFID 克隆、物理侦察、锁具绕过和隐蔽硬件植入规划等模块,帮助红队系统化开展物理安全测试。

Stars: 0 | Forks: 0

# Forge — 物理与硬件安全框架 **在停车场丢下一个 $12 的 BadUSB 并拿下整个域。30秒内克隆一张门禁卡,大摇大摆走进机房。物理安全是永远没人去修补的防线。** ## 威胁模型 当攻击者穿过大门走进来时,所有的边界防火墙、EDR 代理和零信任策略都会瞬间崩塌。 | 威胁向量 | 攻击面 | 现实影响 | |---|---|---| | **尾随通过刷卡门禁** | 员工会为任何搬着箱子或戴着挂绳的人开门 | 获得对内部楼层、网络间和机房的完全物理访问权限 | | **通过 Proxmark3 克隆 RFID 门禁卡** | 未加密的 125kHz HID ProxCard II 门禁卡 — 不到10秒即可克隆 | 获得与合法员工进出一模一样的持久大楼访问权限 | | **在停车场投放 BadUSB** | 基于好奇心理,员工会插上捡到的 USB 设备 — payload 在3秒内执行 | 反弹 shell、凭证窃取、持久化后门 — 无需用户交互 | | **公共区域无人监控的网络接口** | 会议室、大厅和走廊中带有处于企业活动 VLAN 上的活动以太网端口 | 投放一个 Packet Squirrel 或 Raspberry Pi — 从外部获取完整的内部网络访问权限 | | **不到30秒即可被撬开的锁** | 使用弹片锁的服务器机柜、使用 Kwikset 弹珠锁的网络间、使用万能钥匙弹片锁的文件柜 | 获得对服务器、交换机、备份磁带和敏感文件的物理访问权限 | | **无 USB 设备管控策略** | 终端接收任何 USB HID 设备,无白名单或告警 | 硬件键盘记录器可以在数周内神不知鬼不觉地记录每一次按键 | ### MITRE ATT&CK 覆盖范围 | 技术 ID | 名称 | Forge 模块 | |---|---|---| | **T1200** | 硬件添加 | ImplantModule — 网络分路器、投放设备、恶意 AP | | **T1091** | 通过可移动媒体进行复制 | BadUSBModule — Rubber Ducky、DigiSpark、O.MG Cable | | **T1056.001** | 输入捕获:键盘记录 | KeyloggerModule — 串联 USB、WiFi、BLE、固件级 | | **T1557** | 中间人攻击 (Adversary-in-the-Middle) | ImplantModule — Packet Squirrel、LAN Turtle、WiFi Pineapple | | **T1199** | 信任关系(物理访问) | RFIDModule — 门禁卡克隆、物理访问控制绕过 | **战术**: TA0001 初始访问, TA0009 收集, TA0003 持久化 ### CWE 映射 | CWE | 描述 | 相关性 | |---|---|---| | **CWE-306** | 关键功能缺失认证 | 网络间、服务器机柜没有锁或仅使用默认锁 | | **CWE-284** | 不当的访问控制 | 门禁系统使用未加密的 RFID,无防回传机制 | | **CWE-693** | 保护机制失效 | USB 端口无限制,缺乏设备管控策略 | | **CWE-311** | 敏感数据缺失加密 | Wiegand 协议(读卡器与控制器之间为明文卡数据) | ## 为什么会有这个项目 组织在下一代防火墙、XDR 平台和全天候运作的 SOC 分析师身上花费数百万美元。然而他们却在机房门上装了一把 $4 的弹片锁,让每个工作站的 USB 端口完全敞开,并发放可以在刷卡瞬间就被克隆的未加密 125kHz RFID 门禁卡。 物理安全是被遗忘的防线。渗透测试的范围通常将物理向量排除在外,因为它们“超出范围”或“风险太高”——这意味着它们永远不会被测试,因此也永远不会被修复。机房装有死锁?那个死锁是一把可以在5秒内被梳子拨开的 Kwikset。大楼有刷卡门禁?那些卡是 HID ProxCard II —— 一台 $300 的 Proxmark3 就能从走廊对面克隆它们。 Forge 的存在是因为物理安全评估不应该在每次行动中都重复造轮子。它生成物理红队人员所需的各种 payload、检查清单、命令参考和部署计划——从用于停车场投放的 DuckyScript,到带有 C2 回调配置和清理程序的全套植入物部署指南。 该框架以业界用于网络和应用测试的同等严谨性来对待物理安全。每个模块生成的交付物都直接映射到评估报告的各个章节,因为重点不仅在于如何打进去——而是用能够促成预算获批并推动升级门锁的语言来证明风险所在。 ## 功能 ### 模块 1:BadUSB / Rubber Ducky Payload 生成器 生成可直接部署的 DuckyScript payload、用于 DigiSpark/ATtiny85 的 Arduino 代码,以及兼容 O.MG Cable 的脚本。 | Payload | 平台 | 描述 | |---|---|---| | 反弹 Shell | Windows | PowerShell 下载执行器 → 执行分阶段 payload | | 反弹 Shell | Linux/macOS | 终端 → bash 反弹 shell 单行命令 | | 凭证窃取 | Windows | 导出所有已存储的 WiFi 密码 → 通过 HTTP POST 外发 | | 安装后门 | Windows | 禁用 Defender → 下载植入物 → 注册表持久化 | | 数据渗透 | Windows | 压缩“文档”文件夹 → 上传至攻击者服务器 | | 系统侦察 | Windows | 主机名、IP、用户、已安装软件 → 外发 JSON | | 平台检测 | 跨平台 | 在执行特定平台 payload 前检测操作系统 | **输出格式**: DuckyScript (.txt)、DigiSpark Arduino (.ino)、inject.bin 编码说明 **设备兼容性**: Hak5 Rubber Ducky、DigiSpark ATtiny85、O.MG Cable、Malduino、CJMCU BadUSB、Flipper Zero (BadUSB 模式) ### 模块 2:RFID/NFC 克隆与攻击模板 涵盖低频和高频门禁卡的 Proxmark3 和 Flipper Zero 完整命令参考。 | 技术 | 频率 | 攻击方式 | 工具 | |---|---|---|---| | HID ProxCard II | 125kHz | 读取、克隆到 T5577 | Proxmark3 | | EM4100 | 125kHz | 读取、克隆、暴力破解 | Proxmark3 | | MIFARE Classic | 13.56MHz | 密钥恢复 (hardnested)、扇区导出、克隆 | Proxmark3 | | MIFARE DESFire | 13.56MHz | 默认密钥认证 | Proxmark3 | | NTAG213/215/216 | 13.56MHz | 读取、写入、克隆 | Proxmark3 / Flipper | | NFC 中继 | 13.56MHz | 读卡器与卡片之间的实时中继 | NFCGate + Android | **交付物**: Proxmark3 速查表、Flipper Zero 对应操作、门禁卡克隆工作流、物理访问控制评估检查清单 ### 模块 3:物理侦察 用于系统化物理安全评估的结构化检查清单和模板——从卫星图像分析到现场记录。 | 类别 | 覆盖范围 | |---|---| | 建筑外围 | 围栏类型、摄像头位置、照明、保安巡逻规律 | | 出入口 | 大门、卸货区、吸烟区、紧急出口的尾随风险 | | 访问控制 | 门禁卡类型评估、PIN 键盘、生物识别、防尾随门厅识别 | | 监控 | 摄像头类型 (PTZ/固定/半球)、覆盖盲区、DVR 位置 | | 网络 | 可见的以太网端口、无线 AP、网络间访问权限 | | 社会工程学 | 前台流程、访客门禁卡、承包商入场、伪装场景 | | 废弃物 | 碎纸政策合规性、垃圾箱可及性、电子废弃物处理 | | 环境 | 机房、UPS/发电机、HVAC 访问权限、架空地板、吊顶 | **交付物**: 侦察检查清单、拍照记录模板、OSINT 检查清单、5 个带有时间分析的伪装场景、行动报告模板 ### 模块 4:锁具与物理绕过评估 针对大型企业环境中各种锁具类型的评估指南和技巧参考。 | 锁具类型 | 常见位置 | 绕过方法 | 典型耗时 | |---|---|---|---| | 弹片锁 | 办公桌抽屉、文件柜 | 拨片/梳针 | 5-15 秒 | | 弹珠锁 (Kwikset) | 室内门、部分杂物间 | 梳针、撞针 | 5-30 秒 | | 弹珠锁 (Schlage) | 办公套间 | SPP、撞针 | 30-120 秒 | | 弹珠锁 (Medeco) | 机房、高安全性区域 | 仅限专家级 SPP | 5-30+ 分钟 | | 管状锁 | 服务器机柜、自动售货机 | 管状拨片 | 10-30 秒 | | 挂锁 (Master) | 大门、公用设施间 | 垫片 | 10-30 秒 | | 弹簧锁 | 无死栓的室内门 | 信用卡/专用工具 | 2-10 秒 | | 电子密码键盘 | 机房、限制区域 | 偷窥、热成像、默认 PIN | 视情况而定 | **交付物**: 锁具评估指南、8 种带有操作步骤的绕过技术、商业工具清单、服务器机柜评估、保险柜评估指南 ### 模块 5:USB 硬件键盘记录器部署 针对硬件键盘记录器行动的端到端规划——设备选择、部署流程、防检测、日志分析和报告。 | 键盘记录器类型 | 取回方式 | 被发现风险 | 最适用途 | |---|---|---|---| | 串联 USB | 物理接触 | 极低 | 短期行动、目标易于接触 | | 支持 WiFi | 远程 (WiFi) | 中等 (恶意 AP) | 较长潜伏期、远程获取日志 | | 蓝牙 | 远程 (BLE) | 中等 | 无需物理接触的近距离获取 | | 固件级 | 魔法按键序列 | 几乎为零 | 高安全性目标、长潜伏期 | **交付物**: 硬件参考、部署检查清单、防检测指南、按键日志分析(凭证特征提取)、反检测评估、部署报告模板 ### 模块 6:隐蔽硬件植入规划 针对网络植入物的部署规划——从设备选择和 C2 配置到位置摆放、电源管理和行动后清理。 | 植入物 | 功能 | 电源 | 摆放位置 | |---|---|---|---| | Packet Squirrel / Shark Jack | 串联网络分路、MITM、数据包捕获 | PoE / USB | 墙壁插座与设备之间 | | LAN Turtle | 隐蔽 USB 以太网适配器、反向 SSH | USB 总线供电 | 目标机器的 USB 端口 | | WiFi Pineapple | 恶意 AP、邪恶双子、凭证捕获 | 交流电 / PoE / 电池 | 天花板瓦片后、家具后方 | | Raspberry Pi Drop Box | 完整 Linux、SSH 隧道、扫描、网络枢纽 | PoE HAT / 交流电 / 电池 / 蜂窝网络 | 网络间、桌子下方 | **C2 选项**: SSH 反向隧道 (AutoSSH)、WireGuard/OpenVPN、DNS 隧道 (iodine)、蜂窝调制解调器 (带外通信) **交付物**: 植入物类型参考、带有位置摆放策略的部署指南、C2 配置模板、电源管理矩阵、防检测检查清单、虚假资产标签生成、部署与清理检查清单 ## 架构 ``` ┌──────────────────────────────────────────────────────────────────────┐ │ forge.py (CLI Entry Point) │ │ │ │ argparse ──► EngagementContext ──► Module Router ──► JSON Export │ │ │ │ │ ┌───────────────────────────────┼───────────────────┐ │ │ │ │ │ │ │ │ │ ┌────▼────┐ ┌─────▼─────┐ ┌─────▼────┐ ┌─▼──┐ ┌──▼───┐ │ │ │ BadUSB │ │ RFID │ │ Recon │ │Lock│ │Keylog│ │ │ │ Module │ │ Module │ │ Module │ │Mod │ │ Mod │ │ │ └────┬────┘ └─────┬─────┘ └─────┬────┘ └─┬──┘ └──┬───┘ │ │ │ │ │ │ │ │ │ │ ┌────▼────┐ │ ┌───▼────┐ │ │ │ │ │Implant │ │ │ │ │ │ │ │ │ Module │ │ │ │ │ │ │ │ └────┬────┘ │ └───┬────┘ │ │ │ │ │ │ │ │ │ │ └──────────────┴────────────────┴─────────┴────────┘ │ │ │ │ │ AttackResult[] │ │ │ │ │ ┌───────────▼───────────┐ │ │ │ Rich Console Output │ │ │ │ + JSON Export File │ │ │ │ + Artifact Directory │ │ │ └────────────────────────┘ │ └──────────────────────────────────────────────────────────────────────┘ Data Flow: CLI args → EngagementContext (target, platform, device type) → Selected modules execute sequentially → Each module appends AttackResult entries → Artifacts written to output directory → Summary table rendered via Rich → Optional JSON export for downstream tooling ``` ## 攻击流程 使用 Forge 进行的典型物理安全评估遵循以下步骤: ``` 1. PRE-ENGAGEMENT └─► forge --target-org "Target" --modules recon --output-dir ./recon Generate physical recon checklists, OSINT templates, pretext scenarios 2. RECONNAISSANCE (On-Site) └─► Walk the perimeter with recon checklist └─► Photograph badge readers, cameras, locks, network jacks └─► Identify badge technology (HID ProxCard? MIFARE? iCLASS?) └─► Map entry points, guard patterns, shift changes 3. BADGE CLONING └─► forge --target-org "Target" --modules rfid --device-type rfid Generate Proxmark3 commands for identified badge type └─► Clone badge using generated procedure └─► Test clone on non-critical reader 4. BADUSB PREPARATION └─► forge --target-org "Target" --modules badusb --platform windows Generate DuckyScript payloads for target platform └─► Load payload onto Rubber Ducky / DigiSpark / O.MG Cable └─► Drop in parking lot or deploy during physical access 5. LOCK BYPASS └─► forge --target-org "Target" --modules lock Identify lock types on server room, network closet, racks └─► Apply appropriate bypass technique └─► Document time-to-bypass for each lock 6. IMPLANT DEPLOYMENT └─► forge --target-org "Target" --modules implant,keylogger Plan implant placement, C2 configuration, keylogger deployment └─► Deploy hardware implant in network closet └─► Deploy keylogger on high-value workstation └─► Verify C2 callback and keystroke capture 7. POST-ENGAGEMENT └─► forge --target-org "Target" --modules all --output report.json Generate complete artifact set and JSON export └─► Retrieve all deployed hardware └─► Complete cleanup checklist └─► Compile assessment report from generated templates ``` ## 用法 ### 运行所有模块 ``` python forge.py --target-org "Acme Corp" --modules all --platform windows --output-dir ./engagement ``` ### 仅生成 BadUSB Payload ``` python forge.py --target-org "Acme Corp" --modules badusb --platform windows --yes python forge.py --target-org "Acme Corp" --modules badusb --platform linux --yes ``` ### RFID 评估包 ``` python forge.py --target-org "Acme Corp" --modules rfid --device-type rfid --yes ``` ### 物理侦察 + 锁绕过 ``` python forge.py --target-org "Acme Corp" --modules recon,lock --output-dir ./physical_assessment --yes ``` ### 键盘记录器 + 植入规划 ``` python forge.py --target-org "Acme Corp" --modules keylogger,implant --output report.json --yes ``` ### 将结果导出为 JSON ``` python forge.py --target-org "Acme Corp" --modules all --output engagement_results.json --yes ``` ### CLI 参考 ``` usage: forge [-h] --target-org TARGET_ORG --modules MODULES [--output OUTPUT] [--yes] [--platform {windows,linux,macos}] [--device-type {badusb,rfid,nfc,keylogger,wifi_keylogger,ble_keylogger}] [--output-dir OUTPUT_DIR] Options: --target-org Target organization name (required) --modules Comma-separated: badusb,rfid,recon,lock,keylogger,implant,all --output Export results to JSON file --yes Skip legal warning prompt --platform Target platform: windows, linux, macos (default: windows) --device-type Hardware focus: badusb, rfid, nfc, keylogger (default: badusb) --output-dir Artifact output directory (default: ./forge_output) ``` ## 输出 ``` ______ / ____/___ _________ ____ / /_ / __ \/ ___/ __ `/ _ \ / __/ / /_/ / / / /_/ / __/ /_/ \____/_/ \__, /\___/ /____/ Physical & Hardware Security Framework v1.0.0 ──────────────────────────────────────────────────── ┌─────────────────────────────────────────────────────────────────────────────┐ │ LEGAL AND ETHICAL NOTICE │ │ Forge Framework is designed for AUTHORIZED security assessments only. │ │ You MUST have explicit written permission from the asset owner. │ └─────────────────────────────────────────────────────────────────────────────┘ Do you have written authorization to proceed? [y/N]: y [INFO] Output directory: C:\engagements\acme_physical [INFO] Modules to run: badusb, rfid, recon, lock, keylogger, implant ──────────────────────────────────────────────────────────────── Module: BadUSB / Rubber Ducky Payload Generator ──────────────────────────────────────────────────────────────── [INFO] Target organization: Acme Corp [INFO] Target platform: windows [INFO] Generating DuckyScript payloads... [ OK ] Artifact written: ./forge_output/badusb_reverse_shell_windows.txt [ OK ] Artifact written: ./forge_output/badusb_cred_harvest_windows.txt [ OK ] Artifact written: ./forge_output/badusb_backdoor_windows.txt [ OK ] Artifact written: ./forge_output/badusb_exfil_windows.txt [ OK ] Artifact written: ./forge_output/badusb_recon_windows.txt [ OK ] Artifact written: ./forge_output/badusb_platform_detect_windows.txt [INFO] Converting reverse shell to DigiSpark/ATtiny85 Arduino code... [ OK ] Artifact written: ./forge_output/digispark_reverse_shell.ino [ OK ] O.MG Cable compatible — use generated .txt payloads directly. [WARN] Timing optimization: Adjust DELAY values based on target speed. [ OK ] Artifact written: ./forge_output/BADUSB_README.md [ OK ] BadUSB module complete — 7 artifacts generated. ──────────────────────────────────────────────────────────────── Module: RFID/NFC Clone & Attack Templates ──────────────────────────────────────────────────────────────── [INFO] Generating low-frequency (125kHz) RFID attack commands... [ OK ] Artifact written: ./forge_output/rfid_lowfreq_commands.txt [INFO] Generating high-frequency (13.56MHz) NFC attack commands... [ OK ] Artifact written: ./forge_output/rfid_highfreq_commands.txt [INFO] Generating Proxmark3 command cheatsheet... [INFO] Generating Flipper Zero command equivalents... [INFO] Generating badge cloning workflow... [INFO] Generating physical access control assessment checklist... [ OK ] RFID/NFC module complete — assessment package generated. ──────────────────────────────────────────────────────────────── Engagement Summary ──────────────────────────────────────────────────────────────── ╭──────────────┬──────────────────────────┬────────┬──────────┬─────────────╮ │ Module │ Action │ Status │ Severity │ Notes │ ├──────────────┼──────────────────────────┼────────┼──────────┼─────────────┤ │ BadUSB │ generate_reverse_shell │ OK │ HIGH │ DuckyScr... │ │ BadUSB │ generate_cred_harvest │ OK │ HIGH │ DuckyScr... │ │ BadUSB │ generate_digispark │ OK │ HIGH │ Arduino ... │ │ RFID │ lf_rfid_commands │ OK │ HIGH │ Low-freq... │ │ RFID │ hf_nfc_commands │ OK │ HIGH │ High-fre... │ │ PhysicalRecon│ generate_recon_checklist │ OK │ INFO │ Comprehe... │ │ LockBypass │ lock_assessment_guide │ OK │ INFO │ Lock typ... │ │ Keylogger │ keylogger_type_reference │ OK │ INFO │ Hardware... │ │ Implant │ implant_type_reference │ OK │ INFO │ Network ... │ ╰──────────────┴──────────────────────────┴────────┴──────────┴─────────────╯ Total: 18 actions | 18 OK | 0 FAIL | 0 CRITICAL [ OK ] Results exported to: C:\engagements\acme_physical\report.json Artifacts directory: C:\engagements\acme_physical\forge_output Forge Framework v1.0.0 — engagement complete. ``` ## 法律声明 本框架仅授权用于**合法的安全评估**。在进行任何物理安全测试之前,用户必须获得资产所有者的明确书面许可。未经授权使用这些技术将构成非法入侵、计算机欺诈,并可能触犯联邦和州法律规定的其他罪行。 作者和贡献者不对因滥用本软件造成的损害任何责任。使用 Forge 即表示您对自己的行为承担完全的法律责任,并确认您是在具有文件化的交战规则和签署的工作说明书的授权范围内进行操作。 物理安全测试具有固有风险,包括但不限于:与安保人员发生冲突、执法人员介入、财产损坏和人身伤害。请务必随身携带您的授权书。务必在目标组织内设有紧急联系人。务必在评估开始前商定好安全词或中止程序。
标签:BadUSB, RFID克隆, 文档结构分析, 物理安全, 硬件安全, 逆向工具