议题概要:
2018年在4月的HITB阿姆斯特丹站上,我们(PegasusTeam)分享了一个关于隔离网攻击的议题——“Ghost Tunnel :Covert Data Exfiltration Channel to Circumvent Air Gapping”。
Ghost Tunnel是一种可适用于隔离环境下的后门传输方式。一旦payload在目标设备释放后,可在用户无感知情况下对目标进行控制及信息回传。相比于现有的其他类似研究(如WHID,一种通过 Wi-Fi 进行控制的 HID 设备),Ghost Tunnel不创建或依赖于任何有线、无线网络,甚至不需要外插任何硬件模块。
去年的Ghost Tunnel V1是利用Wi-Fi的probe和beacon数据帧来携带有效数据载荷,今年我们提出了一种全新的数据传输方式,利用蓝牙BLE广播来传输数据。
议题解析:
对于隔离网络的攻击一般有两个步骤:
- 在目标系统植入恶意软件
- 建立数据通道,(infiltrate & exfiltrate),以便执行命令和窃取数据。
根据之前的案例可以看到,任何可以承载数据的媒介都是可以用来建立数据通信的通道。Ghost Tunnel V2便是一个利用蓝牙BLE信号的隐蔽传输通道。
首先,以HID攻击为例:我们使用BashBunny等HID工具将恶意程序植入受害者设备,比如一台Windows笔记本。随后恶意程序将使用受害者设备的内置的BLE通信模块与另一台由攻击者控制的设备建立端到端的数据传输通道。此时,攻击者就可以远程执行命令并窃取数据。
值得注意的是,Ghost Tunnel V2指的是通过利用受害者设备自身的蓝牙模块来建立传输通道的一种方式,其并不仅局限于使用HID攻击来植入恶意程序,实际上以其他方式植入也是可行的。相比于上一代的Wi-Fi传输,BLE可以提供更加稳定的数据传输通道,且完全不会对原有的蓝牙数据链路产生影响。
传统的蓝牙设备在传输数据时,需要先通过扫描,配对来建立连接,在操作系统中所有已经建立连接的设备都是可见的,这显然不是我们希望的。
而Ghost Tunnel V2只使用扫描阶段的广播数据帧,不建立任何连接,在受害者端完全无感知,并且可以绕过任何现有的防火墙。其中,发送数据的称做Advertiser,接收数据的称做Scanner。
对于BLE广播来说,Scanner分为主动扫描和被动扫描,如下图是被动扫描,Scanner通过被动监听来获取其他设备的广播包。
下图是主动扫描,Scanner主动发送SCAN_REQ来获取广播包,Advertiser通过SCAN_RSP来回复广播数据包
目前的PC内置网卡已经普遍支持了蓝牙4.0及以上的模组,通过BLE广播包,可以支持发送最大29字节的自定义的数据。
首先Advertiser和Scanner通过一段自定义厂商数据作为通信的标识符,Advertiser发送数据时携带这个识别符,Scanner通过这个识别符订阅数据。
识别符 | length | type | Company id |
Data |
0x05 | 0xFF | 0xFFFE |
0x1234 |
|
自定义数据 | len | type |
Custom data |
如下图是Advertiser发送方数据实现
下图是Scanner接收方的数据
总而言之,Ghost Tunnel V2通过BLE广播来进行通信,整个过程不建立任何链接。
攻击者通过解析受害者设备发出的ADV_IND帧得到数据;受害者设备上的恶意程序将解析攻击者发出的ADV_IND帧来执行命令并返回数据。这便是Ghost Tunnel BLE隐蔽传输通道的秘密。