Scapy实战:对抗CozyDuke APT的网络流量分析

本文通过实际案例演示如何使用Scapy工具检测CozyDuke APT组织的网络活动,包括数据包伪造、Snort规则触发及网络流量分析技术,适合安全研究人员和网络分析师参考学习。

Toolsmith - GSE Edition: Scapy vs CozyDuke

作为GIAC安全专家再认证过程的延续,本文将重点讨论以GCIA为中心的主题:Scapy。Scapy在多个层面上对数据包分析师的技能组合至关重要。为方便起见,Packetrix虚拟机预装了Scapy和Snort,如果您想快速入门,可以直接使用。

Scapy是"一个强大的交互式数据包操作程序。它能够伪造或解码多种协议的包,在线发送它们,捕获它们,匹配请求和回复等等。“这包括处理大多数任务的能力,如扫描、路由跟踪、探测、单元测试、攻击或网络发现,从而替代了hping、85%的nmap、arpspoof、tcpdump等功能。

如果您想深入研究,可以获取TJ O’Connor的《暴力Python:黑客、取证分析师、渗透测试人员和安全工程师的食谱》(您应该已经拥有),首次在2013年1月这里讨论。TJ喜欢Scapy:《检测和响应数据链路层攻击》是另一个参考。:-)

您还可以通过SANS Scapy速查表快速熟悉Scapy的语法。

Judy Novak的SANS GIAC认证入侵分析师第5天内容提供了一套使用Scapy的详细演练,由于是版权和私人材料,我不会在这里分享,但会遵循类似的路径,以便您在家中可以跟着练习。我们将使用一个真实的APT场景,考虑到最近俄罗斯对美国政治的前所未有的干预。根据SC Magazine,“俄罗斯政府黑客显然侵入了民主党全国委员会(DNC)的计算机系统”,这些入侵被认为是两个不同的俄罗斯组织的工作,即Cozy Bear/CozyDuke/APT 29和Fancy Bear/Sofacy/APT 28,分别行动。讽刺且一贯的是,对CozyDuke行为的最佳概述之一来自卡巴斯基的Securelist。这篇文章被多个Emerging Threats Snort/Suricata规则引用为CozyDuke的参考。其中,2020962 - ET TROJAN CozyDuke APT HTTP Checkin,位于trojan.rules文件中,是一个很好的例子。

我对这些规则的原则进行了重大修改,并显著简化了规则,将其添加到我的Packetrix虚拟机上的local.rules文件中。然后,我使用Scapy快速进行了几步操作,以确保规则能按预期触发。从Securelist文章中得出的IOC中,我们知道一些事情,如果使用Scapy构建到PCAP中,当通过Snort读取PCAP时,应该会触发规则。

  • CozyDuke客户端到C2的调用是通过HTTP进行的
  • 对C2的请求通常包括.php引用,URL包括/ajax/index.php等
  • 209.200.83.43是其中一个C2 IP,可以用作示例目标IP地址

resulting simpleton Snort规则如图1所示。

图1:简单规则

为了快速制作一个触发此规则的PCAP,在bash提示符下,我运行了scapy,然后输入了syn = IP(src="10.0.2.15", dst="209.200.83.43")/TCP(sport=1337, dport=80, flags="S")/"GET /ajax/index.php HTTP/1.1",然后使用wrpcap("/tmp/CozyDukeC2GET.pcap", syn)将结果写出,如图2所示。

图2:简单Scapy

然后通过Snort快速运行生成的文件,使用snort -A console -q -K none -r /tmp/CozyDukeC2GET.pcap -c ../etc/snort.conf,我们得到了一个命中,如图3所示。

图3:简单结果

Scapy非常强大,这里只是冰山一角,希望提供足够的信息吸引您进一步探索。仅凭这里建立的原则,您就可以看到使用ls(TCP)ls(IP)等选项来制作和操作数据包。

图4:ls()

如果您正在学习GCIA或只是想提高对TCP/IP和NSM的理解,没有比使用Scapy更好的方法了。

干杯…直到下次。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计