In this talk, we'll cover some novel USB-level attacks that can provide remote command and control of air-gapped machines, with a minimal forensic footprint, and release an open-source toolset using freely available hardware.
In 2000, Microsoft published its 10 immutable laws of security [1]. One of which was: "If a bad guy has unrestricted access to your computer, it's not your computer any more". This has been robustly demonstrated over the years. Examples include numerous DMA-access attacks against interfaces such as firewire [2], PCMCIA and thunderbolt [3] as well as USB-based attacks including simple in-line keyloggers, "evil maid" attacks [4] and malicious firmware [5].
Despite these warnings, groups such as the NSA were still able to use physical access to bypass software controls with toolsets such as COTTONMOUTH [6]. Likewise, criminals have been able to defraud banks with a handful of simple hardware tricks [7]. While some progress has been made to secure some devices against some threats, such as the use of full disc encryption, or the impact of Apple's secure enclave in the physical security of the iPhone [8], most laptops and desktops remain vulnerable to attacks via physical interfaces.
In our experience, organisations merely view USB devices as a channel for malware or unsanctioned communications, and rely on protections placed elsewhere in their defensive stack to deal with them, but few deal with the risk the USB interface presents directly. There are many scenarios where gaining physical access to hosts is plausible [9], and having done so can provide access to "chewy" internal networks [10] ripe for lateral movement.
While most people are familiar with USB devices, many don't realise the extent to which the USB standard allows seemingly innocuous devices to have multiple personalities. There has been an extensive amount of research into malicious USB devices, such as TURNIPSCHOOL [15], GoodFET/Facedancer [16], Shikra [17], Rubber Ducky [11], USBdriveby [12] and BadUSB [5]. However, none of these implement an end-to-end attack either because that was not their intention, they only focus on a part of the attack or the project was never completed.
Additionally, existing attacks are predominantly "send only" with no built-in bidirectional communications. They usually rely on the executed payload and the host's networks for any advanced remote access. Thus, these payloads can leave a significant forensic footprint in the form of network communications and on-host behaviours, and leave them vulnerable to anti-malware controls. Numerous companies are improving toolsets to detect such attacks [13][14]. Lastly, these attacks are often "spray and pray", unable to account for variations in the user's behaviour or computer setup.
Our approach is to create a stealthy bi-directional channel between the host and device, with remote connectivity via 3G/Wi-Fi/Bluetooth and offload the complexity to our hardware, leaving a small simple stub to run on the host. This talk will discuss the process of creating a set of malicious USB devices using low cost hardware. The design and toolkit will be released during the talk.
Our toolkit provides three significant improvements over existing work. The first is the ability to gain a stealthy bi-directional channel with the host via the device. No traffic is generated on the target network (i.e it would work against air-gapped hosts). This is done via the use of either a raw HID device or standard USB class printer driver linked to our device, with the stub merely wrapping commands and their output to our device. The second is the ability to communicate with the device remotely via Wi-Fi/3G/Bluetooth, allowing for updates to the payloads, exfiltration of data, real-time interaction with the host and an ability to debug problems. This also has the advantage that any network controls are bypassed. Finally, the stub running on the host will leave a minimal forensic trail, making detection of the attack, or analysis of it later, difficult. For completeness sake, a new transport for meterpreter was developed to allow metasploit payloads to be used instead.
Our hope is that the tools will provide a method of demonstrating the risk of physical bypasses of software security without an NSA budget, and encourage defences to be built in this area.
[1] "10 Immutable Laws of Security"
[2] "Physical memory attacks via Firewire/DMA - Part 1: Overview and Mitigation"
[3] "Thunderstrike 2"
[4] "Evil Maid goes after TrueCrypt!"
[5] "Turning USB peripherals into BadUSB"
[6] "Your USB cable, the spy: Inside the NSA's catalog of surveillance magic"
[7] "How bank hackers stole £1.25 million with a simple piece of computer hardware"
[8] "Apple vs FBI"
[9] "Users Really Do Plug in USB Drives They Find"
[10] "The Design of a Secure Internet Gateway"
[11] "USB Rubber Ducky Wiki"
[12] "USBDriveBy"
[13] "Cylance, Math vs Malware"
[14] "Carbon Black, Next Generation Endpoint Security"
[15] "NSA Playset, TURNIPSCHOOL"
[16] "Facedancer2"
[17] "The Shikra"