使用场景
想必各位师傅和作者一样在护网期间作为蓝队猴子🐒蓝队成员、应急响应事件中作为现场工程师或是作为安全驻场工程师的情况下,经常会遇到安全设备可疑流量告警事件。其中原因多种多样,可能是服务器中了挖矿或者其他病毒,可能是鼠标动了之红队大佬上线,也可能是稀烂的系统开发商写的代码不行产生的误报,这个时候肯定不能对其放任不管,不然出了问题扯皮事小进去事大,各种恶意流量的分析网上许多大佬都有分享,而本篇文章则是分享用于护网or应急响应事件中针对可疑流量使用Wireshark进行排查的方法和思路。
什么是Wireshark
Wireshark是一款主流的网络封包分析工具,可以截取各种网络数据包,并显示数据包详细信息,常用于各种网络故障分析以及安全事件溯源取证。
安装Wireshark
Wireshark直接在官网下载就行,下载地址:https://www.wireshark.org/
安装没有什么难度,下好系统对应版本后一路选择next就行,需要注意的点是Win10系统安装完成后,选择抓包可能不显示网卡,需要下载win10pcap兼容性安装包,下载地址:https://www.win10pcap.org/download/
使用Wireshark进行可疑流量分析
下图是一张用于举例分析的设备告警可疑流量抓包截图,初步不难看出图中的服务器已经建立了稳定通信。
本文的排查思路大致为:
- 查看nds流量的一些解析特征来判断该可疑流量的告警是否为真,大概是什么事件
- 然后通过查看http通讯中的tls流量来分析该次事件中发生了哪些行为,从而确认事件的具体情况
- 通过威胁情报平台对猜想进一步确认,提供佐证材料
- 进一步过滤http流,查看流量包的具体信息得出本次事件的结论
- 形成报告
一、识别可疑的DNS流量
在过滤器中输入dns,会显示相应数据包来查看dns流量
这里可以看到两点:
- 主机(10.10.23.101)通过DNS查询了api.ip.sb.
- DNS解析服务器(10.10.23.1)通过多个IP对其进行响应,其中包括一个Cloudflare地址(全球最大的DNS服务商)
这其实是一种危险信号,初步可以判断主机(10.10.23.101)是受感染主机,因为api.ip.sb是一种IP检查服务,恶意软件经常使用它来在访问 C2 服务器之前确定其公网IP是否存在于沙箱中。
二、检查HTTP通讯
同样还是在过滤器中输入http || tls,查看tls流量的相关数据包
(图中没截完整,HTTP/X...是HTTP/XML)
过滤之后可以发现:
- 受感染主机(10.10.23.101)向服务器(188.190.10.10)发送了重复的HTTP POST请求
- HTTP/XML的使用表明了结构化数据泄露,而有效负载大小的增加暗示了数据逐渐泄露
- 服务器响应 200 OK,确认数据传输成功
三、发现C2通讯
深入研究 TLS 流量后,可以发现:
- 与 Cloudflare 服务器的 TLS 握手api.ip.sb.
- 通过api.ip.sb,呼应了恶意软件在发送被盗数据之前会检查其公网IP的理论。
- 频繁向服务器188.190.10.10(可能是C2服务器)发出 POST 请求。
- 间歇性出现“100 Continue”消息,表明服务器需要更多数据。
- 逐渐增加数据有效载荷,这是正在进行的渗透的明显表现。
那188.190.10.10是不是C2服务器呢?请看微步情报
也可以通过Virus Total进行查看,VirusTotal也是恶意样本分析人员常用的分析平台,而且免费!
官网地址:https://www.virustotal.com/gui/home/upload
不难看出同样被标记为恶意,那该服务器大概率为C2服务器了
四、跟踪HTTP流
为了进一步验证猜想,我们在wireshark中过滤了post请求并跟踪http流
在过滤器中输入http.request.method=="POST"
OK,可以以下得出结论:
- 本次事件为服务器感染恶意软件造成的数据泄露
- 受感染的系统 (10.10.23.101) 正在向 C2服务器188.190.10.10 发送被盗数据。
- 恶意软件使用 XML over HTTP,这是一种常见的秘密泄露方法
- 恶意软件可能在窃取数据之前检查了系统的公共 IP,这通常用于逃避沙箱检测
总结
通过以上几步的排查,可以搞清楚判断本次告警的原因以及处置方法,结合恶意流量分析能更快地找出问题所在。阻止未经授权的外部请求 – 限制对公网IP的检查服务和类似C2的流量的访问。通过应用这些措施,可以更快地检测和缓解类似的攻击。