如何把U盘变成黑客工具攻击电脑
U盘怎么可能随便接入电脑就盗取数据?
有时候上网会看到有人说用一个U盘接入电脑自动盗取信息的,当时想想U盘怎么可能盗取数据?第一反应就是不可能。
因为电脑作为USB Host,在USB Mass storage类型的设备中,USB指令的工作流大体是HOST->SLAVE->HOST,所以如果电脑不给相应的指令操作,数据不可能流向U盘。
当然有些会想到以前的U盘autorun病毒,在当今社会,在系统到防病毒安全软件的各种保护下,autorun病毒几乎毫无用武之地,所以也不难得出前面“不可能”的反应。
但是黑客往往就是在不可能中创造可能的,因此怎么才能让U盘主动发指令给PC,命令PC把数据传向U盘呢?其实这个问题如果深入其中会发现毫无解决方案,因此我们的思维需要跳出这个问题,把问题转换为:
“如何让PC自动处理一个USB设备主动发的指令?”
新的问题可以很容易得到答案,USB设备非常多,如USB网卡,USB鼠标键盘,USB麦克风,USB摄像头等等,这些设备都会主动发送数据给PC,而其中有部分需要打开某一个“开关”才能主动发送数据,如USB摄像头,打开后就可以不停发送视频流给PC。如USB网卡,驱动适配后一旦连接上网络可不停在整个网络中广播数据,但这些都或多或少有一些操作上的限制,因为需要手动参与,并且上层的PC软件负责接收数据后并没有很好的做出“入侵”相关的动作(当然USB网卡可以模拟自动发送网络命令,只需在网络中存在相应的漏洞,网络漏洞说到底也是因为“正常的指令”被PC处理并用于非正常的行为)。
综上,既然已经有了这么多USB设备能够被PC自动处理,那么就可以实现一个更易于攻击的工具,更自动化的USB设备。
最常见的就是USB鼠标键盘设备,因为这一类设备一旦接入PC,随时随地都可以触发操作,不需要手动参与,且操作系统自动接收并直接反馈操作(除非PC系统不支持鼠标键盘,那是真的需要被维修),很容易迷惑用户,比如我们假设一下:
1)一接入USB设备,自动发送WIN+R按键,
2)在短时间内,自动发送字符按键模拟输入cmd.exe,
3)再模拟输入net user add 指令,即可创建用户,进而远程连接
4)利用mshta 执行js脚本,可下载维(MU)护(MA)工具包,再对PC进行远程维(KONG)护(ZHI).等等。。
如何让一个U盘一接入就能够盗取数据?
问题回到原点,现在我们有了前面USB鼠标键盘的方案,事情好办多了,USB设备通过主控的固件开发可以实现同时具备Mass storage类型和HID类型,只要两者合二为一,如果没有U盘的主控,可使用“HUB+U盘+普通USB主控芯片”实现,再把U盘低价卖出去,那么....
那么问题来了,如何防止此类USB设备的攻击?
从整体上讲,并没有太好的解决办法,因为USB鼠标键盘几乎可随意接入一台PC并直接操作,除非哪天PC系统和USB硬件双向支持可信计算认证,当然还要保证厂商对此支持并且是讲信用的厂商,总之来说,目前10年甚至20年是不可能的。
现阶段我们假设设备的VID和PID是可信且可识别的(当然残酷的现实是VID和PID可被MPTOOL随意设置),针对不同类型的用户,有以下的建议:
1)个人用户:
在日常中,很多人对电脑突然弹出一个一闪而过的小窗口并不会在意,一旦有Win+R的运行窗口,几乎想做什么都可以做到,同样PC中一些常用软件都会开启很多快捷键,可钻的空子非常多(如QQ: 直接模拟鼠标键盘操作自动添加QQ好友,哪天看到QQ处于离开状态,就自动开启QQ远程...)。
所以,当我们在拿到一个陌生的USB设备时,尽量不要随意接入PC,如确实有必要,就接入虚拟机,把需要的数据拷出或拷入,再拔掉即可。当然一旦确认有异常现象,立即停止使用。
这种攻击防不胜防,当然我相信最重要的是
先确认自己是否能够承受被攻击的代价(装甲值最高的莫过于银行没存款,电脑没有女友照片的人啦),
如果不能承受,那把自己的安全意识培养起来吧。。。
网上也有很多免费的(可能带广告或病毒)USB设备管理软件。
2)企业用户:
安装内网安全系统(国内只要有钱没有什么解决不了的),对USB端口和USB硬件进行策略管控。
3)开发者:
21世纪人类需要掌握的必备技能就是程序开发,因为这类人可以动手做自己想做的事(未来世界万物都会IT化),对于这个问题,简单的是利用系统的设备管理API进行管理控制,实现对USB节点的信息过滤筛选,以及设备的禁用启用。
4)保密涉密用户
将USB端口使用环氧树脂水泥胶或其他安全固体胶封死,甚至直接定制没有USB HOST的主板,拆除USB端口等等。
补充1:
国外已有黑客开发了(BadUSB),不过是利用了群联主控泄漏的固件源码(C51)进行修改。
https://www.freebuf.com/articles/terminal/82238.html
开源代码
https://github.com/brandonlw/Psychson
题外话:群联这颗主控估计快停产了吧,国内找一个可开发的USB主控资源越来越少了,当然如果只是玩一玩不在乎价格成本,那USB主控还是很多的,但如果想批量生产,资源太少了,没一定出货量芯片厂商还不配合,所以简单需求或者学习建议某宝搜索,或者直接使用stm32,顺便把单片机也温故起来也许还是不错的,就是价格太高没法做低价产品。