CYB3R8FalCKoN/Malware-PCAP-Analysis

GitHub: CYB3R8FalCKoN/Malware-PCAP-Analysis

一份以 Zeus 恶意软件感染场景为例的网络取证与 PCAP 分析实战指南,系统讲解了 DGA 检测、C2 识别、协议伪装分析和路由器取证的方法论及工具使用。

Stars: 0 | Forks: 0

# 网络取证与 PCAP 分析综合指南 欢迎阅读网络取证实践指南。无论您是在 PCAP 中追踪恶意软件信标,还是从受损的路由器中提取易失性内存,本教程都将引导您掌握分析恶意网络流量、提取入侵指标 以及利用 Wireshark 和 RSA NetWitness Investigator 等行业标准工具的方法论。 ## 1. 网络流量的现实:DGA 和 MAC 地址 所以,你正在查看一个 pcap 文件。你观察着网络流量,突然看到一台受害机器在线路上喷涌出数百个完全难以理解的域名。它们正发往一个 DNS 服务器,但毫无逻辑可言。 这里发生了什么? 攻击者不知怎么地把他的恶意软件安装到了那台机器上,现在它正在使用域名生成算法 (DGA) 来混淆其预定目标。目的是什么?是为了绕过防火墙,以便连接到其命令与控制 (C2) 服务器。 在追踪这些东西时,你必须记住网络的实际运作方式。你会看到 IP 地址不断变化,因为受害者正在与全球各地的服务器通信。但是 MAC 地址呢?在 99% 的情况下,你会看到相同的 MAC 地址。为什么?因为 MAC 地址严格属于第 2 层。它们只存在于局域网中。当你的流量发往互联网时,你看到的并不是目标服务器的 MAC 地址——你看到的是位于你家或办公室中的路由器或适配器的 MAC 地址。 ### 你能分接光纤吗? 这里有一个经常被问到的极好的问题:你能窃听 ONT(光网络终端)盒吗?就像挂在你房子旁边的那种光纤盒? 如果你打开标准的家庭连接,你会注意到只有一根光纤接入。那么它是如何在一根玻璃丝上同时处理发送和接收数据的呢?物理学。它使用不同的波长——不同颜色的光——来进行发送和接收。 因为它只是穿过玻璃的光,所以可以在第 1 层进行分接。你可以在盒子前面放一个光分路器,或者,如果你设法剥离了实际玻璃的包层,你可以将电线弯曲到刚好让光泄漏到收集器中的程度。*(注意:不要对你的 ISP 的设备这样做;他们会发现并停止你的服务。)* ## 2. 工具与环境设置 要遵循这种数据包分析方法,你需要以下工具: - **Wireshark:** 毫无争议的数据包分析之王。是进行逐帧检查和协议解码的必备工具。 - **tshark:** Wireshark 的命令行兄弟。非常适合用于自动化大型 PCAP 解析和提取特定字段。 - **RSA NetWitness Investigator:** 一款强大的基于会话的分析工具,它将数据包分组为完整的流,从而更容易发现异常协议。 ## 3. 第一阶段:统计分类 (Wireshark) 在分析数据包捕获时,庞大的数据量很容易让人不知所措。关键在于过滤:宏观分析(分类)-> 微观分析(深入挖掘)-> 确证。永远不要从查看单个数据包开始。从统计数据开始。 ### 协议层级 1. 在 Wireshark 中打开你的 PCAP。 2. 导航至 **Statistics > Protocol Hierarchy**。 3. 查看分布中的异常情况。 - *示例:* 如果 DNS 流量占捕获内容的 40%,而 HTTP 占 0.1%,那么你看到的很可能是一个自动化信标或域名生成算法 (DGA),而不是人类的网页浏览。 ### 端点和会话分析 1. 导航至 **Statistics > Conversations**。 2. 按 **Bytes** 或 **Packets** 排序以找到主要通信者。 3. 识别受感染的内部主机(通常是发起了数千个连接的主机)以及与其通信的外部 IP。 ## 4. 第二阶段:深入挖掘与过滤 一旦你发现了异常(例如,海量的 DNS 流量),请使用显示过滤器将其隔离。 ### 猎杀 DGA(域名生成算法) 恶意软件经常使用 DGA 来逃避拦截列表。要发现这一点: - **过滤 DNS 查询:** `dns.flags.response == 0` - 查看域名。它们是像 `ufxsqnjtryrny.com` 这样的随机字符串吗? - **过滤 NXDOMAIN 响应:** `dns.flags.rcode == 3` - 来自单一主机的大量 NXDOMAIN(域不存在)错误是典型的 DGA 指标。 ### 隔离 C2 基础设施 当 DGA 最终命中一个已注册的域名时,它将解析为一个 IP。 - **过滤成功的解析:** `dns.flags.response == 1 && dns.flags.rcode == 0` - 如果数百个不同的随机域名都解析到*完全相同的 IP 地址*,那么你要么找到了命令与控制 (C2) 服务器,要么找到了安全 sinkhole。 ### 协议伪装 恶意软件经常将自定义的二进制通信隐藏在标准端口(如 TCP 443)上,以绕过防火墙。 - **过滤 C2 IP:** `ip.addr == [C2_IP] && tcp.port == 443` - 右键单击一个数据包并选择 **Follow > TCP Stream**。 - 如果端口 443 上的流量不是以标准的 TLS 握手(例如,`0x16 0x03`)开始的,则说明恶意软件正在使用自定义协议。 ## 5. 第三阶段:会话分析 (NetWitness Investigator) Wireshark 是以数据包为中心的;而 NetWitness 是以会话为中心的。 1. 在 NetWitness 中创建一个新的本地集合并导入 PCAP。 2. 导航至 **Navigation** 视图。NetWitness 会解析 PCAP 并自动对流量进行分类。 3. 查看 **Service Type** 元数据。 4. 如果 NetWitness 将端口 443 上的大量流量分类为 "OTHER" 而不是 "SSL",这就有力地证实了你在 Wireshark 中的发现,即该协议是伪装的。 ## 6. 第四阶段:命令行提取 (tshark) 在撰写报告时,你需要提取 IOC(例如所有查询域名的列表)。在 Wireshark 中手动执行此操作非常繁琐。请使用 `tshark`: ``` # 提取受感染主机发出的所有唯一 DNS 查询 tshark -r PCAP.pcap -Y "ip.src == [INFECTED_IP] && dns.flags.response == 0" -T fields -e dns.qry.name | sort | uniq > domains.txt ``` ## 7. 超越 PCAP:路由器取证 PCAP 只能讲述部分故事。通常,你需要调查基础设施本身。 ### 路由器:网络的心跳 为什么我们在取证中如此关心路由器?因为没有它们,网络就不复存在。攻击者针对它们是为了造成拒绝服务,为了操纵路由表(比如将整个国家的流量转移到黑洞中),或者只是将它们作为跳板来监视流过的流量。 路由器几乎没有存储容量。它们没有时间存储任何东西——它们只读取 IP 地址的目标网络部分,并立即将数据包推出正确的端口。它们仅有的非易失性存储器用于存储操作系统和启动配置。其他一切,包括运行配置,都是高度易失性的,并且在你拔掉电源的那一刻就会消失。 ### 路由器取证的原则 如果你被叫去从路由器中提取证据,你应该这样做: 1. **不要重启路由器。** 如果你重启它,运行内存就会被清空。证据将随之消失。 2. **不要通过网络访问它。** 如果攻击者在路由器上,他们可以看到你的 SSH 或 Telnet 会话进入。 3. **插入控制台端口。** 在物理设备上找到 RJ45 控制台端口,拿一根翻转线,将其插入你的笔记本电脑,然后启动像 PuTTY 这样的终端模拟器。这是带外管理,攻击者很难阻止你。 4. **记录你的会话。** 确保你的终端软件正在记录你输入和看到的所有内容。 5. **避免使用 Web 界面。** 为什么我们仍然使用命令行而不是光鲜亮丽的 Web 界面?因为 Web 服务器只是另一个攻击面。坚持使用命令行。 ### 黄金命令 如果你今天把关于网络取证的其他所有东西都忘了,请把这个印在你的脑海里。让我为你感到自豪。 如果你处于特权用户模式(enable secret/root 访问权限)并且不知道从哪里开始,请运行这个命令: ``` show tech-support ``` 最初,Cisco 创建这个命令是为了让你能够将整个系统状态转储到一个文件中,并在你需要帮助修复错误时发送给他们的工程师。但对于取证审查员来说,这是一座金矿。它会转储运行配置、启动配置、路由表、物理接口、访问控制列表——所有东西。它可以让你一次性获得所需易失性数据的 99%。 ## 8. 访问控制列表 和处理 DDoS ### "Permit IP Any Any" 的错误 访问控制列表是你保护路由器安全的方式。它们从上往下读取,一旦数据包满足某一行的条件,路由器就会停止读取并执行该操作。 如果网络管理员在对防火墙进行故障排除时感到沮丧,并将 `permit ip any any` 放在入站流量的第一行,路由器就会让所有内容通过。其余的安全规则甚至都不会被处理。这种情况发生的频率比你想象的要高,这正是公司被入侵的方式。 ### 在 DDoS 期间该怎么做 如果你的网络正受到分布式拒绝服务 攻击的猛烈冲击——比如说,40,000 个僵尸程序正在攻击你的外部接口——你无法通过重新配置自己的路由器来解决问题。你的管道已经被堵塞了。 你需要做的第一件事就是拿起电话打给你的上游提供商。告诉他们你正在受到攻击,并指示他们将该传入流量推送到 `devnull`(一个黑洞)。你必须在他们庞大的基础设施上阻止这些流量,才能避免它到达你的门前。 ## 9. 构建你的发现结构 一名优秀的取证分析师不仅要找到恶意软件或错误配置;还要将其记录下来,以便其他人可以采取行动。你的报告应包括: - **执行摘要:** 用通俗的语言说明发生了什么。 - **入侵指标 (IOC):** 为蓝队提供可操作的 IP、域名和哈希值。 - **行为指纹:** 恶意软件的行为方式(例如,“通过 TCP/443 发送 75 字节的自定义二进制信标”)。 - **证据:** 始终将每个主张与特定的帧号、时间戳或配置行联系起来。 *由 CYB3R8 Falckon 撰写*
标签:C2通信, DAST, DGA, HTTPS伪装, IOC提取, Licat, Murofet, PCAP分析, RSA NetWitness, TCP/443, Wireshark, Zeus木马, 信标分析, 句柄查看, 命令与控制, 域名生成算法, 威胁情报, 安全培训, 开发者工具, 恶意软件分析, 攻防手痕, 教学指南, 木马分析, 网络信息收集, 网络安全, 隐私保护