资讯详情

DuckyLogger深度解析:USB Rubber Ducky按键记录器与解密工具完整指南

📅 2026/10/7 14:54:17 | 华诺云谱 👁 阅读
DuckyLogger深度解析:USB Rubber Ducky按键记录器与解密工具完整指南
DuckyLogger深度解析USB Rubber Ducky按键记录器与解密工具完整指南【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloadsUSB Rubber Ducky 按键记录器 DuckyLogger 是官方 Payload 仓库中一款经典的按键记录载荷配合仓库自带的解密工具 duckyLoggerDecoder可将回传的原始按键流还原为可读的明文凭据。本文带你完整理解这套按键记录 远程回传 本地解密方案的架构设计、2.0 版本升级点与解密工具用法并附上防御排查建议适合安全新手入门 USB 注入类载荷的剖析。一、DuckyLogger 是什么USB Rubber Ducky 按键记录器的定位USB Rubber Ducky 是一款伪装成 U 盘、本质是键盘的 USB 设备。电脑天然信任键盘HID 人机接口设备因此它可以以超人的速度向目标系统敲击一段预设指令而用户几乎察觉不到。DuckyLogger 就运行在这套机制之上在仓库的凭据类载荷目录 payloads/library/credentials/ 中被归类为 Credentials 类别核心特征如下实时按键捕获记录目标机器的每一次击键而非截屏或文件详细按键日志回传的是原始按键事件流可事后完整还原持久化驻留通过 systemd 用户服务实现开机自启自动重连监听中断或断网后按周期自动恢复其设计目标是带 systemd 的 Unix 类系统主流 Linux 桌面发行版攻击模式为 HID。换句话说一旦 Ducky 插入一次密钥记录能力就会伴随每次开机自动复活。上图示意按键记录器的真正目标用户在登录界面键入账号密码的那一刻——这些字符会完整落入按键日志。二、按键记录器工作流程从注入到回传的四个阶段完整的工作流文档见 DuckyLogger/README.md载荷本体为 DuckyLogger/payload.txt。整个注入过程可拆为四个阶段阶段 1清除痕迹保持隐蔽载荷启动后的第一条实质指令就是清空 shell 历史payload.txt将HISTSIZE置 0 并删除历史文件。目的是让管理员翻查命令历史时什么都没发生过。阶段 2启动按键捕获机制载荷在系统临时区创建一个带点的隐藏目录/var/tmp/.system以.开头的目录在ls下默认不可见并在其中写入一个名为sys的监控脚本它通过xinput list找出所有键盘设备再用xinput test逐个实时监听按键事件payload.txt用wget从作者仓库下载配套工具xinput并赋予执行权限payload.txt阶段 3检测外网并回传原始按键流捕获只是第一步关键在于回传。载荷生成一个循环脚本systemBus先ping目标地址判断外网是否可达payload.txt网络可用时通过 PHP 的fsockopen建立到攻击机IP:端口的 socket把xinput test的原始输出流完整导过去使用前必须把默认占位地址0.0.0.0和端口4444替换为自己的服务器地址README 明确提示修改 payload.txt 第 43 行阶段 4systemd 服务实现持久化自启这是 DuckyLogger 最顽固的部分。载荷会注册两个 systemd 用户服务payload.txt服务作用systemBUS.service主服务运行按键捕获与回传循环reboot.service兜底脚本每 15 分钟重启一次主服务防止其意外停止此外还会把启动这两个服务的命令追加进~/.bashrc/~/.zshrcpayload.txt确保打开终端时也能拉起服务。三、DuckyLogger 2.0 升级对比更精简隐蔽的按键记录方案作者在 DuckyLogger2/ 目录中提供了 2.0 版本README.md | payload.txt官方描述其为最高效的版本。两代对比如下维度1.02.0是否需要目标端触发需要完全不需要开机全自动服务数量两个服务一个服务 一个 timer保活机制独立兜底脚本15 分钟间隔systemd timer默认 5 分钟间隔payload.txt 第 59 行脚本冗余存在冗余代码块已清理2.0 用 systemd 原生的timer unitOnBootSec60secondsOnUnitActiveSec300seconds替代了手写 while 循环更符合系统惯例也少了一个可疑脚本隐蔽性更高。四、解密工具 duckyLoggerDecoder 使用指南回传到攻击机的是一串xinput test的原始事件流形如key press 9 [ 18ms] 120.33ms人类无法直接阅读。解密工作由仓库自带的 duckyLoggerDecoder 完成使用分三步第 1 步启动 netcat 监听落盘原始按键日志# 新建日志文件 nc -lvp 4444 keystrokes.log # 或向已有日志追加 nc -lvp 4444 keystrokes.log第 2 步运行解密工具还原明文./duckyLoggerDecoder -f keystrokes.log -m normal -o decoded.txt第 3 步查看参数含义解密工具通过 getopts 参数解析 支持以下选项参数含义-f指定捕获的日志文件必填-m选择模式normal或informative必填-o指定输出文件必填-h显示帮助两种模式的实现逻辑不同normal模式会用xmodmap -pke把键码映射为字符并只保留press事件后输出纯按键序列duckyLoggerDecoder 第 43-45 行适合直接还原用户打了什么informative模式则保留完整事件行并附加键码到字符的映射注释第 47-49 行适合逐键审计时间线。上图所示的clipboard content: password就是这类载荷希望最终看到的形态还原后的明文里通常包含密码、Token 等敏感凭据。五、防御指南如何识别 USB Rubber Ducky 按键记录器理解攻击链之后排查思路就很清晰了查可疑隐藏目录重点看/var/tmp/.system这类临时区隐藏目录payload.txt查 systemd 用户服务systemctl --user list-unit-files中是否存在systemBUS.service、reboot.service等伪装成系统组件的名称描述故意起成 System BUS handler 以混淆视听查异常进程ps aux | grep xinput test正常的图形环境不会有人手动跑键盘监听查外联行为关注向陌生 IP 的 4444 等非常用端口的持久出站连接尤其配合ping心跳的循环脚本查 shell 配置~/.bashrc、~/.zshrc末尾是否被追加了systemctl --user enable --now语句物理层面对关键终端使用 USB 过滤驱动如 Roaming USB、USBGuard或仅开放 U 盘的存储接口、屏蔽 HID 接口六、获取源码与延伸阅读如需通读全部载荷源码可克隆官方仓库后浏览本地文件git clone https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads推荐阅读路径1.0 版文档payloads/library/credentials/DuckyLogger/README.md1.0 版载荷payloads/library/credentials/DuckyLogger/payload.txt2.0 版文档payloads/library/credentials/DuckyLogger2/README.md解密工具payloads/library/credentials/DuckyLogger/duckyLoggerDecoderDuckyScript 语言基础仓库根目录 README.md 中的 About DuckyScript™ 章节⚠️合规提示本文仅用于安全研究与防御学习。未经授权对他人系统执行按键记录与数据回传属于违法行为请务必只在自有授权环境内实验。【免费下载链接】usbrubberducky-payloadsThe Official USB Rubber Ducky Payload Repository项目地址: https://gitcode.com/GitHub_Trending/us/usbrubberducky-payloads创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑