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地址
生成的简单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更好的方法了。
干杯…直到下次。