跳转至

badusb 投毒事件

BadUSB处置流程

0x00 简介

badusb 攻击是攻击者将恶意代码烧录进 usb 设备,之后插入到受害电脑中,在受害者电脑上执行恶意代码的攻击

大家捡到神灯,通常会说最后一个愿望是再要3个愿望,对于攻击者来说也是一样的,USB设备代码是写死的,插入一次只能执行一次恶意代码,因此攻击者会尽可能得想要进行远程控制被害主机,所以这类事件在处置上与远控后门事件差不多,但是需要进行以下部分步骤

固定证据 -> 分析日志 -> 确定事件发生 -> 确定攻击发生的时间 -> 找到恶意设备 -> 分析恶意代码 -> 进行针对性处置

0x01 固定证据

在发生任何安全事件时,确定安全事件真实存在以后,第一步都建议固定证据,固定证据一般有以下几种类型,受害单位可以根据实际需求选择

  • 系统快照 - 一般云环境比较方便这么做
  • 磁盘取证
  • 针对性取证 - 例如日志文件、网络信息、数据库等
  • 内存取证

系统快照

这种主要是云环境或虚拟化环境比较方便,目前似乎这类方式取证出来的内容都会丢失内存信息,属于是关机-快照-导出

虚拟机软件似乎支持例如暂停、冻结等功能,具体根据实际情况决定

磁盘取证

磁盘取证有很多工具可以考虑

  • dd
  • FTK Imager

针对性取证

这部分推荐我们自己的 NOPTrace-Collector

https://github.com/Just-Hack-For-Fun/NOPTrace-Collector

我们还推出了一套数字取证和应急响应规范,可以根据此规范自己开发取证程序

https://github.com/Just-Hack-For-Fun/OpenForensicRules

内存取证

  • DumpIt
  • FTK Imager

取证后,对证据进行分析时,需要先单独复制一份,保持所有安全人员分析的基础是相同的

0x02 日志分析

USB 设备插入会触发哪些日志呢?

Windows Server 2016

在 Windows Server 2016 默认配置下,插入一个设备(我通过鼠标进行模拟,并非真实的badusb),会在以下两个日志留下痕迹

  • System
  • Microsoft-Windows-DeviceSetupManager/Admin

在 System 中记录的日志如下

image-20240709013735659

image-20240709013813172

事件 id 为 7036

在 sans 的官方海报中,还提到了 System 日志中事件 id 为 20001, 20003 – Plug and Play driver install attempted 的事件

在本次测试没有触发可能是因为插入的是鼠标不是 badusb ,也可能是因为需要开启某些配置才能记录该事件

在 Microsoft-Windows-DeviceSetupManager/Admin 中记录的日志如下

image-20240709013945372

image-20240709014129949

最后的 112 事件记录了 USB 设备的名称,即我的 G102 鼠标,还记录了一个 UUID ,经过测试,该UUID 是与设备一对一绑定的,所以可以通过在相同的测试系统上重复插设备分析日志来确定引发 badusb 的设备

Windows 11

badusb 能够直接攻击服务器的比较少,主要还是对于终端的攻击,经过测试发现,当 Windows 11 插入 USB 设备后留下的日志与 Windows Server 2016 不同,更加详细

一般来说,一个USB设备唯一的特性就是 VID 和 PID ,我们先看一下设备的 VID 和 PID ,之后再看看日志中是否记录了该信息,也好分辨出哪条记录是鼠标插入造成的

image-20240709020247537

可以看到 VID = 046D , PID = C084

现在看一下日志发现,在 Windows 11 中插入 USB HID设备主要触发以下三个事件

  • Microsoft-Windows-Kernel-PnP/Configuration
  • Microsoft-Windows-DeviceSetupManager/Operational
  • Microsoft-Windows-UserPnp/DeviceInstall

Microsoft-Windows-Kernel-PnP/Configuration 记录较多,主要如下

image-20240709020931059

可以在记录里直接获取到 VID 和 PID ,事件id 主要为 400、410、411、430、440、442

Microsoft-Windows-DeviceSetupManager/Operational 记录如下

image-20240709021049831

这里的 UUID 就是上面我们在 Windows Server 2016 中获取到的 UUID ,事件id为 300

Microsoft-Windows-UserPnp/DeviceInstall 记录如下

image-20240709021235324

事件id 主要为 8001、8008

获取设备 VID 和 PID

插入设备后,搜索设备管理器

image-20240709022038009

在其中右键 -> 属性 -> 事件 就可以找到与该设备相关的事件了

image-20240709022200895

在这里就可以看到 VID 和 PID 了

0x03 事件处置

确定好被攻击时间以及攻击者使用的 USB 设备后,可以对 USB 设备交给专业人员进行分析,将分析后的结果辅助后续排查

通过上机排查以及安全设备,确定攻击者的利用手段,远程控制?蠕虫病毒? 横向攻击?

根据受害主机存在的具体行为进行对应处置,例如如果出现反向连接恶意C&C服务器,即可采用远控后门章节的处置方法;如果出现横向攻击,则需要确定受害面,对受害服务器进行隔离以及排查

0x04 善后阶段

直接查看善后阶段即可,主要为定损以及针对性排查处理,目的是解决潜在的受害服务器

0x05 常规安全检查阶段

直接根据常规安全检查章节进行安全检查即可,目的是找出当前系统中存在的隐藏后门等