正在阅读:解密BadUSB:让世界上所有USB都沦陷的漏洞解密BadUSB:让世界上所有USB都沦陷的漏洞

2014-11-17 00:15 出处:其他 作者:FreeBuf 责任编辑:shengyongzhen
1关于BadUSB,USB背景知识介绍回顶部

  声明:这篇发表自FreeBuf的文章内容主要源自SRLabs在2014 Black Hat大会上的演讲稿,原稿下载地址点这里。译者系某所信息安全工程师Rabbit_Run,小编对内容又稍作了整理。

 

  【PConline 干货铺】在今年的Black Hat黑帽大会上,柏林SRLabs的安全研究人员贾科布·莱尔(Jakob Lell)和独立安全研究人员卡斯滕·诺尔(Karsten Nohl)展示了被他们称作“BadUSB”(按照BadBIOS命名)的攻击方法,这种迄今为止最邪恶的安全漏洞让USB安全和几乎所有和USB相关的设备(包括具有USB端口的电脑)都陷入相当危险的状态。

badusb-top

  好景不长的是,在BadUSB公布不久的DerbyCon黑客大会上,两位安全研究人员亚当·考蒂尔(Adam Caudill)和布兰顿·威尔森(Brandon Wilson)居然对BadUSB作了reverse-engineered(反工程,亦称逆向工程)!不仅在现场演示,还将相关代码上传到了网上!两位“白帽子”则声称他们这么做的目的是向制造商施压。“如果我们再不向全世界证明这件事可以轻易做到,这个漏洞有多么致命,那么制造商可能会一直拖着什么都不做。因此,我们也是无奈必须要证明,这种攻击是切实可行的,而且任何人都能做到。”

  USB背景知识‍

  ‍‍1、USB内部结构‍‍

badusb-01

  BadUSB主要依靠USB驱动器的构建方式,USB通常有一个大容量的可重写的内存芯片用于实际的数据存储,以及一个独立的控制器芯片。控制芯片实际上是一个低功耗计算机,并且与你的笔记本电脑或台式机一样,它通过从内存芯片加载基本的引导程序来启动,类似于笔记本电脑的硬盘驱动器包含一个隐藏的主引导记录(MasterBoot Record)。

  ‍‍2、USB如何识别‍‍

badusb-02

  ‍‍3、USB设备的初始化‍‍

badusb-03

  设备可以拥有多个标识(一个设备可以被识别为多种类型):‍‍

  ·一个设备通过一个描述符标明它的功能;
  ‍‍·一个设备可以拥有多个描述符,如果它支持多种设备类别,例如网络摄像头+麦克风;
  ‍‍·设备可以注销,然后再次注册为一个不同的设备;

‍‍  ‍‍可重复编程的外设‍‍

badusb-04

  下面开始进入正题。>>

2USB攻击场景和手段分析,防护对策,总结回顶部

  ‍‍USB攻击场景‍‍

  ‍‍1、在Windows环境下感染USB,然后再控制Linux机器‍‍

  键盘模拟足够用于感染和权限提升(不需要软件漏洞)

badusb-05

  在Linux/Unix操作系统,LD_PRELOAD是一个环境变量,可以影响程序的运行时的链接(Runtimelinker),设置在程序运行前优先加载的动态链接库。通过这个环境变量,可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。一方面,我们可以以此功能来使用自己的或是更好的函数(无需别人的源码),而另一方面,我们也可以以向别人的程序注入恶意程序,从而达到那不可告人的罪恶的目的。

  ‍‍‍‍2、USB设备篡改Windows系统的DNS设置‍‍

  ‍‍通过“USB上的DHCP”转移网络流量‍‍‍‍

badusb-06

  意外收获:突破虚拟机‍‍

badusb-07

  ‍‍‍‍‍‍‍3、Android转移Windows机器的网络流量‍‍‍‍‍‍‍

  “我能借用你的笔记本给手机充电吗?”Android手机是最简单的USB攻击平台。

badusb-08

  Ethernet-Over-USB:将USB接口模拟为以太网接口,实现基于Ethernet的网络连接。

  Android设备的POC代码下载地址为:https://srlabs.de/blog/wp-content/uploads/2014/07/BadAndroid-v0.1.zip

  ‍‍4、USB引导扇区病毒‍‍‍

badusb-09

  ‍‍‍5、攻击方式总结‍‍‍

badusb-10

  ‍‍防护以及下一步‍‍

  ‍‍1、防护对策及缺陷‍‍

badusb-11

  ‍‍‍‍2、USB外设的可重复编程也有积极的用途‍‍‍‍

badusb-12

  ‍‍总结‍‍

  ·USB外设提供了多种入侵路径
  ‍‍·一旦感染,通过USB外设或其他途径,恶意代码可以隐藏在外设中,避免被系统清除
  ‍‍·只要USB控制器是可重复编程的,USB外设就不应该和他人共享[返回频道首页]

为您推荐

加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多

网络设备论坛帖子排行

最高点击 最高回复 最新
最新资讯离线随时看 聊天吐槽赢奖品