mafjuuu/wireshark-incidents-analysis

GitHub: mafjuuu/wireshark-incidents-analysis

该项目利用 Wireshark 在隔离虚拟环境中对真实恶意软件流量进行网络取证分析,还原 AgentTesla 凭证窃取与 NetSupport RAT 的 C2 通信过程。

Stars: 0 | Forks: 0

# Wireshark 事件分析 为了在保证主计算机安全的前提下分析这些文件,我搭建了一个专用的实验环境。我在 VirtualBox 中创建了一个带有 GUI 的 Ubuntu Linux 虚拟机。 我在虚拟机上安装了 Wireshark,以便仔细检查网络数据包。正如下面的截图所示,此设置让我能够看到网络接口上发生的所有活动。图片展示了实时流量的混合情况,包括 TCP 握手、加密的 TLSv1.3 数据,以及高亮显示的 DNS 查询。 在 Linux 上使用 Wireshark 使得过滤无用信息、重构 HTTP 流以及找到该项目确切的妥协指标 变得容易得多。 image ## DNS 我使用了 DNS 过滤器 (`dns.qry.name contains ".com"`) 来查看我的设备与 DNS 服务器之间的通信。这项技术在网络取证中非常有用,因为它显示了机器尝试解析的域名历史。 如截图所示,我们可以清楚地看到源 IP 和目的 IP 地址。这里,10.0.2.15 是我的虚拟机,而 192.168.68.1 是充当 DNS 服务器的网关路由器。 然而,需要注意的是,**DNS 日志并不能准确显示访问了哪些具体页面或用户在那里做了什么**。DNS 查询只揭示主域名。一旦找到 IP 地址,实际的 Web 流量就会使用 TLS (HTTPS) 进行加密。由于这种加密,确切的内容、完整的 URL 和传输的数据在网络嗅探中是完全隐藏的。尽管有这个限制,追踪 DNS 请求对于发现与恶意软件或 C2 服务器相关的可疑域名仍然至关重要。 image ## HTTP 明文凭证窃取 在分析真正的恶意软件事件之前,我想展示一下当网站使用基本的、未加密的 HTTP 连接时,窃取登录凭证是多么容易。为了测试这一点,我使用了一个名为 Altoro Mutual 的易受攻击的银行演示网站。我在实验环境中打开了这个网站,输入了测试用的用户名和密码,然后点击了登录。 image 捕获网络流量后,我需要找到登录数据发送到服务器的确切时刻。我使用 `http` 过滤器过滤了 Wireshark 中海量的数据包,并专门寻找用于提交表单数据的 HTTP POST 方法。 image 因为该网站不使用 HTTPS,所以它不会对任何内容进行加密。为了揭示这些凭证,我在 Wireshark 的 Packet Details (数据包详情) 面板中展开了 HTML Form URL Encoded (HTML 表单 URL 编码) 部分,该部分解析了 HTTP POST 请求的原始主体。结果,参数 `uid=robert123` 和 `passw=robert123` 以明文形式完全可见,这表明攻击者在未加密的连接上拦截敏感登录数据是多么轻而易举。 image ## AgentTesla 恶意软件分析 (Infostealer) 在展示了 HTTP 的基本风险之后,我们现在将分析一个真实的感染案例。在这个案例中,一名员工遭到了钓鱼攻击并执行了一个恶意文件,该文件最终被证实是 AgentTesla 恶意软件。为了进行分析,我使用了来自 Malware-Traffic-Analysis.net 的真实流量数据和感染工件。AgentTesla 是一种危险的 infostealer,旨在从受感染的机器中悄悄提取敏感数据,例如浏览器密码、电子邮件凭证和键盘输入。 image 现在我将调查网络流量,以准确查明恶意软件是如何与攻击者的服务器通信的,以及窃取了哪些数据。 我首先过滤了 DNS 流量,以查看受感染的机器正在尝试连接哪些域名。如截图所示,我发现了几个针对 `ftp.ercolina-usa.com` 的查询。 这非常可疑,因为普通办公室员工在日常工作中极少使用 FTP 协议。在这种情况下,它表明 AgentTesla 恶意软件正在寻找其 Command & Control (C2) 服务器或用于上传窃取数据的渗出点。 image 在发现可疑的 DNS 请求后,我应用了 `ftp` 过滤器来检查连接期间实际发生了什么。截图中的结果让我清楚地看到了数据窃取的过程。 image 我们可以看到恶意软件自动使用用户名 `ben@ercolina-usa.com` 和明文密码在服务器 (`ftp.ercolina-usa.com`) 上进行身份验证。登录后,感染特征变得显而易见。恶意软件使用 STOR 命令上传了一个名为 `PW_gary.strickman-DESKTOP...` 的文件,这清楚地表明 AgentTesla 收集了属于用户 "Gary" 的密码列表并将其发送出去。最后,服务器响应了一个 226 代码,确认文件已成功传输。这完全证实了攻击的数据渗出阶段。 如第一个流快照所示,我们可以读取出确切的入侵序列。受感染的主机连接到 `ftp.ercolina-usa.com`,以明文形式传递凭证,并发出第一个 STOR 命令以上传 Gary 的系统密码。 image 进一步查看流,恶意软件并没有就此止步。它通过上传来自本地 Web 浏览器的目标凭证存储,进行了彻底的渗出。我们可以看到针对 Chrome (`CO_Chrome_Default.txt...`) 和 Microsoft Edge (`CO_Edge Chromium_Default.txt...`) 数据库的独立 STOR 命令。这种清晰的可视化充分证明了 infostealer 一旦在系统上站稳脚跟,是如何运作的。 除了查看网络流量之外,我们还可以调查初始访问载体。源文件包含了引发整个感染链的原始钓鱼邮件。通过打开 `.eml` 文件,我们可以直接查看邮件头和 HTML 主体代码,以了解攻击者是如何欺骗该员工的。 image 如邮件头所示,该邮件的主题是 PURCHASE QUOTATION。攻击者在这里使用了伪装技术。`From:` 标头显示该邮件伪装成来自一家真实公司的员工 (`sertan@acronas.com.tr`)。这是一种经典的社会工程学伎俩,旨在制造紧迫感并诱使业务目标打开恶意附件。 image ## SmartApeSG RAT 恶意软件分析 在调查了 infostealer 之后,我转向了一种更高级的威胁:一种被称为 SmartApeSG 的远程访问木马 (RAT)。infostealer 只是窃取数据然后离开,而 RAT 则会留在系统中,让攻击者对受感染的机器拥有完全的、长期的控制权。 image 在本次分析中,我重点识别 C2 (Command & Control) 通信。通过查看网络日志,我可以展示恶意软件是如何持续向攻击者的服务器进行“信标”通信并等待远程指令的。这种类型的恶意软件尤其危险,因为它允许进行实时监视并进一步利用内部网络。为了调查 SmartApeSG RAT,我应用了 `http` 过滤器来分析源自受感染主机 (10.12.17.101) 的 Web 流量。网络日志迅速揭示了一种高度自动化的模式,通常被称为心跳或信标。 image image 如截图所示,恶意软件使用了一个极具描述性的标头:`User-Agent: NetSupport Manager/1.3`。通过使用已知远程管理工具的修改版本,攻击者试图混入正常的网络操作中。在 HTTP 请求主体内部,实际的 C2 协议变得可见。受感染的主机发送一个 `CMD=POLL` 请求,它充当一个签到,以查看操作者是否排入了任何新指令。服务器 (`NetSupport Gateway/1.8`) 响应 `CMD=ENCD` 和一个加密的数据 payload (`DATA=...`),从而建立一个持久执行通道。 image 第二个流捕获显示了这个循环的继续。客户端不断响应它自己的 `CMD=ENCD` 数据包,将混淆的系统数据或执行结果上传回位于 194.180.191.64 的 C2 服务器。这种持续的编码交换循环证实了攻击者已经成功地对受害者的环境进行了交互式控制。 根据收集到的证据,作为一名 SOC 分析师,我会立即将受感染的工作站与网络隔离,以终止活动的远程控制会话。然后,我会在企业防火墙上将 C2 IP 地址 194.180.191.64 加入黑名单,以防止其与恶意基础设施进行任何进一步的通信。最后,我将为未经授权的 NetSupport Manager User-Agent 字符串创建一条检测规则,以在整个环境中搜寻潜在的衍生感染。
标签:DAST, PCAP分析, Wireshark, 句柄查看, 恶意软件分析, 数字取证, 网络流量分析, 自动化脚本