T1200

Hardware Additions

Adversaries may physically introduce computer accessories, networking hardware, or other computing devices into a system or network to gain access or expand capabilities. Hardware additions range from passive network taps (Throwing Star LAN Tap) to active keystroke injection devices (USB Rubber Ducky, Bash Bunny, O.MG Cable), rogue wireless access points, DMA attack devices (PCILeech), and fully autonomous compute devices (Raspberry Pi, netbooks) providing persistent network footholds. Unlike purely software-based attacks, hardware additions require physical proximity to target systems and can bypass many software security controls by presenting as trusted peripherals. The DarkVishnya threat group is documented connecting Bash Bunny, Raspberry Pi, and inexpensive netbooks directly to victim organization networks to establish persistent access and conduct internal reconnaissance. Detection relies primarily on monitoring for unexpected device class connections via Windows Plug and Play audit events, correlating new HID device connections with subsequent automated keystroke injection patterns, and identifying new network interfaces with unknown MAC addresses appearing on internal segments.

Microsoft Sentinel / Defender
kusto
// T1200 Hardware Additions — Detects suspicious USB/HID/network device connections via Security Event 6416
// Requires: Advanced Audit Policy > Detailed Tracking > Audit PNP Activity = Success
let KnownPentestVIDs = dynamic([
    "VID_2B04",  // Hak5 (Bash Bunny, Rubber Ducky, LAN Turtle, Signal Owl)
    "VID_16D0",  // MCS / Digispark ATTiny85 HID injectors
    "VID_2E8A",  // Raspberry Pi Foundation (Pi Pico USB gadget mode)
    "VID_2341",  // Arduino (commonly repurposed for HID attacks)
    "VID_1B4F",  // SparkFun Electronics (BadUSB research boards)
    "VID_221A",  // ZTEX USB FPGA (DMA research hardware)
    "VID_04D8"   // Microchip Technology (common in DIY HID injectors)
]);
let LegitimatePeripheralVIDs = dynamic([
    "VID_045E",  // Microsoft
    "VID_046D",  // Logitech
    "VID_05AC",  // Apple
    "VID_413C",  // Dell
    "VID_03F0",  // HP
    "VID_17EF",  // Lenovo
    "VID_047D",  // Kensington
    "VID_046A",  // Cherry
    "VID_1B1C",  // Corsair
    "VID_1532",  // Razer
    "VID_1038",  // SteelSeries
    "VID_04B3",  // IBM
    "VID_04CA",  // Lite-On Technology
    "VID_0461"   // Primax Electronics
]);
SecurityEvent
| where TimeGenerated > ago(24h)
| where EventID == 6416
| parse EventData with * 'Name="ClassName">' ClassName '</Data>' *
| parse EventData with * 'Name="DeviceId">' DeviceId '</Data>' *
| parse EventData with * 'Name="HardwareIds">' HardwareIds '</Data>' *
| parse EventData with * 'Name="ClassId">' ClassId '</Data>' *
| parse EventData with * 'Name="SubjectUserName">' SubjectUserName '</Data>' *
| parse EventData with * 'Name="SubjectDomainName">' SubjectDomain '</Data>' *
| extend IsHIDDevice = ClassName =~ "HIDClass"
| extend IsNetworkDevice = ClassName in~ ("Net", "WLAN", "Bluetooth", "Net Service")
| extend IsKnownPentestVID = HardwareIds has_any (KnownPentestVIDs)
| extend IsLegitimateVendor = HardwareIds has_any (LegitimatePeripheralVIDs)
| extend IsSuspiciousHID = IsHIDDevice and not IsLegitimateVendor and HardwareIds !has "Mouse" and HardwareIds !has "Keyboard"
| extend IsSuspiciousNetDevice = IsNetworkDevice and not IsLegitimateVendor and (DeviceId has "USB" or HardwareIds has "USB")
| extend SuspicionScore = toint(IsKnownPentestVID) * 3 + toint(IsSuspiciousHID) + toint(IsSuspiciousNetDevice)
| where SuspicionScore > 0 or IsKnownPentestVID
| extend RiskReason = case(
    IsKnownPentestVID, "Known pentest/attack hardware VID detected",
    IsSuspiciousHID, "Unknown vendor HID device — possible keystroke injector",
    IsSuspiciousNetDevice, "Unknown USB network device — possible LAN tap or rogue adapter",
    "Suspicious device class connection")
| project TimeGenerated, Computer, SubjectUserName, SubjectDomain, EventID,
         ClassName, ClassId, DeviceId, HardwareIds,
         IsHIDDevice, IsNetworkDevice, IsKnownPentestVID, SuspicionScore, RiskReason
| sort by SuspicionScore desc, TimeGenerated desc
high severity medium confidence

Data Sources

Driver: Driver Load Hardware: Hardware Windows Security Event Log Plug and Play Activity

Required Tables

SecurityEvent

False Positives

  • IT administrators and developers connecting legitimate USB development boards (Arduino, Raspberry Pi Pico for hobby projects) — VIDs overlap with those used for attacks
  • Employees connecting unrecognized third-party peripherals (generic USB keyboards, mice, USB-to-Ethernet adapters from lesser-known brands) not in the approved vendor list
  • Virtual machine host software creating virtual network adapters (VMware VMXNET, Hyper-V Virtual Network Adapter) that trigger device connection events
  • OT/SCADA technicians connecting USB-to-Serial or USB-to-RS485 adapters for legitimate industrial equipment management
  • Laptop docking stations presenting built-in NICs as new USB network devices when first connected to a new dock

Unlock Pro Content

Get the full detection package for T1200 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections