fkalam/network-traffic-analysis

GitHub: fkalam/network-traffic-analysis

使用 Wireshark 和 tshark 对恶意软件 PCAP 进行网络取证分析的实操练习,涵盖虚假下载站识别、C2 信标检测和受害主机溯源。

Stars: 0 | Forks: 0

# 网络流量分析 — 恶意软件 PCAP 调查 一项使用 Wireshark 分析真实恶意软件感染实操的网络取证练习。该场景模拟了 SOC 分析师的调查过程:一名用户从虚假软件网站下载了恶意软件,导致受感染的工作站向命令与控制(C2)服务器发送信标。 ## 场景 内部网络(`10.1.17.0/24`)上的一名用户搜索了 Google Authenticator,并下载了看似合法的应用程序。该下载源自一个旨在冒充 Google 的欺诈网站。安装后,该机器开始向外部 C2 服务器发起出站连接——表明存在活跃的恶意软件感染。 **目标:** 仅使用网络流量识别受感染的主机、虚假下载网站和 C2 基础设施。 ## 使用的工具 | 工具 | 用途 | |---|---| | Wireshark | 主要的数据包捕获分析工具 | | tshark (CLI) | 通过命令行从 pcap 中提取特定字段 | | Display filters | 隔离特定的流量类型(DNS、TLS、Kerberos) | ## 分析方法论 ### 步骤 1 — HTTP 请求概览 **过滤器:** `http.request` 初步了解捕获期间发生了哪些 HTTP 流量。识别出受感染的主机 IP(`10.1.17.215`)是大多数出站请求的来源。确定了感染的时间线。 **原因:** HTTP 请求显示了机器正在连接的位置及其下载的内容。这是 SOC 分析师为了解主机曾执行的操作而首先要检查的内容。 ### 步骤 2 — DNS 枚举 **过滤器:** `dns` 使用 tshark 提取捕获期间进行的所有 DNS 查询,以获取受感染机器尝试解析的每个域名的清晰列表。 **原因:** 恶意软件在连接到域名之前必须先对其进行解析。DNS 查询揭示了机器尝试访问的每个站点——包括虚假下载网站和 C2 域名——即使实际连接是加密的。 **使用的命令:** ``` tshark -r capture.pcap -Y "dns.flags.response == 0" -T fields -e dns.qry.name ``` **识别出的可疑域名:** - `google-authenticator.burleson-appliance.net` — 虚假的 Google Authenticator 下载页面 - `authenticatoor.org` — 模仿 "authenticator" 的域名误植(typosquatting)域名(双写 "o") - `appointedtimeagriculture.com` — 符合 DGA 生成的 C2 基础施特征的无意义域名 ### 步骤 3 — 虚假下载网站识别 **过滤器:** `tls.handshake.extensions_server_name contains "burleson"` 与虚假网站的连接是通过 HTTPS 进行的,因此 HTTP host 头被加密了。TLS Client Hello 数据包仍然通过 **Server Name Indication (SNI)** 扩展以明文形式暴露了域名。 **原因:** 即使是加密的 HTTPS 流量,也会在 TLS 握手过程中透露目标域名。SNI 是一个标准的 TLS 扩展,用于告知服务器出示哪个证书——它没有被加密,任何网络观察者都可以看到。 **发现:** 受感染的主机连接到了 `google-authenticator.burleson-appliance.net` ——一个旨在看起来像 Google 资产,但实际上托管在不相关域名(`burleson-appliance.net`)上的子域名。 ### 步骤 4 — C2 流量识别 **过滤器:** `tls.handshake.extensions_server_name contains "appointedtimeagriculture"` 确认了从受感染主机向 `appointedtimeagriculture.com` 发出的出站 C2 信标。该域名符合域名生成算法(DGA)的命名特征——随机生成的词汇串联在一起,以规避封锁列表。 **原因:** 恶意软件安装后,会向 C2 服务器“回连”以接收指令。识别此流量至关重要——封锁 C2 IP 可以切断攻击者对受感染机器的访问权限。 ### 步骤 5 — 受害者识别 **过滤器:** `kerberos.CNameString and ip.src == 10.1.17.215` 和 `dhcp` 使用 Kerberos 身份验证数据包和 DHCP 流量来识别完整的受害者资料——IP、主机名、MAC 地址和 Windows 用户名。 **原因:** 在真实的安全事件中,SOC 需要准确识别哪台机器和哪个用户账户受到了破坏,以便 IT 部门能够隔离主机并重置凭据。Kerberos 数据包包含用于向域进行身份验证的用户名,而 DHCP 则揭示了机器的主机名。 ## 调查结果汇总 | 字段 | 值 | |---|---| | 受感染 IP | 10.1.17.215 | | 受感染主机名 | DESKTOP-L8C5GSJ | | MAC 地址 | 00:d0:b7:26:4a:74 | | Windows 用户名 | shutchenson | | 虚假下载网站 | google-authenticator.burleson-appliance.net | | C2 域名 | appointedtimeagriculture.com | | C2 服务器 IP | 217.78.206.248 | ## 攻击时间线 1. 用户 `shutchenson` 搜索 Google Authenticator 2. 登陆 `google-authenticator.burleson-appliance.net` ——一个虚假网站 3. 下载并安装恶意软件 4. 恶意软件建立指向 `appointedtimeagriculture.com` (217.78.206.248) 的加密 C2 通道 5. 受感染机器开始发送信标——攻击者现已获得远程访问权限 ## 截图 ### 1. HTTP 请求概览 ![HTTP 请求](https://static.pigsec.cn/wp-content/uploads/repos/cas/f5/f51123a124a88125db534c071337616dc8aea2442f138e611015196f140ac6c9.png) 显示受感染主机(`10.1.17.215`)所有 HTTP 请求的初始过滤器。用于确定是哪台机器产生了恶意流量。 ### 2. DNS 查询流量 ![DNS 查询](https://static.pigsec.cn/wp-content/uploads/repos/cas/9d/9d445acc1267c8bce5100a2500160001cce6b3dbddc56bd87f853e6890301d94.png) 感染窗口期间捕获的完整 DNS 流量。用于识别可疑域名的基础。 ### 3. 与 Google 相关的 DNS 查询 ![Google DNS 过滤器](https://static.pigsec.cn/wp-content/uploads/repos/cas/06/060458a8ef678ff1def5635b6db0ace40a529297edb07218719ea3aeebbf768f.png) 包含 "google" 的过滤后 DNS 查询——揭示了受害者在感染前搜索 Google 相关内容的行为。 ### 4. 虚假网站 TLS 握手 ![虚假网站 TLS](https://static.pigsec.cn/wp-content/uploads/repos/cas/4a/4af97e5171edb312a23fa8054d18c6b83a71ebf0d86f4f05ae0939589a9618b7.png) 通过 SNI 暴露了 `google-authenticator.burleson-appliance.net` 的 TLS Client Hello 数据包。确认受感染主机连接到了欺诈性下载网站。 ### 5. C2 信标流量 ![C2 流量](https://static.pigsec.cn/wp-content/uploads/repos/cas/c0/c0696cbb6c36e6c5574f5e12224bc508aa54866d4efe9487c3b6eeb0deea6138.png) 发往 `appointedtimeagriculture.com` 的 TLS 握手,确认恶意软件安装后受感染主机存在活跃的 C2 通信。 ### 6. 通过 Kerberos 识别受害者 ![Kerberos 受害者信息](https://static.pigsec.cn/wp-content/uploads/repos/cas/d6/d64ecdb8762326949ac1c62020133780f3adf2df3c4a5a60dcbf0b20e685e5e2.png) 来自 `10.1.17.215` 的 Kerberos 身份验证数据包,揭示了 Windows 用户名 `shutchenson` 和机器账户 `DESKTOP-L8C5GSJ`。 ## 关键要点 - 恶意软件作者使用 **子域名欺骗** ——将虚假页面托管在看似合法的子域名上(如 `google-authenticator.burleson-appliance.net`)来诱骗用户 - **DNS 默认从不加密** ——即使流量是 HTTPS 的,DNS 查询也会暴露 C2 域名 - **TLS SNI 以明文可见** ——加密连接仍会在握手过程中暴露目标域名 - **Kerberos 和 DHCP 流量** 包含对受害者身份识别非常有用的主机和用户身份信息 - **DGA 域名** (如 `appointedtimeagriculture.com`)使用随机词汇组合来规避静态封锁列表 ## 防御建议 - 部署 **DNS 过滤**(例如 Cisco Umbrella, Pi-hole),在建立连接之前阻止已知的恶意域名 - 在网络边界启用 **SSL/TLS 检测**,对 HTTPS 流量进行解密和检查 - 强制执行 **应用程序白名单** ——防止安装来自未经批准来源的软件 - 监控 **指向新注册或低信誉域名的出站连接** - 培训用户,确保仅从官方供应商网站验证和下载软件 ## 数据来源 来自 [malware-traffic-analysis.net](https://www.malware-traffic-analysis.net/2025/01/22/index.html) 的 PCAP ——一个用于安全培训的真实恶意软件流量公共存储库。
标签:DAST, IP 地址批量处理, Wireshark, 句柄查看, 安全运营(SOC), 恶意软件分析, 数字取证, 网络信息收集, 网络安全, 自动化脚本, 隐私保护