三个开源 C&C 框架的流量检测

VSole2021-11-17 05:50:12

工作来源

MALWARE 2018

工作背景

C&C 框架的隐蔽性越来越强且随着框架代码的开源,检测 C&C 框架变得越来越困难。Shodan 的 Malware Hunter 旨在发现在野 C&C 服务器,但侧重于已知端口的子集、只能构建可能无法触发精确响应的通用探测器,并且只能识别已经可以指纹识别的恶意软件。

端点侧的检测会存在可见性问题,流量侧的检测则更为通用。过往对恶意流量的研究较多,但对 RAT 流量的研究较少。深入理解 C&C 框架使用的常见技术,可以用来帮助设计识别检测系统。

分析主要针对三个流行的开源 C&C 框架:Metasploit、Empire 和 Pupy:

  • Metasploit 是一个综合的网络渗透测试工具。Metasploit 的 Meterpreter 是一个多功能 RAT,可以在大多数平台上运行,并通过许多动态模块保证灵活性。
  • Empire 是一个用 Python 和 Powershell 编写的 RAT,用户可以自由选择传输协议和 Payload。Empire 主要使用 HTTPS 进行通信,并通过 Dropbox 或 OneDrive 等公开服务作为 C&C 信道。所有的 Empire 消息都使用 AES 加密,并预先添加一个字段以保存有关会话的元数据,字段使用由指定用户的 SHA 哈希组成的密钥进行 RC4 加密。
  • Pupy 是一个基于 Python 的跨平台 RAT,擅长混淆 C&C 通信。Pupy 支持用户从包含 11 种协议的列表中选择一种传输协议,再使用预先计算的密钥进行加密。用户可以将其嵌套使用以进一步增加混淆程度。

通过对轮询等 C&C 框架的通用行为进行分析,再针对 Metasploit、Empire 和 Pupy 三种典型的 C&C 框架进行适应性调整。依赖被动监测和半主动扫描,期望构建对 RAT 行为的检测模型。其中半主动扫描分为两类,一类是非介入扫描,与可疑服务器尝试建立连接。另一类是介入性扫描,在活动会话中修改数据包查看响应行为。

工作设计

明文

许多 Payload 只是通过通信通道发送纯文本命令。实现了一个执行简单模式匹配的检测器,并在数据包数据的前 32 个字节中搜索常用命令,例如 ls、cd 和 dir,以及众所周知的恶意软件关键字,例如 remoteControl。

异或编码

当未使用 TLS 加密时,Meterpreter Payload 使用自定义协议进行通信,该协议的每个数据字段使用类型长度值 (TLV) 格式定义。通过使用随机的四字节掩码 Payload 数据进行异或编码,然后将掩码添加到 Payload 之前,可以对这些数据进行混淆。完整的数据包格式如下所示:

可以使用数据包 Payload 中的前四个字节来解码数据包的前 32 个字节,以尝试识别“大小”字段、“类型”字段和会话标识符。在 Meterpreter 使用 HTTP 的情况下,只需要检查头中的长度是否与数据包的长度相对应。TCP 则更复杂,因为某些 Meterpreter 消息可能比 MTU 大,并且会跨越多个 TCP 数据包。在这种情况下,算法会缓冲所有可能的 Meterpreter 数据包,直到一条消息完整,即缓冲消息的长度等于缓冲数据包的总长度。

HTTP

通用特征:

  • 传输数据时,传输内容是 base64 编码的,但内容类型仍然是 text/html
  • GET 请求总是类似的,但服务器以可变的 Payload 作为响应,这会导致对同一个 URI 的两个请求产生不同的响应。
  • 大多数情况下,对于给定的会话来说,请求的 URI 不会变。该 URI 要么是固定的,要么是在一组 URI 中随机选择的。而正常流量则经常访问不同的页面,区别很大。
  • 使用的请求头通常是有限的,但正常流量需要更多额外的功能就会使用更多高级特性,如会话控制或高级安全性。

独有特征:

  • Metasploit 的 GET 请求通常包含特定的请求头,如 Accept-Encoding: identity 和 Content-Type: application/octet-stream
  • Empire 的 HTTP 模块使用 Cookie 来发送有关客户端的加密信息,相对于正常流量来说其 Cookie 是动态的。另外,Empire 的 HTTP-COM 模块也使用 CR-RAY 标头传输客户端信息,如果 CR-RAY 值与有效的 Cloudflare 服务器哈希不对应,就可以认为这是 Empire 的 HTTP 请求
  • Pupy 在所有 GET 请求中都使用相同的 User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, Gecko) Chrome/41.0.2228.0 Safari/537.36。此外,Pupy 还会生成一个随机主机名作为 Host 字段的值

一共提炼 25 个特征:User-Agent;Host 字段的熵值;Host 字段的辅音元音比例;变化的会话 Cookie 的比例;TOP3 URI 比例;GET/POST 请求的长度、比例、完整度(请求头字段的数量加上 cookie 的数量);Server;URI 熵值;URI 长度极值;URI 的辅音元音比例;Meterpreter HTTP 过滤器;Empire HTTP 过滤器;包数;text/html 类型的加密内容。

TLS/SSL

攻击工具很多采用自签名的证书,在证书中包含很多可识别的信息。

通用特征:

  • 由于 C&C 服务器的存续时间通常较短,因此相关证书通常具有更临近时期的有效开始时间。
  • 攻击工具通常使用许多不同的 TLS 连接,每个连接都向同一服务器发送少量请求。

独有特征:

  • Meterpreter 的默认证书是自签名的,并且包含可预测的组织机构名称,这些名称是从预置的列表中随机选择的
  • Pupy 使用的组织机构名称中包含 CLIENT 和 CONTROL

一共提炼了 11 个特征:TLS 版本;自签发证书;流平均长度;TCP 数据包数;证书扩展字段数量;证书链长度;证书 subject 字段;证书科目成绩;Meterpreter 证书过滤器;Pupy 证书过滤器;过期时间;有效时间。

轮询

轮询通常会包含三个特征:

  • 失陷主机发送常规探针从 C&C 服务器检索信息
  • TCP 连接中断后会尝试定期发起新的 TCP 握手
  • 攻击者未发送命令时,失陷主机发送 TCP keep-alive ACK 保活

各个工具的特点如下所示:

构建两个检测器,这两个检测器都依赖于双向、TCP 感知时间解析器(TCP-aware time parser),该解析器在不同的网络环境中提供一致的正规化数据包时间。往返时间 (RTT) 可以使用前人的方法进行校准。

首先使用 TCP 感知时间解析器处理数据包的时间并将数据包合并为消息(应用程序套接字写入的数据包集合),再将消息聚合到事件(一组反映事务的消息,即 GET 请求和后续响应或 TLS 握手)中。下图描述了这个过程:

第一个轮询检测器

第一个检测器用于检测指数退避轮询,拟合为:

其中 N、k 和 Xi 分别表示基本延迟、未应答包数和事件开始时间。该算法首先查看长度为 6 的窗口内的固定段,并计算 N、k 和 σ 的经验值。然后通过验证 N 和 k 都是正数并且具有合理的标准差来检查这些参数是否一致。如果检查失败,算法会将窗口向右移动一个。然后算法循环下一组时间值,如果新计算的参数仍然一致并且它们落在以下范围内,则将这些值附加到序列中:

其中,参数 15 可以防止小于 15ms 的微小变化影响检测。最后,在可能的情况下合并轮询范围。

第二个轮询检测器

第二个检测器用于检测均匀分布抖动 ∈ [0, 1] 的恒定延迟轮询,拟合为:

用 N,d 和 Xk 分别表示基本延迟、平均等待时间和事件开始时间的序列。获取数据点并使用 Box-Muller 变换将它们转换为高斯样本,然后使用 Shapiro-Wilk 检验测试拟合的质量。

第三个轮询检测器

第三种与轮询相关的检测方法是检查事件长度,它基于与轮询相关的事件具有相似的长度的假设。该算法计算基于事件的长度的直方图,如果直方图偏向一小组长度,则将事件序列标记为潜在的轮询行为。

非介入扫描

能够确定恶意流量与特定的工具实现有关时,可以发送特制的数据包触发响应行为进行进一步确认。例如,一个请求带有数据中捕获的会话 Cookie,一个为随机生成的 Cookie,确定是否部署 Empire。

不能够确定恶意流量与特定的工具实现有关时,基于深度包检测获取响应时间、响应大小和各个处理器生成的特征。例如字节分析处理器用来查看固定窗口的熵值和字节分布,以区分正文中的代码、文本和随机值。缓冲区溢出漏洞的攻击数据包中通常包含 NOP 填充。使用不同索引位置的子串计算香农信息熵作为特征:

下图显示了 EDB40869 漏洞利用在不同窗口大小下的熵特征,并为前 5000 个字节中的每个字节提供了起始索引。

介入扫描

识别 C&C 服务器的最有效但最具侵入性的方法是干扰活动连接。重点介绍 Empire 的情况,对 RC4 加密头中的 session identifier、language、meta、extra flags 与 length 进行比特翻转测试。Empire 的数据会通过 HTTP 请求头发送,例如,在 Cookie 或 CF-RAY 中或直接在 HTTP 的正文中。

Empire 的数据格式:

Empire 的 RC4 加密头:

各字段含义:

  • Session ID 是标识 C&C 会话的唯一标识符
  • Lang 标识 Payload 使用的语言,可以指定 PowerShell、Python 或 None
  • Meta 描述数据包所处的阶段,Stage 0 (S0)、Stage 1 (S1)、Stage 2 (S2)、Tasking Request (TR)、Result Post (RP)、Server Response (SR) 或无(不适用)
  • Extra 是保留字段
  • Length 是 AES 加密数据的长度

Payload Stager 首先向 C&C 服务器发送一个 HTTP GET 请求,并将 Meta 设置为 S0,以检索下一个阶段的命令。接下来发送 HTTP POST 请求,其中包含有关操作系统的信息,并将 Meta 设置为 S1 和 S2。在正常的运行期间,会轮询发送 HTTP GET 请求,并将 Meta 设置为 TR。如果服务器有命令,将响应 200 并将 Meta 设置为 SR 发送命令。接着,客户端将发送带有 SR 标记并包含加密响应内容的 HTTP POST 请求。如果服务器没有命令,服务器将响应 404,返回 file not found 的 HTML 页面。

客户端通常处于 TR 状态下,这也就是说更改 Lang 或者 Extra 不会改变行为,但将 Meta 与 RP 进行异或将会把 TR 变为 S0,这也就强制服务器重新回到第一阶段,而将 Meta 与其他值异或将会导致服务器的解析错误。

工作准备

从企业网络中获取真实良性流量,并通过实验环境来获取真实的 RAT 流量,实验环境由一个 Kali Linux 组成作为 C&C 服务器,以及未打补丁的 Windows 10、Windows 7、Windows XP SP2、Ubuntu 14.04 和 Ubuntu 15.10 共计五台主机。

在不同的环境和不同的设置下测试了 Metasploit、Empire 和 Pupy。攻击流量绝大多数是 TCP,对所有 UDP 流量丢弃处理。良性数据集是从具有大约 3000 个端点的企业网络中收集的,同样只保留 TCP 流量。按客户端切分流量,并随机均匀采样 5 分钟的时间窗口,以避免在训练分类器时出现严重的分类不平衡。

其中一些算法对单个双向流进行检测,而其他算法对双向流或元流(一组源 IP 相同、目的 IP 相同和目的端口相同的流)的集合进行检测。所有机器学习分类器都使用标准的随机森林,其中包含 1000 棵树。

工作评估

通用分类器的结果如下所示,能够以 92% 的准确率识别攻击工具,合并准确率为 98.5% 且误报率低于 0.01%。

工作思考

尽管思科的这个工作比较早,过去了好几年有些特征实际已经有了很大的变化,但整体对 RAT 流量的研究方法还是值得学习的。而且,这个实验数据中的噪音太少,和实际环境中的情况还是存在较大差别的。相关的特征也都广泛应用在了威胁狩猎和各种利用机器学习进行流量分析的方案中,尝试挖掘检测效果更好的特征也是防御者持续研究的核心。

流量高级加密标准
本作品采用《CC 协议》,转载必须注明作者和本文链接
研究人员发现,“WiFi保护访问2(WPA2)”协议的4次握手实现中存在多个安全漏洞,影响几乎所有受保护WiFi网络。 分析安全协议实现会用到符号执行,该发现就是符号执行过程中模拟加密基元的结果。比利时鲁汶大学的两位研究人员在日前发布的白皮书中对此进行了阐述。 通过在WPA2四次握手的3种客户端实现上应用符号执行,研究人员发现了身份验证标签校验过程中的边信道时序攻击、拒绝服务攻击、基于堆栈的缓冲区
管理员角色对于保护网络免受攻击至关重要,需要配备专门人员来保护网络上的设备、应用程序和信息。应在网络边界实施多层防御,以抵御外部威胁,监控和限制出入流量。在整个网络中部署多层下一代防火墙,限制出入流量,检查网络区域之间的所有内部活动。NAC方案可防止未授权物理连接,监控网络上已授权的物理连接。为防护这些漏洞,管理员应禁用所有不必要的功能,并对流向VPN网关的流量采用严格的流量过滤规则。
如何构建卫星通信网络的安全防御能力?至少有几个方面的努力是可以尝试的。比如在空间部分应用防御机制,专注于加密和认证、星载入侵检测和预防、网络弹性测试、供应链风险管理和星载日志。
很早以前就从影视作品中看到这样的一幕--美国总统、国务卿、参谋长等高官坐在五角大楼办公室里面,现场指挥飞机用导弹攻击地面目标,同时直观看到攻击后的结果,然后一起开心鼓掌微笑···。现实中真的能做到还是仅仅存在于电影电视作品?通过仔细分析美军现役密码装备特点与设计实现思路, 可以确信美军真的能做到, 美军 C5ISR 真的就是这样设计的,美军是如何做到的?值得我们分析分析。
利用新一代AI工具如今,网络犯罪分子正在积极使用机器学习、人工智能等新技术,更深入地了解其攻击目标的行为,并发动更精准的攻击。因此,企业组织有必要利用同样的技术,实施安全防护和威胁检测,做到比网络犯罪分子领先一步。基于AI的工具可以对海量数据进行自动化检测,快速识别异常情况,并从错误中学习。永远保持警惕主动威胁搜索并非一蹴而就的活动。
根据Gartner的数据,2020年安全业界对零信任的兴趣比2019年增长了230%以上。事实上,如今全球已有超过160多家网络安全供应商宣称提供零信任解决方案。最重要的是,可扩展性需要一个完全集成的、免费的身份访问管理工具,可与任何身份验证提供商配合使用。对于声称为机器身份提供零信任服务的供应商,需要提供能够在所有机器上运行集中式IAM的客户案例进行验证。
痛苦的纯文本日志管理日子一去不复返了。虽然纯文本数据在某些情况下仍然很有用,但是在进行扩展分析以收集有洞察力的基础设施数据并改进代码质量时,寻找一个可靠的日志管理解决方案是值得的,该解决方案可以增强业务工作流的能力。 日志不是一件容易处理的事情,但无论如何都是任何生产系统的一个重要方面。当您面临一个困难的问题时,使用日志管理解决方案要比在遍布系统环境的无休止的文本文件循环中穿梭容易得多。
网络钓鱼19式
2022-11-27 07:33:13
随着技术的进步,黑客和网络犯罪分子将不断开发新的网络钓鱼技术来窃取敏感数据。更专业的攻击者甚至会从合法公司复制完全相同的电子邮件格式,并包含恶意链接、文档或图像文件,以欺骗用户“确认”其个人信息或自动下载恶意代码。建议通过适当的渠道与该帐户的个人核实沟通。在过去,浏览器可以检测到没有启用HTTPS的网站,这是防止网络犯罪的第一道防线。
VSole
网络安全专家