- 概述
DOH加密通信是指攻击者利用DNS over HTTPS协议的加密特性,将恶意流量(如数据窃取、命令控制、恶意软件传播)隐藏在合法的HTTPS流量中,以绕过传统基于明文的DNS检测和防火墙封锁。通过将DNS查询封装在加密的HTTPS连接里,恶意活动得以伪装成普通上网行为,使得流量检测设备难以识别和拦截,显著提升了攻击的隐蔽性。本文主要通过CobaltStrike和vshell两种不同木马作为例子,分析使用DoH进行隐蔽通信的加密流量行为特征。
- 通信流程分析

图1 DoH木马通信原理图
- 受害者点击木马后,首先会发送一条明文DNS 的A记录查询,获取公共DoH域名所对应的IP。
- 获取到IP后,将数据通过编码、加密、混淆等方法嵌入到一个DNS请求的子域名中,使用HTTPS加密发起的DoH请求。
- 发起的DNS请求的域名的子域名只要是不重复的,那么递归服务器就查询不到缓存数据,就会把请求转到NS服务器。
- NS服务器收到请求后,通过NS记录指派解析到攻击者所控制的域名服务器,从而就能收到目标数据。
- DoH C2流量分析
①HTTP/2协议的vhsell DoH木马

图2 Vshell DoH 通信流量
虽然木马的通信数据通过HTTPS协议进行了加密隐藏,但是如果分析加密载荷中的应用层协议数据特征,还是能够发现与正常流量的区别。vhsell DoH木马在TLS加密载荷中使用HTTP/2进行通信,客户端不会发送流量控制策略的WINDOW_UPDATE帧和RST_STREAM帧,而且在查询的DATA部分发送完成后还会发送一个标志位为END STREAM的无载荷的DATA帧,如下图所示:

图3 Vshell DoH End Stream帧
作为对比,使用HTTP/2协议的DoH正常流量在触发流量控制策略的时候,接收方就会发送WINDOW_UPDATE帧,来告知发送方当前的窗口增量(当接收方的应用层从TCP接收缓冲区中读取并处理了N字节的数据,这N字节的空间就被释放。接收方协议栈会将这N字节累加到"待更新增量"中),如下图所示:

图4 DoH正常流量的WINDOW_UPDATE帧
且当一方发送的数据量,超出了另一方声明能够接收的量(即WINDWO_UPDATE帧所声明的),则会触发HTTP/2的流量控制机制,接收方会发送一个RST_STREAM 帧,来终止这个流,如下图所示:

图5 DoH正常流量的RST_STREAM帧
由于DoH木马恶意通信方式是将目标数据通过编码、加密、混淆等方法嵌入到一个DNS请求的子域名中,所以一般承载数据的DATA帧相对来说会更长,如下图所示:

图6 Vshell DoH DATA帧
而正常流量所查询的域名一般都不会很长,且有一个附加记录的值,它的值会随着域名的长度变化而变化,使整体长度维持在一个固定的值,所以正常流量的data长度一般都会趋于稳定,如下图所示:

图7 DoH正常流量 DATA帧
②HTTP/1.1协议的CobaltStrike DoH木马

图8 CobaltStrike DoH 通信流量
CobaltStrike DoH木马在TLS加密载荷中承载的应用层通信协议是HTTP 1.1,客户端在建立连接后会直接发送请求,如下图所示:

图9 CobaltStrike DoH查询
在利用公共DoH时,在一些条件下,会将一个整体的请求进行分段传输,一般会拆成两个,即请求头部分和请求体部分,如下图所示:

图10 CobaltStrike DoH分块查询
③HTTP/1.1与HTTP/2的区别
总结DoH木马在HTTP/1.1协议与HTTP/2协议的通信过程中的特征,有以下不同点:
|------------------------------------------------|-------------------------------------|
| HTTP/1.1 | HTTP/2 |
| 无起始帧 | 建立连接时候,有固定起始帧如Magic、Settings等 |
| 数据为一个整体,请求头与请求体都封装在一个数据包中(部分DoH会进行分段传输) | 数据以二进制帧的方式传输,一个请求分为HEADERS、DATA等帧类型 |
| 不支持多路复用,请求与响应必须串行(请求1 -> 响应1 -> 请求2 -> 响应2) | 一个连接上可并发交错发送多个请求/响应的帧,通过Stream ID区分 |
| 请求头部即使相同也需重复发送,比较冗余 | HEADERS首次发送后,后续相同头部仅发送索引即可 |
- 工具检测
根据流量特征的分析结果,我们采用了载荷分布特征匹配、行为模型等检测方式,实现了对C2工具使用DoH协议加密通信的有效检测。

图11 DoH木马检出结果
- 总结
利用DoH协议的木马工具进行 C&C通信,攻击者可以将恶意流量隐藏在合法的HTTPS流量中,从而规避传统明文流量分析设备的检测,加密威胁智能检测系统能够针对性的检测其行为,从而有效识别恶意加密通信。观成科技安全研究团队将持续跟踪利用DNS over HTTPS信道通信的恶意软件的发展态势,并积极研究更新检测方案。