对于每个恶意软件研究人员来说,首先要做的就是建立一个方便的恶意软件分析环境。当所有系统配置和软件安装完成后,恶意软件可以正确分析和研究。在最后一篇文章中,我们向读者介绍了如何安装和配置虚拟机。接下来,我们将继续向读者展示如何收集网络流量。
以上内容:如何量身定制恶意软件分析环境(上)
收集网络流量
在分析恶意软件时,最好在受控环境中操作恶意软件,因为它可以操作恶意软件C2进入活跃状态。分析网络流量是一个非常繁琐的过程,需要在实时网络流量中检测恶意软件呼叫。本节将帮助您配置自己的虚拟机,动态捕获被测恶意软件的网络流量。此外,您还可以静态调试代码,手动调查当前的潜在威胁。
首先要配置的是MSEdge Windows 10和REMnux虚拟专用网络通信之间。
在Windows在 10虚拟机上,选择自定义vmnet2网络(Virtual Machine->Network Adapter->Custom (vmnet2))。
在Windows 10虚拟机上,右键单击任务栏中的网络适配器,然后选择“Open Network & Internet settings”。
选择以太网并单击“Change adapter options”。
右键单击Ethernet0并选择“Properties”。
双击“Internet Protocol Version 4 (TCP/IPv4)”。
选择单选按钮“Use the following IP address:”,然后添加IP地址、子网掩码、默认网关和首选DNS具体如下:服务器:
- IP地址:10.1.2.100
- 子网掩码:255.255.255.0
- 默认网关:10.1.2.1。
- 选择单选按钮“Use the following DNS server address:”并添加:
- 首选DNS服务器: 10.1.2.1
单击 “OK”按钮,完成网络设置的配置。
现在,我们已经配置了虚拟专用网络REMnux适配器。
虚拟机已经上网了,也就是说,它们可以相互通信,所以现在可以了REMnux在虚拟机上配置一些工具来捕获流量。
实际上,REMnux各种工具已经安装在上面,可以用来捕获网络流量。我们将在这里使用它Burp Suite和INetSim。Burp Suite通常用于测试Web防火墙的应用,但在这种情况下,我们希望进行相应的配置Windows 10运行恶意软件时,将尝试在相关域名或C2连接。这些流量可以使用HTTPS通过Burp Suite,而Burp Suite将绑定到INetSim。INetSim为了帮助分析恶意软件的网络行为,可以模拟实验室环境中常见的服务。
配置Burp Suite
Burp Suite设置很简单,但在开始使用之前,我们必须进行相应的配置:
打开命令提示符,键入命令:$ sudo Burp Suite。
选择临时项目,然后点击“Next”,再选择“Start Burp”选项。
选择Proxy然后选择选项卡“Options”选项。在Proxy Listeners下面,选择默认接口,然后单击Edit按钮。
在Binding在选项卡下,将“Bind to address”设置为Specific address: 10.1.2.1 ,并点击“OK”按钮。
重要步骤:
- 返回MSEDGE Windows 10虚拟机,打开Edge浏览器。
- 输入地址栏:http://10.1.2.1:8080。这个时候应该会看到 "Burp Suite Community Edition"。
- 下载页面右上方的CA证书。
- 打开文件目录,双击证书文件。
- 选择“Install Certificate...”。
- 选择“Current User”点击作为存储位置“Next”按钮。
- 选择“Automatically select the certificate store based on the type of certificate”。点击"Next"按钮,然后点击“Finish”按钮。
进入EDGE设置浏览器步骤,禁止所有安全功能;这将有助于下一节的测试INetSim的连接。
一定要建立快照。
返回REMnux虚拟机。现在,你应该还在“Burp Suite Proxy”在选项卡中,编辑代理监听器选项:
在“Request handling”在选项卡下,将“Redirect to host”设置为localhost,将“Redirect to port”设置为4443。“support for invisible proxying”选项。
现在进入“Intercept”保证选项卡“intercept”关闭选项。
在“Proxy Listeners”下面,选择默认值,然后单击“Edit”。
在“Binding”选项卡下,选择“Bind to address: Specific address: 10.1.2.1”,但将“Bind”改为443端口。
点击“Request handling”选项卡,将“Redirect to host”选项设置为localhost,将“Redirect to port”设置为4443。
选择“Support invisible proxying (enable only if needed.)”选项,然后单击“OK”按钮。
配置INetSim
由于REMnux已经预装了INetSim,因此,我们可以直接使用我们最喜欢的文本编辑器打开位置/etc/inetsim/目录中的inetsim.conf文件。按以下步骤配置。INetSim:
提示:请注意,恶意软件可以通过检查文件中的所有内容是否取消注释来检测它是否在虚拟环境中运行。我还没有遇到过这种情况,但意识到这种可能性是一件好事。当然,您也可以采取更保守的方法,只取消计划使用的服务注释。
下一步是在inetsim.conf文件中绑定REMnux网络适配器IP。服务菜单后的下一部分是service_bind_address。取消#将默认IP地址从10.10.10.1改为0.0.0.0。
向下滚动到dns_default_ip部分,取消#并将IP地址从10.10.10.1改为10.1.2.1。
最后要做的是绑定HTTPS端口,这样Burp Suite流量路由4443端口。向下滚动https_bind_port部分,取消#字符并将443替换为4443。
保存所有修改并退出编辑器。
下一步是操作下面的命令——注意,这些命令非常重要,必须执行,否则INetSim不能正常工作。Ubuntu为本地应用程序提供网络名称分析提供系统解析服务。然而,这与INetSim因此,我们需要禁止这项服务。
我们必须禁system-resolve,屏蔽它,这样它就不会在重启时自动启动。最后,我们需要停止服务。
最后一步是操作INetSim:
要从Windows 10虚拟机测试网络连接,请打开命令提示符并输入ping 10.1.2.1,然后打开Edge并输入浏览器10.1.2.1。您应看到以下信息:“This is the default HTML page for INetSim HTTP server fake mode.”。
最后一个测试是保证DNS正常工作,并能为相应的请求提供服务。对于这个例子,我在搜索栏中输入了它https://www.mymaliciousdomain.com/malwaretrojan.exe。若一切正常,应看到网页警告,指出要求的网站不安全。
我也喜欢在调查恶意软件时使用它Wireshark分析捕获数据包pcaps。
在REMnux在终端中打开新窗口并键入$ wireshark。
打开应用程序后,点击工具栏左侧的鲨鱼鳍图标,开始捕获数据包。
“引爆”恶意软件
当恶意软件被执行时,它通常会向域名或IP地址发出一些请求。INetSim通过伪造正在等待响应的恶意软件的响应来帮助解决这个问题。例如,如果恶意软件被执行并连接到一个域,则不会继续在没有响应的情况下运行后续恶意操作,除非满足条件(即收到响应)。如果恶意软件没有收到响应,它将被终止,其恶意行为将不会继续。这是实时环境的地方:反应恶意软件“呼叫”,并捕获网络流量。
作为实验室环境设置的最后一步,我们将“引爆”用臭名昭著的二进制木马(或任何你选择的恶意软件)来测试配置是否能正常工作。
我们将通过二进制恶意软件Trickbot(SHA256:49d95cae096f7f73b3539568b450076227b4ca42c0240044a7588ddc1f1b6985)测试。在这里,已经打开了Process Explorer和TCPView来监控Trickbot执行此变种。
在进行逆向分析之前,“引爆”恶意软件可以节省很多时间,因为它可以收集关键信息,从而做出无偏见的假设。在这个例子中,当我们引爆它时trickbot有三个样本“callout”很显眼。
这些callout从微软更新网站获取文件;获取这些文件cab该文件是一个没有可信证书的自动更新器。证书信任列表是由信任实体签署的预定义项目列表。这些请求cab该文件用于更新和扩展现有功能,将已知的不可信证书添加到不可信证书存储区域。
尽管Trickbot是当今分支最多的恶意软件之一,并且其callout更复杂的是,如果你正处于研究的初始阶段,从未遇到过这样的二进制文件,那么Trickbot这是一个很好的起点。
我已经成功使用该实验室配置很多年了。早在2016年,当我临危受命处理一起突发事件时,该实验室的搭建方法就派上用场了。当时,我没有时间对二进制文件进行初步分类,因为当时在参加一个电话会议,由调查组负责人做简要汇报。我立即通过快照启动了这两个虚拟机,并在了解事件最新情况的同时引爆了二进制文件。在5分钟内,我通知了调查负责人有关该二进制文件所呼叫的IP信息足以威胁猎人迈出重要一步。电话会议结束后,我开始逆向分析恶意软件,提取其他软件IOC和TTP。
小结
在不同的恶意软件分析中,实验室环境的建设和配置会有所不同。在分析恶意软件时,您需要使用不同的工具进行分析和深入分析。我希望这篇文章能介绍出来SentinelLabs RevCore Tools和相关配置能够为您提供帮助,但有时您可能需要分析一些不同的内容,并且可能需要其他工具来对二进制文件进行反汇编处理。逆向分析恶意软件的过程是一场马拉松,而不是短跑;我们的目标应该是提高自身的技能,并从分析的每种恶意软件中学习新的知识和技能。
参考资料:
- https://support.microsoft.com/en-us/help/2677070/an-automatic-updater-of-untrusted-certificates-is-available-for-window
- https://askubuntu.com/questions/191226/dnsmasq-failed-to-create-listening-socket-for-port-53-address-already-in-use
- https://gallery.technet.microsoft.com/scriptcenter/Change-the-Desktop-b5b2141c
- https://gist.github.com/trietptm/b84ccad9db01f459ac7
本文翻译自:https://labs.sentinelone.com/building-a-custom-malware-analysis-lab-environment/