什么是BadUSB攻击以及如何预防

news2025/4/10 17:39:45

BadUSB 攻击是指 USB 设备存在内置固件漏洞,该漏洞允许自身伪装成人机接口设备。一旦连接到其目标计算机,BadUSB 就可以谨慎地执行有害命令或注入恶意负载。

一种常见的BadUSB攻击类型是橡皮鸭。它可以通过使用使用隐藏漏洞创建的闪存驱动器来执行,该驱动器允许它模仿键盘。该设备可以预先编程,然后将大量击键注入毫无戒心的用户的计算机。

在组织内部,诸如USB阻止软件之类的预防措施是必要的,因为BadUSB攻击如果未被发现或停止,可能会导致未经授权执行命令,从而引发安全绕过事件,权限升级,DDoS攻击或主机的恶意软件感染,然后可能会传播到整个网络。

什么是BadUSB

BadUSB 是带有嵌入式固件的闪存驱动器,可用于重新编程设备并允许它充当人机界面小工具,例如键盘、鼠标或耳机。它们用于通过有效地伪装成人机接口设备 (HID) 在计算机上执行各种操作。换句话说,BadUSB是虚拟键盘,可以预先编程以在计算机上键入字符,而无需物理操作。一旦插入,他们就可以直接开始工作,甚至执行需要同时使用两个或多个键的复杂击键。

在这里插入图片描述

谁会使用BadUSB

BadUSB能够在瞬间键入数千个字符并快速运行提示,这就是为什么渗透测试人员经常使用这些设备来控制目标计算机而无需手动键入冗长的脚本的原因。

甚至系统管理员在设置新计算机时也经常求助于 BadUSB 设备。当可以让 BadUSB 为他们做提示时,为什么要花费数小时来浏览提示?除了BadUSB的合法使用之外,当落入坏人之手时,它被武器化的可能性仍然是当今网络社区中一个备受争议的话题。

网络犯罪分子经常使用 BadUSB 作为外部工具来注入恶意脚本,这些脚本旨在寻求管理权限、窃取密码或将恶意软件下载到计算机。

BadUSB 设备简史

BadUSB源于2006年发现的一个漏洞,该漏洞允许计算机在插入CDROM时自动运行存储在CDROM中的程序。此漏洞为早期版本的 BadUSB 之一(称为 USB Switchblade)铺平了道路。Switchblade在计算机中可能看起来像是CDROM,这意味着存储在设备中的任何程序都会自动运行并执行有效载荷。

如今,BadUSB设备配备了更高级的功能,例如SD卡插槽,更好的连接以支持远程访问,车载计算机和更好的外形,使它们看起来像普通的USB记忆棒。多年来,这些设备一直是许多会议和研讨会的主题。其中一个场合是2014年举行的黑帽会议,研究人员Karsten Nohl和Jakob Lell详细展示了BadUSB的安全性。

BadUSB是如何工作的

BadUSB 设备的工作原理是,计算机本质上信任键盘作为有效的输入源。默认情况下,计算机不信任下载的可执行文件;相反,他们运行扫描以验证其来源和意图。如果可执行文件来自未知开发人员或显示恶意,则计算机可能会阻止其运行。

但是,如果标准用户打开命令提示符并键入命令,他们的计算机将盲目地遵循它而不判断意图。这意味着通过模拟键盘,BadUSB设备可以轻松执行一系列功能,模仿系统上的实际用户交互。

任何带有允许覆盖的微控制器的USB设备都可以轻松变成BadUSB。BadUSB 设备使用脚本语言,告诉它们插入目标系统后该怎么做。虽然这些设备中的大多数使用相当简单的脚本,但一些BadUSB甚至与更复杂的程序(如JavaScript)兼容。

BadUSB有哪些类型

市场上BadUSB的不同类型:

  • USB Rubber Ducky
  • MalDuino
  • WiFi-enabled BadUsb
  • BadUsb Cables

在这里插入图片描述

USB Rubber Ducky

不断升级USB记忆棒的设计,而没有指定内部构建的确切更改,这使得找到兼容的设备变得越来越困难。USB Rubber Ducky 专门用于充当 BadUSB。

该黑客工具由Hak5于2011年推出,Hak5是一家专门提供渗透测试人员工具包的独立供应商。尽管市场上有该设备的多次迭代,但该设备仍然是当今最流行的BadUSB。

该USB设备使用一种称为Ducky Script的特殊脚本语言,无需编程经验即可轻松编写。Ducky Script使用简单的字符串命令来告诉“duck”要键入什么。Ducky Script的简单示例可以在下面找到。

在这里插入图片描述

MalDuino

MalDuino是一个基于Arduino的开源BadUSB,它将恶意负载注入目标计算机。最近引起了广泛的关注,MalDuino凭借其板载计算机与常规BadUSB设备相比具有更多功能。

现在常见的MalDuino设备支持Micro SD卡,并且还具有一组拨码开关,以帮助其用户在Micro SD卡内的存储程序之间切换。

WiFi-enabled BadUsb

这种类型的BadUSB类似于MalDuino,因为Arduino板用作设备的基础,但专门设计为具有WiFi功能。一旦插入目标系统,这些设备就允许攻击者使用 WiFi 协议将恶意负载引入受害者的计算机。

支持WiFi的BadUSB可以采取不同的形式,具体取决于它们所服务的确切目的和功能。今天使用的该设备的常见迭代如下:

  • WiFi-enabled keystroke injectors
  • WiFi keyloggers
  • WiFi deauthers

WiFi-enabled keystroke injectors

这些是当今最常见的WiFi BadUSB类型。当插入目标计算机时,这些设备将保持休眠状态,直到攻击者通过智能手机或邻近系统进行进一步联系。连接到此 BadUSB 就像连接到 WiFi 接入点一样简单。

连接后,攻击者可以使用合适的脚本语言引入击键注入。这些设备通常带有自己的应用程序,允许黑客从远程位置执行脚本。

WiFi keyloggers

WiFi键盘记录器是专门针对台式计算机的现代黑客硬件。它们充当键盘的USB终端和计算机本身之间的桥梁。此 BadUSB 拦截来自键盘的输入信号并将其中继到黑客的计算机。

WiFi键盘记录器可以捕获用户键入的任何内容,包括敏感信息和密码,而不会引起任何怀疑。对于台式计算机,这些设备可以完全隐藏在明显的视线之外,并且在使用时不会影响键盘的性能。

WiFi deauthers

WiFi deauthers是一种恶意设备,利用WiFi协议中存在的缺陷,迫使WiFi网络的所有用户自动断开连接。随后,只要该设备处于活动状态,WiFi deauthers就会阻止用户重新连接到网络。

WiFi Deauthers与其他形式的BadUSB不同,因为它们不会影响它们直接连接的系统,而是将它们用作电源来干扰网络连接并建立停机时间。

BadUsb Cables

BadUSB电缆最近引起了广泛关注,其外观和功能与任何其他USB电缆相似,但是一种秘密的恶意设备,会在用户不知情的情况下将脚本和恶意软件注入计算机。

这些外观通用的电缆也被称为USB Ninja和USB Harpoon等名称,它们将BadUSB隐藏在内部电路中,并且比今天发现的任何其他变体都更具欺骗性。BadUSB电缆可以促进充电和数据传输等功能,而所有恶意活动都在后台进行。

如何防范 BadUSB 攻击

BadUSB 设备的运行速度是组织中的标准用户几乎无法检测到的。各种有效负载脚本都可以从互联网上下载。这甚至允许对计算机知之甚少的业余爱好者进行BadUSB攻击。

您可以实施以下三种措施来立即抵消BadUSB漏洞。

  • USB端口阻断器
  • 使用专门的程序来监测打字速度
  • 限制对高位命令提示符的访问

USB端口阻断器

USB 端口阻止程序是阻止用户在用户不知情的情况下连接可能包含恶意负载的未经授权的 USB 设备的有效方法。在 BadUSB 攻击的情况下,攻击者不太可能以安装了 USB 端口阻止程序的系统为目标。

USB端口拦截器可以安装在网络中包含敏感文件的关键系统上,并带有一个特殊的密钥,一旦安装,就可以解锁和锁定设备。例如:您可以在 USB 端口隐藏在视图中的台式计算机上安装端口阻止程序。

但是,USB端口阻止程序的缺点在于,如果没有正确监控,这些设备仍然会受到物理篡改。任何恶意用户和一些基本工具都可以轻松地从目标系统中删除端口阻止程序。

使用专门的程序来监测打字速度

某些程序(如DuckHunter)旨在在后台运行并密切关注打字速度。由于 BadUSB 设备的打字速度几乎不可能被人类打字,因此当检测到 BadUSB 攻击时,该程序会有效地阻止键盘输入。

使用这种预防方法的缺点是这些程序需要几毫秒才能检测到攻击。根据有效负载的长度,它仍然可以在被程序阻止之前进入目标计算机。

限制对高位命令提示符的访问

以管理员身份运行命令提示符 (CMD) 可解锁可在计算机上执行的整组操作。在 Windows 上,您可以通过首先在“运行”命令中键入“CMD”,然后按住 Ctrl + Shift + Enter 来访问提升的命令提示符。这些击键可以很容易地编程到BadUSB设备中。

如何设置以管理员身份运行CMD的密码

设置使用提升的命令提示符的密码会停止任何编程为寻求管理权限的 BadUSB 停止其轨道。以下是设置以管理员身份运行CMD的密码的方法。

注意:此过程涉及对系统注册表进行更改,必须负责任地处理以避免损害您的计算机。

  • 第 1 步:在开始菜单中键入“Regedit”,然后打开应用程序。
  • 第 2 步:按照导航转到ConsentPomptBehaviorAdmin:Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
  • 第 3 步:找到 ConsentPromptBehaviorAdmin 后,右键单击它,然后选择“修改”。
  • 第 4 步:将值数据更改为1,然后单击确定。

在这里插入图片描述

每当您尝试访问提升的命令提示符时,Windows 都会要求您输入系统密码。

Device Control Plus 如何帮助您预防 BadUSB 攻击

根据您的企业,完全避免使用 USB 设备可能不切实际,因为它可能会对整体生产力产生不利影响。另一方面,对注册表进行更改可能是一件危险的事情,因为它涉及干扰核心系统组件。这需要一种强大的方法来防止BadUSB攻击。

防范 BadUSB 威胁

  • 跨系统实施 USB 锁定
  • 创建允许受信任设备的策略
  • 主动监控受信任的设备
  • 授予临时访问权限

在这里插入图片描述

Device Control Plus 是一种主动保护整个企业端点的方法。此解决方案通过默认将所有系统上的 USB 端口保持在锁定状态,方便地解决了抵御 BadUSB 攻击的常见措施中的局限性。

在这里插入图片描述

您可以通过创建允许或阻止 USB 设备的策略来选择谁有权使用哪些设备访问网络中的端点。此外,每当用户将未经授权的设备插入其中一个终结点时,您都会收到通知。

在这里插入图片描述

Device Control Plus 可帮助您在很短的时间内发现和管理网络中的系统。创建受信任的设备列表,授予临时访问权限等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二证券|卡塔尔给体育烧的钱,不止世界杯

11月,世界杯史上首次在北半球冬季打响。 全世界的目光也聚焦到了卡塔尔——这个面积仅11576平方千米、人口不足300万的中东小国。 虽然面积小,卡塔尔人花钱却很大方。 本届世界杯总计2200亿美元的投入,为历届世界杯花费之最。巴西世界杯和俄…

java基于springboot的新生宿舍管理系统-计算机毕业设计

项目介绍 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,新生宿舍管理系统当然也不能排除在外。新生宿舍管理系统是以实际运用为开发背景,运用软件工程原理和开发…

海外社媒运营,推特内容营销

Twitter 成立于 2006 年,已成为全球第三大用户社交平台,月活跃用户达 3.89 亿。推特最大的特点就是字数限制和信息短小,正好符合现代人的阅读习惯。 对于跨境卖家来说,推特不仅可以获取有价值的客户信息,收集粉丝反馈…

大学电子系C++模拟考试之一

随手附上一些代码,未必是最优解,仅供参考。 加密四位数 【问题描述】 输入一个四位数,将其加密后输出。方法是将该数每一位的数字加9,然后除以10取余作为该位上的新数字,最后将千位上的数字和十位上的数字互换&#…

7个成功的DTC品牌出海营销策略,提高海外客户的忠诚度!

关键词:DTC品牌出海、DTC营销、客户忠诚度 近年来,普通消费者关心的事情发生了巨大变化。 60% 的消费者会特意从品牌而不是第三方零售商处购买。 从大型零售商处购买再成为主流。人们希望与他们关心并感到关心的品牌建立关系。他们希望支持独立企业并找到…

Spring中IOC容器

IOC入门案例思路分析 1.管理什么(Service和Dao) 2.如何将管理的对象存放到IOC容器(配置applicationContext.xml)第二步 3.将管理的对象存放到IOC容器,如何获取IOC容器 第三步 4.获取到IOC容器后,如何从…

纷繁复杂见真章,华为云产品需求管理利器CodeArts Req解读

摘要:到底什么是需求?又该如何做好需求管理?本文分享自华为云社区《纷繁复杂见真章,华为云产品需求管理利器 CodeArts Req 解读》,作者:华为云头条 。 2022 年 8 月,某国国税局获得数十亿美元新…

【Keras计算机视觉OCR文字识别】文字检测算法中CTPN、CRAFT的讲解(图文解释 超详细)

觉得有帮助麻烦点赞关注收藏~~~ 一、OCR文字识别的概念 OCR(Optical Character Recognition)图像文字识别是人工智能的重要分支,赋予计算机人眼的功能,可以看图识字。如图6-1所示,图像文字识别系统流程一般分为图像采…

干掉满屏的 try-catch,这样写太香了!

背景 软件开发过程中,不可避免的是需要处理各种异常,就我自己来说,至少有一半以上的时间都是在处理各种异常情况,所以代码中就会出现大量的try {...} catch {...} finally {...} 代码块,不仅有大量的冗余代码&#xf…

Windows系统如何部署Rabbit和启动Rabbit服务

如何部署Rabbit和启动Rabbit服务第一步:安装otp下载OPT应用:安装OPT第二部:安装Rabbit下载Rabbit安装Rabbit执行命令,添加可视化插件第三步:启动Rabbit服务第四步:在网页验证rabbit服务器启动第一步&#x…

题目给出一个字符串s1,我们可以用递归的方法将字符串分成两个非空的子串来将s1表示成一个二叉树

题目给出一个字符串s1,我们可以用递归的方法将字符串分成两个非空的子串来将s1表示成一个二叉树 下面是s1“coder”的一种二叉树的表现形式: 将字符串乱序的方法是:选择任意的非叶子节点,交换它的两个孩子节点。 例如&#xff1…

图扑虚拟现实解决方案,实现 VR 数智机房

如今,虚拟现实技术作为连接虚拟世界和现实世界的桥梁,正加速各领域应用形成新场景、新模式、新业态。 效果展示 图扑软件基于自研可视化引擎 HT for Web 搭建的 VR 数据中心机房,是将数据中心的运营搬到 VR 虚拟场景。以数据中心实际场景为…

new String 到底创建几个对象的问题困扰

📢📢📢📣📣📣 哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝 一位上进心十足的【Java ToB端大厂…

Sharding-Proxy查询分库分表数据,很方便!!

##背景 目前公司不大,没有方便的数据库平台支持分库分表数据的查询,每次只能拿到分表的数据字段,手动hash获得标的索引,再去物理表查询,费时费力 ##改造 目前市面上有很多mysql分库分表的代理,自己选择了S…

24.前端笔记-CSS-vertical-align属性

1、vertical-align属性使用场景 经常用于设置图片或表单(行内块元素)和文字垂直对齐。 只对行内元素或行内块元素有效 vertical-align:baseline|top|middle|bottom值描述baseline默认,元素放在父元素的基线上top把元素顶端与行种最高元素顶…

这款 Java 性能调优的可视化工具,你真的会用吗?

VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来…

以太网 VLAN(VLAN划分方式)

2.8.3 以太网 VLAN(VLAN划分方式) VLAN的划分方式有2.8.3 以太网 VLAN(VLAN划分方式)一、基于端口划分二、基于MAC地址划分三、基于IP子网划分四、基于协议划分五、基于策略划分一、基于端口划分 简述:端口上进行手动…

python安装 yaml、pymysql、python-docx

python安装 yaml E:\python3.10.7>pip install pyyaml python安装 pymysql E:\python3.10.7>pip install pymysql python安装 python-docx E:\python3.10.7>pip install python-docx python安装 sqlalchemy E:\python3.10.7>pip install sqlalchemy

客快物流大数据项目(九十四):ClickHouse的SummingMergeTree入了解

文章目录 ClickHouse的SummingMergeTree深入了解 一、创建SummingMergeTree引擎表的的语法 二、创建Su

Dubbo SPI机制核心原理,你掌握了吗?|原创

这篇文章内容很干,做好心理准备!本文详细讲解了 Dubbo SPI 诞生原因以及它的用法,并且详细解读了核心类 ExtensionLoader 的关键属性,再根据demo 对 SPI 的加载原理进行详细解读。文章较长,建议收藏!文末有…