cipher-attack/Chimera

GitHub: cipher-attack/Chimera

Chimera 是一款需要 root 权限的 Android 物理安全评估工具,通过 HID 模拟和 payload 注入将手机变成键盘注入设备,替代传统 USB 攻击硬件。

Stars: 1 | Forks: 0

Chimera Logo

Chimera

Hardware Emulation & Proximity Exploitation

Android Root
## 项目初衷 我厌倦了背着装满 Hak5 设备和线缆的双肩包到处跑。我的口袋里本来就已经带着一台 Linux 机器了,所以我摸索出了如何强制 Android 原生处理 HID 和 RNDIS 相关的工作。 Chimera 直接绑定到内核的 ConfigFS。它可以输出 payload、伪装块设备,并通过 USB Ethernet 建立带外(OOB)的 C2。你只需将手机插到目标服务器上,让它模拟成一个键盘,然后开始将按键输入直接转储到 `/dev/hidg0`。完全不需要任何中间件。

## 实际功能 * **基于 ConfigFS 的原生 HID**:我们绕过了所有 Android 的高层垃圾代码,直接将字节写入 `/dev/hidg0`。响应非常迅速。EDR 通常不会理会它,因为它看起来就像一个廉价的 Dell 键盘。 * **手机端 DuckyScript 编译器和编辑器**:你可以使用内置的 payload 编辑器在应用中编写脚本。编译器会对其进行解析并立即触发中断。你完全不需要笔记本电脑。 * **Payload 管理**:直接从手机存储中导入你自己的 `.txt` payload,或者直接在应用内搜索并拉取 Hak5 社区仓库中的资源。 * **基于 RNDIS 的 OOB C2**:强制你的手机伪造一个 USB Ethernet 接口(`usb0`)。它会启动一个微型的嵌入式 Web 服务器,以便你从其他设备更换 payload,或者仅仅是监控当前的执行状态。Windows 非常喜欢 RNDIS,通常会瞬间完成安装。macOS 则会对此百般阻挠,因为 Apple 讨厌非标准的复合设备签名。 * **Bluetooth LE HID**:当目标锁定物理 USB 端口时,可以切换到原生的 L2CAP Bluetooth API 并通过空中发送按键指令。它非常管用。 * **伪装大容量存储**:将原始的 `.bin` 或 `.img` 映射到 `usb_f_mass_storage`。砰,你的手机现在就变成了一个 64MB 的闪存盘。你可以投放二进制文件或窃取数据。 ## 技术栈 它是 Kotlin UI 相关代码和底层 C++ JNI hook 的混合体。 * **UI**:Jetpack Compose。 * **Coroutines**:用于处理对字符设备的 I/O 操作,这样我们在转储 5MB 的 payload 脚本时就不会完全阻塞主线程。 * **JNI Hooks**:C++ 代码完全跳过 JVM,直接激进地读取 `sysfs` 节点,以弄清楚你的内核实际上支持哪些硬件功能。 ## 运行前提 你不能指望在一台纯净的 Pixel 手机上直接安装它就能运行。你需要 root 权限。这是硬性要求。 1. Magisk、KernelSU、APatch。我不管你用哪个,只要拿到 root 权限就行。 2. 你的内核必须已经编译进去了 `CONFIG_USB_CONFIGFS` 和 `CONFIG_USB_CONFIGFS_F_HID`。原厂内核通常会精简掉这些。去刷一个 NetHunter 吧。 3. 如果要使用无线的 BT 功能,需要 Android 11 或更高版本。 ## 编译项目 ``` git clone https://github.com/cipher-attack/chimera.git cd chimera # 修复你的 local.properties 以便 CMake 知道你的 NDK 在哪里,否则 JNI 编译会立即失败。 ./gradlew assembleDebug ``` ## 别做蠢事 (OpSec 与 特性说明) * 目标操作系统底层需要时间来挂载 HID 驱动。如果你立刻开始疯狂发送按键指令,前 10 个字符就会丢失在虚空中。请使用 `DELAY 1000`。 * Android 的 Doze 模式非常激进。如果你的屏幕关闭,系统通常会使你后台的 Coroutines 失效。请将 Chimera 排除在电池优化之外,否则你会在执行过程中失去 C2 连接。操作系统强制应用休眠的情况也是同理。 ## 文档 请阅读 [DOCUMENTATION.md](DOCUMENTATION.md) 了解有关 JNI 桥接的实际细节,以及为什么构建复合 USB 接口会如此令人头疼。此外,在提交 PR 或寻求帮助之前,请先阅读 [CONTRIBUTING.md](CONTRIBUTING.md) 和 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) 文件。 ## 下载 * **[下载发布版 APK](https://github.com/cipher-attack/chimera/releases/latest/download/app-release.apk)**(经过优化和精简,适合日常操作使用) * **[下载调试版 APK](https://github.com/cipher-attack/chimera/releases/latest/download/app-debug.apk)**(包含详细日志,如果你想排查 ConfigFS payload 失败的原因,请使用此版本) ## 联系方式 * [Telegram](https://t.me/cipher_attacks) * [GitHub](https://github.com/cipher-attack) * Email: [birukgetachew253@gmail.com](mailto:birukgetachew253@gmail.com) **免责声明:** 我编写这个工具是为了供红蓝对抗和物理安全评估使用。在将你的手机插入他人的服务器机柜之前,请务必获得明确的授权。
标签:Android, Bash脚本, DSL, HID攻击, Payload注入, USB模拟