news 2026/10/7 20:14:40

exfil_auto_eof_detect扩展详解:USB Rubber Ducky数据渗出结束检测完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
exfil_auto_eof_detect扩展详解:USB Rubber Ducky数据渗出结束检测完全指南

exfil_auto_eof_detect扩展详解:USB Rubber Ducky数据渗出结束检测完全指南

【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads

exfil_auto_eof_detect是 USB Rubber Ducky 官方 Payload 仓库(README.md)中payloads/extensions/目录下的一个核心扩展,用于在 USB HID 数据渗出(Keystroke Reflection)过程中自动检测渗出何时结束。它通过轮询 CapsLock / NumLock 的状态变化判断数据流是否走完,是构建"纯键盘 HID 渗出"Payload 的关键组件。

一、什么是数据渗出结束检测?

在 USB Rubber Ducky 的数据渗出(Data Exfiltration)场景中,Ducky 并不依赖网络连接,而是把目标主机上的文件内容"编码"成一串锁键(Lock Key)按键事件回打给主机,再反射回 Ducky 的存储区。整个过程就像一场无声的键盘对话:

那么问题来了:Ducky 怎么知道"最后一个比特已经发完了"?

  • Windows 版 HID 渗出(windows_hid_exfil.txt)会在数据末尾追加一个%{SCROLLLOCK}作为"结束帧";
  • Linux 版 HID 渗出(linux_hid_exfil.txt)则没有结束帧,位流直接结束。

exfil_auto_eof_detect 扩展就是为后一种情况设计的:它不靠"结束帧",而是靠"等待"——当 CapsLock 和 NumLock 持续一段时间不再翻转时,就判定数据流已经结束。这正是它名字中EOF(End Of File,结束符)的含义。

二、核心函数 WAIT_FOR_EOF 的工作原理

扩展源码见 exfil_auto_eof_detect.txt,版本 1.1,作者 Korben。它的逻辑非常直观:

步骤行为说明
1记录 CapsLock / NumLock 当前状态作为下一轮对比的基准
2每20ms轮询一次锁键状态DELAY 20轮询间隔
3检测到 CapsLock 变化 → 亮绿灯(LED_G),重置静默计数说明主机还在"打"位流
4检测到 NumLock 变化 → 亮红灯(LED_R),重置静默计数同上
5两个锁键都没变化 → 静默计数 +1,熄灭 LED累计"安静"的轮次
6静默计数达到#INACTIVTY_TARGET(默认 10)→ 判定结束,跳出循环约 200ms 无数据即结束

几个值得注意的细节:

  • 可配置阈值:DEFINE #INACTIVTY_TARGET 10(L15)。默认 10 次 × 20ms ≈200ms的静默窗口。如果渗出速度较慢或位间隔较长,可以适当调大该值,避免"误判提前结束";追求快速收尾则可调小。
  • 前提约束:官方文档明确要求"目标系统至少反射 2 个锁键",且不反射超过 2 个锁键(L9-L11),因此它默认 CapsLock 和 NumLock 分别代表 0 和 1 两个比特。
  • LED 状态反馈:渗出进行中绿灯/红灯交替闪烁,结束后稳定亮绿(LED_G),与仓库中 LED-example1.txt 演示的锁键—LED 联动是同一套机制。

三、实战使用:与 HID 渗出扩展搭配

WAIT_FOR_EOF()是函数式 API,必须先引入本扩展,再在渗出脚本中调用:

1. 引入顺序

在 PayloadStudio 中加载扩展时,把 exfil_auto_eof_detect.txt 放在 linux_hid_exfil.txt之前编译。Linux 扩展在文档中直接声明了依赖关系:"REQUIRES EXTENSION EXFIL_AUTO_EOF_DETECT"(L5、L15)。

2. 调用位置

在RUN_LINUX_EXFIL()发起位流之后等待结束(L66-L71):

ENTER WAIT_FOR_EOF() $_EXFIL_MODE_ENABLED = FALSE

3. 锁键状态保护

两个 HID 渗出扩展都提供SAVE_AND_RESTORE_LOCKS开关:渗出前保存目标机原有的 CapsLock/NumLock 状态,WAIT_FOR_EOF()返回后通过RESTORE_HOST_KEYBOARD_LOCK_STATE复原(linux_hid_exfil.txt L27、windows_hid_exfil.txt L24),让目标用户几乎无感知。

💡 对比记忆:Windows 版用WAIT_FOR_SCROLL_CHANGE等待"结束帧"(windows_hid_exfil.txt L62),Linux 版用WAIT_FOR_EOF()等待"静默超时"。二者思路不同,选择时要看位流格式。

四、渗出完成后的数据在哪?

渗出结束后,位流被解码写入 Ducky 的 U 盘存储区(通常需要ATTACKMODE HID STORAGE),在资源管理器中即可看到收集到的文件,效果类似下面这种"loot 文件落盘"的结果:

如果需要更简单、以网络方式落盘的渗出对照,可以看看示例 Exfiltration-example1.txt——它把抓到的凭据直接重定向写入 DUCKY 盘,原理不同但目标一致。

五、相关扩展与配套文件清单

文件作用
exfil_auto_eof_detect.txt本次主角:静默超时式结束检测,WAIT_FOR_EOF()
linux_hid_exfil.txtLinux 键盘反射渗出,强依赖本扩展
windows_hid_exfil.txtWindows 键盘反射渗出,用 ScrollLock 结束帧
detect_ready.txt用 CapsLock 反射探测"主机就绪",动态启动延迟,常与渗出组合使用
os_detect.txt操作系统探测,用于分流不同平台的渗出逻辑

六、常见问题(FAQ)

Q1:为什么我的渗出总是提前结束?位流间隔超过了静默窗口。调大#INACTIVTY_TARGET(例如 10 → 30,约 600ms),或检查目标机xdotool --delay等参数是否过小导致位与位之间抖动。

Q2:它能在 Windows 上用吗?函数本身是平台无关的轮询逻辑,理论上可以,但官方定位是"仅反射 2 个锁键"的场景;Windows 渗出自带 ScrollLock 结束帧,直接WAIT_FOR_SCROLL_CHANGE更可靠。

Q3:LED 一直闪烁不结束怎么办?说明 CapsLock/NumLock 仍在被翻转——通常是渗出脚本没执行完、目标窗口没聚焦,或主机锁键状态有外部干扰。可先用 detect_ready.txt 确认主机确实会反射 CapsLock。

Q4:编译要注意什么?所有 Payload 需使用 Hak5 PayloadStudio 编译(见 README.md 的 Getting Started 说明),扩展之间靠DEFINE/FUNCTION共享,加载顺序决定了WAIT_FOR_EOF()是否可用。

七、小结

  • exfil_auto_eof_detect用"20ms 轮询 + 200ms 静默阈值"实现了 USB HID 数据渗出的结束检测,让无结束帧的位流也能优雅收尾;
  • 核心函数WAIT_FOR_EOF()是 linux_hid_exfil.txt 的硬性依赖,编译时注意扩展加载顺序;
  • 通过#INACTIVTY_TARGET一个参数即可调节灵敏度,LED 三色反馈让渗出过程"看得见";
  • 想动手实践,建议按"本扩展 → linux_hid_exfil → 简单示例"的顺序,在自己拥有或已获授权的设备上测试。

⚠️ 安全声明:本仓库 Payload 仅供学习、研究与已授权环境下的红蓝对抗演练,请勿用于任何未授权的系统。

【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 20:14:19

古诗怎么背不忘?用艾宾浩斯遗忘曲线复习

孩子背古诗「背了忘、忘了背」,问题大多不在「记性差」,而在「没复习」——或者说,复习的时机不对。人脑遗忘有规律:刚学完忘得最快,之后逐渐变慢。这就是艾宾浩斯遗忘曲线。按这个规律安排复习,在快忘的时…

作者头像 李华
网站建设 2026/10/7 20:12:38

​四足角色自动绑定怎样选择工具?标准站姿与骨骼检查

四足角色首先要满足标准站姿和结构清楚这两个前提。若角色有额外肢体、夸张姿势或抽象结构,应先做小样,并预留人工绑定方案。Tripo的Rigging功能可以为符合要求的静态角色生成骨骼,随后通过Bone Display检查骨骼,并从动作库选择动…

作者头像 李华