在4月的HITB阿姆斯特丹站上,我们(PegasusTeam)分享了一个关于隔离网攻击的议题——“Ghost Tunnel
:Covert Data Exfiltration Channel to Circumvent Air Gapping”。
Ghost Tunnel是一种可适用于隔离环境下的后门传输方式。一旦payload在目标设备释放后,可在用户无感知情况下对目标进行控制及信息回传。相比于现有的其他类似研究(如WHID,一种通过 Wi-Fi 进行控制的 HID 设备),Ghost Tunnel不创建或依赖于任何有线、无线网络,甚至不需要外插任何硬件模块。
一、背景
1.1 远控木马上线方式
常见的远控木马上线方式大致有这几种:
- ·主动连接
被控端木马执行后开启特定端口,攻击端通过该主机IP及端口连接到被控端。这种方式需要被控端拥有公网IP。 - ·反弹连接
与主动连接的方式相反。攻击端开启特定端口,被控端执行木马后连接到攻击端。由于被控端主机往往处在内网环境,所以反弹连接的形式更加常用,如FTP上线、DNS域名解析上线等。
- ·通过第三方网站
为了增加隐蔽性,绕过访问白名单限制或为了反追踪,有部分木马采用第三方网站进行通信。比如通过知名博客类网站,利用文章内容及评论区进行控制命令及返回结果的储存。
然而这些上线方式在面对网络隔离环境时都行不通了,因为它们处在完全没有外网的环境中。
1.2 什么是Air Grapping
Wikipedia: “An air gap, air wall or air gapping is a network security measure employed on one or more computers to ensure that a secure computer network is physically isolated from unsecured networks, such as the public Internet or an unsecured local area network.”
简单来说,Air Grapping是一种用于保护特定网络,采用物理隔离的安全措施,通常被用来防止通过网络连接途径造成的入侵事件及信息泄漏事件。
网络隔离被认为是非常安全的一种措施,对其的攻击是非常困难的。攻击者无论是想利用操作系统,应用软件,还是通信协议上的漏洞,都需要通过网络。然而凡事没有绝对,一些大新闻告诉我们利用恶意USB就是一种具有可操作性的攻击方式。
著名的震网病毒便利用了USB的方式将病毒传入隔离网络,随后将病毒传播到网络中的其他设备。在适当的时候给工控机器下发错误指令,导致机器异常直至报废。最终震网病毒导致伊朗的核计划被迫延迟至少两年。
在斯诺登披露的NSA秘密武器中包含了该工具,其内部包含了一套 ARMv7 芯片和无线收发装置。当它插入目标主机后,植入恶意程序并创建一个无线网桥,配套的设备可通过RF信号与其进行交互,传输命令及数据。同样,它被NSA用于攻击伊朗的秘密机构,从物理隔离的设备中窃取数据长达数年。
二、Ghost Tunnel
对于隔离网络的攻击一般有两个步骤:
- 在目标系统植入恶意软件
- 建立数据通道,(infiltrate & exfiltrate),以便执行命令和窃取数据。
根据之前的案例可以看到,任何可以承载数据的媒介都是可以用来建立数据通信的通道。Ghost Tunnel便是一个利用WiFi信号的隐蔽传输通道。
首先,以HID攻击为例:我们使用BashBunny或者DuckHunter等HID工具将恶意程序植入受害者设备,比如一台Windows笔记本。随后恶意程序将使用受害者设备的内置无线通信模块与另一台由攻击者控制的设备建立端到端的WiFi传输通道。此时,攻击者就可以远程执行命令并窃取数据。
值得注意的是,Ghost Tunnel指的是通过利用受害者设备自身的无线模块来建立传输通道的一种方式,其并不仅局限于使用HID攻击来植入恶意程序,实际上以其他方式植入也是可行的。
2.1 优势
Ghost Tunnel的实现方式具有这几个优势:
- ·HID设备只用于植入攻击代码,当植入完成就可以移除了。(HID攻击外的其他植入形式也是可以的)
- ·没有正常的网络连接,可以绕过防火墙。
- ·不会对现有的网络通信及连接状态造成影响。
- ·跨平台支持。该攻击可用于任何拥有WiFi模块的设备,我们在Win7、Win10、Mac OSX上进行了测试。
- ·可在几十米内工作,配合信号桥接设备理论上可做到无限远。
2.2 原理
在正常的Wi-Fi通信中,一个站点必须经历Beacon,Probe,Authentication,Association等过程后才能建立与接入点的连接,其整个流程如下图。
而Ghost Tunnel并没有使用正常的Wi-Fi连接,而只用到了Beacon、Probe Request、Probe Response,如下图。
为什么用这三个帧呢?在802.11的状态机中,取决于认证和关联的状态,一共有三个阶段。
在State 1时,客户端处于Unauthenticated、Unassociated状态。而该阶段可以使用的802.11帧有以下具体几种,其中就包含了Probe Request,Probe Response,Beacon帧。
原本它们被使用在无线网络扫描阶段。当802.11客户端在扫描可用无线网络时,有两种扫描方式:
- 主动扫描,客户端主动发送Probe Request,接收由接入点返回的Probe Response。
- 被动扫描,客户端在每个频道监听AP周期性发送的Beacon。
总而言之,Ghost Tunnel通过Probe Request,Probe Response,Beacon三种类型帧来进行通信,并不建立完整的WiFi连接。
首先攻击者创建一个具有特殊SSID的AP,攻击者和受害设备都使用它作为通信的标识符(而不是常规WiFi通信中的MAC)。此时,攻击者通过解析受害者设备发出的Probe Request帧得到数据;受害者设备上的恶意程序将解析攻击者发出的Beacon及Probe Response帧来执行命令并返回数据。这便是Ghost Tunnel WiFi隐蔽传输通道的秘密。
2.3 Demo
来看一看演示效果:
2.4 其他
你可能会有关于实现原理等更深入的问题,比如:
- 如何在802.11帧中携带我们的载荷?
- 如何在用户空间利用设备的无线网卡来发送和接受802.11数据包?
- 各个操作系统平台的WiFi应用接口是什么,具体如何实现?
- 攻击者端的C&C Server是如何实现的?
欢迎查看我们已对外公布的PPT,你可以在其中找到这些问题的答案。如果觉得该研究还不错的话,欢迎点下Star。
https://github.com/360PegasusTeam/PegasusTeam/tree/master/talks
发表评论
您还未登录,请先登录。
登录