平板电脑可以插u盘吗_听说过U盘攻击吗?一个小小的U盘就可以成为黑客手中的利器...

一个掉在地上的U盘,很多人捡到了都会插到自己的电脑上试试这个U盘是否好用,或者看看这个U盘里边存放了什么内容。但是你知道吗?这可能面临着电脑被入侵,数据被盗取的风险。很多人看到这里可能觉得小编是危言耸听,认为是不可能的,因为电脑作为USB Host,在USB Mass storage类型的设备中,USB指令的工作流大体是HOST->SLAVE->HOST,所以如果电脑不给相应的指令操作,数据不可能流向U盘。

a27556790c3ba140ab6a60d998966bfa.png

当然有些会想到以前的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盘攻击具体实现过程!! !

一、环境准备

1、先从某宝入手了一个BadUSB板,如下图所示:

26610ee5c0b94f78c9fa3524a0adf98d.png

2、准备工具

一个BadUSB_Rubber_Ducky(橡皮鸭)Arduino的IDE - 下载地址:(https://www.arduino.cc/en/Main/Software)DPinst64驱动(根据电脑型号来,普遍都是64位操作系统)

3、安装工具

Arduino的安装就不讲了,傻瓜式安装:安装包 - 下一步 - 完成!

DPinst64驱动安装的时候要选择始终信任来自Digistump LLC - 安装 - 下一步 - 完成!

a807852322de9a94a130cbdc0556da8a.png
7ffafd33ece66dfe506f3aa76d445465.png

二、开始配置

首先打开Arduino - 文件 - 首选项 - 附加开发板管理器网址:

9c8b4a6be02f5b063b9a7a752600cbe8.png

在工具 - 开发板管理器 - 先等待它下载完文件:

db27141f8e07311baf31309d1ba124e2.png
488eb488b8d5db71490b017b406bc591.png

接着在类型下拉菜单里有一个贡献然后选择Digistump_AVR安装完毕就Ok

744465578c4b07cc0f80cf2a42aabeef.png

最后选择开发板对应的开发板型号和编程器然后选择Keyboard一个模板:

01a7a76298b9050de2c98075f54b79b6.png
534fc2ed6094acce89b3ac8b69d78122.png

三、代码编写

这是它示例的代码:

#include "DigiKeyboard.h"void setup() { // don't need to set anything up to use DigiKeyboard}void loop() { // this is generally not necessary but with some older systems it seems to // prevent missing the first character after a delay: DigiKeyboard.sendKeyStroke(0); // Type out this string letter by letter on the computer (assumes US-style // keyboard) DigiKeyboard.println("Hello Power_Liu"); // It's better to use DigiKeyboard.delay() over the regular Arduino delay() // if doing keyboard stuff because it keeps talking to the computer to make // sure the computer knows the keyboard is alive and connected DigiKeyboard.delay(5000);}
4d6590aa6dcd7489c95110f4bb010373.png

上传烧录:

提示:Running Digispark Uploader…Plug in device now… (will timeout in 60 seconds)

这个时候需要60s的时间插入你的BadUSB:

cddd85e07c38b60b7a86dd2332e0af8f.png

提示 : Micronucleus done. Thank you! 说明已经上传成功!这个时候插入BadUSB它会一直输入Hello Power_Liu直到拔掉为止:

33275cf38a2962065a71ff9f63ea60de.png

接下来手就是写一个"Hello Hacker!"攻击脚本了

先在记事本中写好我们的代码 - 另存为 hacker.txt:

具体脚本可以私信哦!

1b66a8e64f4c6d5735ce34fd42e6c6a0.png

使用我们的Python转换脚本吧hacker.txt转换为ino文件:

转换完成后再当前目录下会有一个hacker.ino文件:

e726ecbd9a20d48a472a296dee40782b.png

打开后的代码是这样的:

5ab17663922314b3dc52a7aa6c15ac7c.png

上传脚本 - 插入BadUSB进行烧录程序:

4a47d4a7e3609f09c6f77a951f951b3b.png

上传成功后,它会自动执行我们的操作:会在屏幕上输出Hello Hacker!

最后当电脑插上这样的U盘就会被攻击者轻松入侵了!

看到这里很多小伙伴们都会感受到怕怕了!但是不用 害怕我们还是有防御方法的,接下来我们介绍一下:

四、如何防御U盘攻击?

整体上讲,并没有太好的解决办法,因为USB鼠标键盘几乎可随意接入一台PC并直接操作,除非哪天PC系统和USB硬件双向支持可信计算认证,当然还要保证厂商对此支持并且是讲信用的厂商,总之来说,目前10年甚至20年是不可能的。 现阶段我们假设设备的VID和PID是可信且可识别的(当然残酷的现实是VID和PID可被MPTOOL随意设置),针对不同类型的用户,有以下的建议:

1、个人用户

当我们在拿到一个陌生的USB设备时,尽量不要随意接入PC,如确实有必要,就接入虚拟机,把需要的数据拷出或拷入,再拔掉即可。当然一旦确认有异常现象,立即停止使用。

2、企业用户

可以安装内网安全管控系统,对USB端口和USB硬件进行策略管控。

感谢大家持续对小编的关注,对安全技术的关注,我们会持续推出更好更专业更有意思的内容,想对技术深度学习的朋友可以私信我的头条号或者加入我们的头条圈子!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值