可做设计任务的网站,南昌网站小程序开发,十大仓库管理软件,万网网站备案多久概述 在网络攻击中#xff0c;木马病毒通常会使用监听某个端口的方式#xff0c;或者直接连接C2地址、域名的方式来建立通信#xff0c;完成命令与控制。而APT攻击中#xff0c;攻击者为了更高级的潜伏隐蔽需求#xff0c;其部署的木马或后门#xff0c;会采用对网卡流量…概述 在网络攻击中木马病毒通常会使用监听某个端口的方式或者直接连接C2地址、域名的方式来建立通信完成命令与控制。而APT攻击中攻击者为了更高级的潜伏隐蔽需求其部署的木马或后门会采用对网卡流量进行过滤的方式获得一定的通信信令才会触发执行实际的攻击这一部分的活动称为流量激活。本文以一个正常的端口敲击应用Knock和ATTCK中“Traffic Signaling”章节提到的几类家族来了解流量激活的几种常见方式。
正常应用的激活流量 Knock是一个用于端口激活的敲门工具。为了保护SSH端口不暴露在攻击者面前系统管理会使用Knock配合防火墙来执行SSH服务的开放策略。Knock在平常的时候关闭ssh服务和端口外部无法扫描到端口开放。在运维人员需要访问SSH服务的时候通过端口敲击序列Knock在特定时间内连续收到设置的端口序列流量则会触发开启SSH服务从而使得外部可以访问。如下方截图例子中对TCP和UDP分别发送目的端口7000、8000、9000的敲击流量目的IP接收到这三个端口序列则会开启SSH服务。这部分的流量就是SSH服务的激活流量。 图 1 knock激活触发 图 2 TCP的端口激活流量 图 3 UDP的端口激活流量 APT中的流量激活 ATTCK中“Traffic Signaling”章节中提到了提到了8个家族的流量激活分别是Chaos、Kobalos、Pandora、Penquin、Ryuk、SYNful Knock、Umbreon、Winnti for Linux。
chaos木马
Chaos是一个linux后门木马。木马运行后会创建一个TCP的Socket读取过滤网卡数据校验数据包内容是否与特定字符串一致。一旦传入的数据存在特定字符串则会向对方的8338端口发起通信请求进行下一步的密钥协商和执行后续动作。本次样例中的特定字符串值为“j0DtFt1LTvbIU”。可以看到Chaos木马是通过检查TCP的传入数据是否包含特定字符串完成的流量激活。 图 4 Chaos木马的激活 图 5 TCP激活
Kobalos木马
Kobalos是一个SSH后门。该后门在运行后开启流量监听等待来自源端口55201的流量只有符合源端口为55201的SSH连接才会触发下一阶段建立与C2通信的TCP通道。 图 6 监听源端口55201 图 7 来自55201端口的激活
Panora木马
根据TrendMicro的分析报告Panora的每个样本都有Token值并存放到注册表中样本执行流量捕获只有当接收到HTTP 协议格式的数据且数据与注册表中Token值一致的时候才会执行命令。该木马在样本中解析HTTP格式使用了开源的HTTP解析组件hxxps://github.com/nodejs/http-parser。 图 8 Trendmicro报告提供的Token值 图 9 HTTP激活模拟
Penquin木马
Penquin属于Tular组织的木马。在木马启动运行后开启网卡监听检查网卡接收到的数据包TCP 包头中的 ACK 编号或者 UDP 协议数据包载荷中的第二个字节。
如果收到这样的数据包并且匹配成功则视为成功激活执行流程将跳转到数据包有效负载内容执行后续操作。示例如下 Filter (tcp[8:4] 0xe007ffff 0xe003bebe) or (udp[12:4] 0xe007ffff 0xe003bebe) 图 10 对TCP协议ACK值的检查 图 11 对UDP协议载荷部分的检查 Ryuk木马
Ryuk勒索软件家族。该样本具备正规的数字签名样本运行后为了扩大勒索访问会访问系统的ARP表。如果ARP表中存在局域网段列表则Ryuk 将向ARP列表中设备的 MAC 地址发送一个网络唤醒 (WoL) 数据包以启动设备。此 WoL 请求以包含“FF FF FF FF FF FF FF FF FF”的特定数据的形式出现。 网络唤醒Wol是一种系统支持的唤醒功能属于正常的应用在此处勒索软件使用了这种唤醒来获得更多的失陷主机扩大勒索范围。 图 12 网卡支持唤醒功能 图 13 Wol数据包
SYNful Knock木马
SYNful Knock 是路由器固件木马木马运行后接收特定的数据完成激活。该数据包为TCP SYN握手包。数据包发送到感染的路由器的端口 80上。SYN包需要满足几个条件
序列号和ACK之间的差值必须设置为0xC123D。ACK 号不为0。TCP 选项“02 04 05 b4 01 01 04 02 01 03 03 05”紧急指针设置为0x0001。 图 14 SYN校验
Umbreon木马 反向shell连接木马该木马存在一个同名的开源项目以该开源项目为例子进行说明。木马接收TCP协议流量检查流量中的ACK和序列号是否符合程序中硬编码的值下图示例代码SEQ0x00C4、ACK0xC500。只有满足的情况下才会开启反向shell连接。这种验证激活与上述提到的SYNful Knock有点类似不过显然SYNful Knock的条件更苛刻需要进行运算且有一定变化。 图 15 项目中的MAGIC定义 图 16 TCP检查
Winnti for Linux木马
Winnti木马的激活国外安全研究员Thyssenkrupp提供了探测脚本对其进行分析可以看到初始的请求TCP协议载荷由四个 DWORD 组成前三个由 Rand() 函数生成第四个是根据第一个和第三个计算的。当受 Winnti 感染的主机收到时它将验证接收到的数据包并侦听包含任务的第二个入站请求。
第二个请求获取系统信息请求该协议使用四字节 XOR 编码。Winnti 将在执行任务之前验证第三个 DWORD 是否包含特征字 0xABC18CBA。 图 17 国外安全研究员Thyssenkrupp提供的探测包示例 总结
从以上几个示例可以看到木马病毒的激活具有多种方式。总结各类激活方式的特点如下
影响多个平台包含windows、linux及各类路由器操作系统等。激活协议多样包含TCP、UDP、HTTP等除了以上举例在实际的分析中也有ICMP、伪造TLS协议等。激活位置多变如协议格式、协议头部、端口、载荷都可以是激活流量。激活方法复杂校验方法逐渐从简单字段匹配发展到标志位运算匹配且激活流量可以使用各类加密算法加密使基于特征串匹配的检测方法逐渐失效。 观成科技通过异常加密流量检测引擎在协议格式异常通信端口、通信行为等方面检测可以有效的发现此类用于激活的异常流量。