如果不是因为自己的博客站刚刚建成,我其实不是很想来CSDN转发自己的帖子
但是网站的浏览器优化(SEO)也挺难做的
所以只能先暂且勉为其难的借用一下社区平台,来为我的博客稍微引一点流量
也不知到有没有用,欢迎大家来访
原文出处:BadUSB——当黑客技术走进生活 - Pleasure的博客
操作示范视频:BadUSB 制作-当你拥有一个U盘你会干什么(Rubber Ducky)_哔哩哔哩_bilibili
下面是正片:
前言
在美剧《黑客军团》中有过这样一个画面,组织成员在警局停车场随机的撒下大量用于钓鱼的 U 盘,
然后就发生了下面的画面,
然而此时警局的电脑已经被黑,即使断网也已经无济于事了。
这就是一种黑客常用的手段 —— 利用 BadUSB 攻击
而我今天想要介绍的只是该手段中的其中一种变体,利用了 USB 设备模拟成 HID 设备(Human Interface Device,人机交互设备,比如键盘或鼠标),从而执行代码,进行攻击和数据篡改等操作。下面的图片可以看出它伪装成了人体学输入设备。
当然制作并利用 BadUSB 干坏事肯定是违法的,所以在这里我只能举个例子:通过插入 U 盘,让电脑迅速关机。
操作还算简单,可以用来整蛊同学,有兴趣的话大家可以跟着试试看。操作过程中如果存在什么问题,欢迎联系我一起讨论!
正文
这种通过模拟成 HID 设备的 U 盘严格来说其实并不是 U 盘,而是一个套了 U 盘外壳的树莓派板。需要事先在电脑上进行烧录写入代码,然后才能实现目的。
一些在操作过程遇到的错误,因为来不及截图,所以只能通过口头的方式进行说明
需要准备的材料
- 一块 Digispark 树莓派板 —— 网上有卖,大概 30¥左右
(大概长这个样子)
提醒一下注意保护开发板,因为它真的很脆,如果没有必要就不要拆开它的外壳看了。
- Arduino IDE 程序
- Digispark AVR Board 的驱动程序以及编译程序
当然如果你足够有钱(一般不太可能),可以考虑一下 USB Rubber Ducky,一个由美国厂家做的现成品。至少我只能自己动手卑微的搓了一个。
正式开始
①首先,我们先进行相关软件的安装,下载 Arduino IDE 的程序。这里使用的是 1.8.3 的版本,链接放在下方
https://github.com/arduino/Arduino/archive/refs/tags/1.8.19.zip
或者 https://downloads.arduino.cc/arduino-1.8.3-windows.zip
先不要插入 BadUSB, 因为它可能事先已经烧录了一些代码,会干扰安装的过程。
另外,可能会要求你需要什么编程环境,但我是学计算机的,所以没在这方面卡壳。
在这里我又忍不住想吐槽一下:在计算机科学中,各种软件或者库的版本问题,是导致项目无法正常运行的一大重要因素,不是太新就是太老……
如果你打不开上述的链接,那么大概率是因为 github 被墙的原因。
如果你想翻墙,或者你也想使用 ChatGPT,欢迎来我的小站商铺看看:yiming1234.com
下载完成并打开后应该是这样的一个界面
②然后是安装 Digispark 板的驱动
驱动链接放在下方
https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip
解压后运行 Dpinst64.exe 即可(根据自己的操作系统决定)
③附加开发板管理网址
因为 Arduino IDE 原有的程序,是没有携带 Digispark 的相关编译程序的,所以需要外部链接引入下载。
如上图所示,点击文件 首选项 在附加开发板管理器网址中输入:http://digistump.com/package_digistump_index.json
这里我想说明一下,我查了一些资料,发现网上清一色的都是用的这个网址。其实这个网址只是为了方便国内的网友不方便翻墙而进行重定向的一个网址,实际指向的是这个:https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json
如果这两个链接填入都报错(忘记截报错内容了),自己在服务器上随便搭个网站存入这个 json 文件,然后引用应该就可以了。(不然我也无能为力了)
④安装相应环境
引入网址后,现在应该就可以搜索到相应的库。点击工具 开发板 开发板管理器
下载 Digistump AVR Boards 1.6.7
编写代码
BadUSB 也有属于它自己的简洁的代码格式,但导入到开发板中是 C 语言格式的代码,所以就需要进行转化。我这里用的是一个 python 的脚本。
在这里需要注意的是,你在网上可能会搜到这样的内容
但需要注意的是,需要结合自己的开发板情况而定。我就试过了,一会儿报错 Keyboard.h 不存在,一会儿报错 HID.h 不存在……
如果大家有需要,日后我可以将这个 python 转换文件做成在线转换网站供大家使用。
下面我们就拿强制关机来举个例子
具体实例
BadUSB Scripts
储存在 target.txt 中
DELAY 500
GUI r
DELAY 500
STRING cmd
DELAY 500
ENTER
ENTER
DELAY 500
STRING shutdown -s -f -t 0
DELAY 500
ENTER
ENTER
P.S. 多次输入 enter 为了防止中文输入法导致代码无法输入 延时根据电脑实际响应时长进行适当调整
然后在 CMD 终端中,cd 到项目文件夹,输入 python change.py target.txt finish
就会通过 python 将 target.txt 用 change.py 转换成可供 BadUSB 执行的代码 finish.ino
上传至 U 盘
成功界面,点击编译,显示编译完成
然后就只需点击右侧的上传按钮,等待交互框显示请在 60s 内插入开发板,然后插入 BadUSB 等待上传成功即可。
上传后需立刻拔出 U 盘,因为 BadUSB 已经制作完成,其中的代码会被立刻执行,然后你的电脑就马上关机了……
一些说明
这样,你就可以以此类推,将 badusb scripts 换做其他的内容,或是借用其他的库(比如说控制鼠标的 mouse.h),来实现你的伟大抱负。
要知道通过 BadUSB 进行的黑客攻击远比你想象的要快的多,因为攻击代码已经被事先编码然后通过机器执行,远超在屏幕前敲代码的程序员。
试想一下,你只是插了个 U 盘,就相当于在 1s 内就有个超级黑客坐在了你的电脑前,打开了命令终端或是关闭了防火墙,破解了你的密码,通过 ssh ftp 等远程文件传输协议,复制 修改了你的文件……
尾声
在现如今的时代,这种攻击手段用于钓鱼到不太可能。在路上掉落 U 盘的概率本来就微乎其微,又有多少人会费尽心思去弯腰捡起然后去插到电脑上查看。
然而如果不是专业的程序员,这种攻击手段的成功率往往还挺高的。
所以,请大家引以为戒,日后涨个心眼。
部分图片来自网络 转载请注明出处