经过以上分析我们知道入侵已经达到远程控制阶段,攻击者在获取远程控制后会继续进行内网探测信息收集,或者窃取数据等实现入侵的目标。而我们也需要知道攻击者的后续活动。这通常分成两方面进行分析
网络侧
失陷主机
C2通信解码
主机侧
内存
硬盘
通过在海量日志中搜索失陷主机的网络行为,可以快速地发现一些可疑行为,例如攻击者利用失陷主机作为跳板机攻击内网其他资产、失陷主机与外网FTP服务器产生大流量会话等。但分析这些数据显然是费时费力的,而且很多时候分析师发现的可疑行为最终会确认为主机的正常行为。因此在分析前要评估这种分析的收益,分析的速度很难追得上入侵的速度。
C2通信解码在很多情况下都无法进行,这受限于很多条件,例如是否已经掌握了C2通信使用的协议信息,我们是否能获取到C2通信的完整数据包。建立全流量完整存储的安全设施成本非常高,但收集到的数据包对于入侵分析来说价值也非常高,许多安全厂商在全流量存储的基础上,增加了自己的安全检测规则。然而很多厂商的产品为了检测能力却牺牲了存储全流量的能力,因此很多组织开始使用开源全流量存储项目(https://staff.washington.edu/corey/gulp/)并进行二次开发来实现全流量存储。
解码C2通信的数据是非常困难的,因此在这个案例中我们不进行列举。想要对C2通信进行解码,我们通常需要对后门样本进行逆向分析,到目前为止我们还没有拿到样本。除了逆向分析外,还有一个更为快速的手段,那就是询问其他分析师,他们可能已经分析过这些通信特征并公开了出来。
MITRE公司有一个公开的使用Python开发的C2通信解码工具,叫做ChopShop,了解更多可以访问:
https://www.mitre.org/our-impact/intellectual-property/chopshop
除了MITRE的工具,美国军方也公开了一个C2通信解码工具——Dshell,SANS ISC有一篇介绍这个工具的文章:
https://isc.sans.edu/diary/Another+Network+Forensic+Tool+for+the+Toolbox+Dshell/19277
PaloAlto的unit42研究员有一篇netwire恶意软件C2通信的案例,文章链接如下:
https://unit42.paloaltonetworks.com/new-release-decrypting-netwire-c2-traffic/
在我们已有的netflow日志中以我们已知的失陷主机IP的FTP网络行为作为条件进行搜索,发现192.168.12.4向52.74.213.16这个互联网FTP服务器发送了约4GB的数据。
现在我们通过Edison公司的全流量存储系统拿到了失陷主机与FTP服务器的流量包,使用wireshark打开后,我们追踪TCP流,可以看到失陷主机向FTP服务器上传了一个名为exfil_data.rar的压缩包。FTP的用户名是[email protected],密码是uer
除了FTP流量,我们再来关注一下失陷主机与C2服务器通信的流量,我们发现有一些通信并没有周期性规律的网络访问,并且上行字节也比较大。这表明攻击者是在通过C2通信传递指令,且存在数据泄露的可能。
根据netflow日志的时间,我们再查看代理服务器的访问日志,我们发现在相同的时间,失陷主机向C2服务器发送了一个POST请求,并且访问的URL与之前周期性通信的URL不同。
此时我们可以绘制出目标达成这个阶段的钻石模型,攻击者拥有FTP服务器的基础设施,并且可能通过POST请求的C2通道、FTP通信两种方式窃取了4GB左右的数据。
Volatility 是迄今为止最受追捧也是最强大的内存分析工具。它是基于命令行的,因此要学习并掌握它确实需要一段时间。Volatility的开源和基于插件优势,让来自全球的开发人员不断贡献新功能。我们将在本课程中使用 Volatility。但请记住,我们本课程的目标不是让您成为内存分析专家,而是让您成为专业的 CTl 分析师。
在主机级内存取证领域,法律授权是一道难以逾越的鸿沟(不是所有人收集系统镜像都是合法的),因此作为组织需要与拥有法律取证授权的个人保持长久的合作,基于需求<->反馈建立一个反复循环的机制以便合法人员有效地帮助企业进行取证分析。
在分析攻击者的下一步动作时,主机侧分析往往是最关键的,因此一个组织的威胁情报能力最终都会受限于主机侧的分析能力。对硬盘数据和内存镜像进行取证是主机侧分析的常见数据源。我们发现恶意文件并梳理入侵时间线都是通过主机侧分析来完成的。如果我们无法获取内存镜像或硬盘数据,那以C2通信IP作为特征,在主机上扫描所有的可执行文件也是一种手段。
非常棒!在Edison公司有专人进行内存取证,现在经过申请我们已经拿到了失陷主机的内存镜像文件,我们现在使用Volatility 对它进行分析。首先我们查看一下进程列表,发现当前主机中运行着许多的进程。发现可疑的进程是非常依赖经验的,但是我们也有一些技巧让你迅速发现一些可疑进程,比如我们拿一个正常机器的进程与这个失陷主机的进程进行对比。
通过对比我们发现失陷主机上运行着一个冒充系统进程svchost.exe的进程scvhost.exe。现在我们可以到硬盘中寻找这个文件并把它提交给Edison公司的恶意软件分析团队进行逆向工程分析。