对于每一位恶意软件研究人员来说,通常首先要做的就是搭建一个方便的恶意软件分析环境。当所有系统配置和软件安装完成后,就可以对恶意软件进行适当的分析和研究。在上一篇文章中,我们为读者介绍了如何安装和配置虚拟机。接下来,我们将继续为读者演示如何采集网络流量等精彩内容。从上面继续:《如何量身打造恶意软件分析环境(上篇)》收集网络流量在分析恶意软件时,最好在受控环境中运行恶意软件,因为这可以使恶意软件运行和C2处于活动状态。分析网络流量是一个非常繁琐的过程,需要检测实时网络流量中的恶意软件调用。本节将帮助您配置自己的虚拟机以动态捕获被测试恶意软件的网络流量。此外,您还可以静态单步执行代码,这样您也可以手动调查当前的潜在威胁。首先必须配置的是MSEdgeWindows10和REMnux之间的VPN通信。在Windows10虚拟机上,选择自定义vmnet2网络(VirtualMachine->NetworkAdapter->Custom(vmnet2))。在Windows10虚拟机上,右键单击任务栏中的网络适配器,然后选择“打开网络和Internet设置”。选择以太网并单击更改适配器选项。右键单击Ethernet0并选择“属性”。双击Internet协议版本4(TCP/IPv4)。通过单选按钮,选择“使用以下IP地址:”并添加IP地址、子网掩码、默认网关和首选DNS服务器,如下所示:IP地址:10.1.2.100子网掩码:255.255。255.0默认网关:10.1.2.1。通过单选按钮选择“使用以下DNS服务器地址:”并添加:首选DNS服务器:10.1.2.1点击“确定”按钮完成网络设置的配置。我们现在已经为虚拟专用网络配置了REMnux适配器。虚拟机是联网的,也就是可以互相通信,所以现在是时候在REMnux虚拟机上配置一些工具来抓流量了。事实上,REMnux上已经安装了几个工具,所有这些都可以用来捕获网络流量。在这里,我们将使用BurpSuite和INetSim。BurpSuite通常用于测试Web应用程序防火墙,但在这种情况下,我们希望对其进行配置,以便当Windows10运行恶意软件时,它会尝试与相关域名或C2建立连接。此流量有可能使用HTTPS通过BurpSuite,BurpSuite将绑定到INetSim。INetSim是一个软件套件,可模拟实验室环境中的常见服务,以帮助分析恶意软件的网络行为。配置BurpSuiteBurpSuite的设置非常简单,但是在我们开始使用它之前,我们必须对其进行相应的配置:打开命令提示符,输入命令:$sudoBurpSuite。选择临时项目并单击“Next”,然后选择“StartBurp”选项。选择“代理”选项卡,然后选择“选项”选项。在ProxyListeners下,选择默认接口并单击Edit按钮。在“绑定”选项卡下,将“绑定到地址”设置为特定地址:10.1.2.1,然后单击“确定”按钮。重要步骤:回到MSEDGEWindows10虚拟机,打开Edge浏览器。在地址栏输入:http://10.1.2.1:8080。您现在应该看到“BurpSuiteCommunityEdition”。在页面右上角下载CA证书。打开文件所在目录,双击证书文件。选择“安装证书...”。选择“当前用户”作为存储位置,然后单击“下一步”按钮。选择“根据证书类型自动选择证书存储区”。单击“下一步”按钮,然后单击“完成”按钮。进入EDGE浏览器的设置步骤并禁用所有安全功能;这将有助于在下一节中测试与INetSim的连接。请务必创建快照。返回到REMnux虚拟机。现在您应该仍在“BurpSuiteProxy”选项卡中,开始编辑代理侦听器选项:在“Requesthandling”选项卡下,将“Redirecttohost”设置为localhost,将“Redirecttoport”设置为4443。选中“支持不可见代理”选项。现在转到“拦截”选项卡并确保“拦截”选项已关闭。在ProxyListeners下,选择默认值,然后单击Edit。在“绑定”选项卡下,勾选“绑定到地址:特定地址:10.1.2.1”,但将“绑定”更改为端口443。单击“请求处理”选项卡并将“重定向到主机”选项设置为本地主机和将“重定向到端口”设置为4443。选择“支持不可见代理(仅在需要时启用。)”选项并单击“确定”按钮。配置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端口,以便BurpSuite可以将流量路由到端口4443。向下滚动到https_bind_port部分,取消注释#字符并将443替换为4443。保存所有更改并退出编辑器。下一步是运行下面的命令——注意这些命令非常重要,必须执行,否则INetSim将无法正常工作。Ubuntu提供了处理系统解析的系统服务,它为本机应用程序提供网络名称解析。但是,这与INetSim冲突,因此我们需要禁用该服务。我们必须禁用系统解析,并屏蔽它,这样它就不会在重启时自动启动。最后,我们需要停止服务。$sudosystemctldisablesystemd-resolved$sudosystemctlmasksystemd-resolved$sudosystemctlstopsystemd-resolved最后一步是运行INetSim:$sudoinetsim要从Windows10虚拟机测试网络连接,请打开命令提示符并键入ping10.1.2.1,然后打开Edge并键入10.1.2.1.您应该会看到以下消息:“这是INetSimHTTP服务器假模式的默认HTML页面。”。最后的测试是为了确保DNS正常工作并且可以为适当的请求提供服务。对于这个例子,我在搜索栏中输入了https://www.mymaliciousdomain.com/malwaretrojan.exe。如果一切顺利,您应该会看到一个网页警告,指出所请求的网站不安全。我也喜欢在调查恶意软件时使用Wireshark抓包来分析pcaps。在REMnux的终端中打开一个新窗口并键入$wireshark。打开应用程序后,单击工具栏最左侧的鱼翅图标开始捕获数据包。“引爆”恶意软件恶意软件在执行时,通常会向某个域名或IP地址发出一些请求。INetSim通过伪造来自等待响应的恶意软件的响应来帮助解决这个问题。一个例子是,如果恶意软件被执行并连接到一个域,它不会在没有响应的情况下继续运行后续的恶意操作,除非满足条件(即收到响应)。如果恶意软件没有收到响应,它就会终止并且不会继续其恶意行为。这就是实时环境的用武之地:响应恶意软件“呼叫”和捕获网络流量。作为我们实验室环境设置的最后一步,我们将“引爆”臭名昭著的二进制木马(或您选择的任何恶意软件)来测试配置是否有效。我们将使用二进制恶意软件Trickbot(SHA256:49d95cae096f7f73b3539568b450076227b4ca42c0240044a7588ddc1f1b6985)进行测试。在这里,ProcessExplorer和TCPView已经被打开来监控这个Trickbot变种的执行情况。在深度逆向工程之前“引爆”恶意软件可以节省大量时间,因为它会收集关键信息以做出公正的假设。在这个例子中,当我们引爆这个trickbot样本时,三个“标注”脱颖而出。这些标注用于从Microsoft更新站点获取文件;获取这些cab文件的是一个没有可信证书的自动更新程序。证书信任列表是由受信任实体签名的预定义项目列表。这些请求的cab文件用于通过使用证书信任列表将已知的不受信任的证书添加到不受信任的证书存储来更新和扩展现有功能。尽管Trickbot是当今分支最多的恶意软件之一,并且具有更复杂的标注,但如果您处于研究初期并且从未遇到过此二进制文件,那么Trickbot是一个很好的起点。我已成功使用此实验室配置多年。早在2016年,当我被叫去处理突发事件时,搭建实验室的方法就派上了用场。当时,我没有时间对二进制文件做初步分类,因为我正在参加调查组组长的简短报告的电话会议。我立即通过快照启动了两个虚拟机,并在获取事件更新的同时引爆了二进制文件。在5分钟内,我将二进制文件调用的IP通知了调查负责人,这足以让威胁猎手迈出重要的一步。通话结束后,我开始对恶意软件进行逆向工程并提取其他IOC和TTP。总结在不同的恶意软件分析场景中,实验室环境的设置和配置会有所不同。在分析恶意软件时,您需要不同的工具来进行剖析和深入分析。希望本文介绍的SentinelLabsRevCoreTools和相关配置能对您有所帮助,但有时您可能需要分析一些不同的东西,可能需要其他工具来反汇编二进制文件。逆转恶意软件的过程是一场马拉松,而不是短跑;我们的目标应该是提高我们的技能,并从我们分析的每一个恶意软件中学习新的知识和技能。参考资料:https://support.microsoft.com/en-us/help/2677070/an-automatic-updater-of-untrusted-certificates-is-available-for-windowhttps://askubuntu.com/questions/191226/dnsmasq-failed-to-create-listening-socket-for-port-53-address-already-in-usehttps://gallery.technet.microsoft.com/scriptcenter/Change-the-Desktop-b5b2141chttps://gist.github.com/trietptm/b84ccad9db01f459ac7本文翻译自:https://labs.sentinelone.com/building-a-custom-malware-analysis-lab-environment/
