恶意代码分析实战 5 分析恶意Windows程序

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1 Lab07-01

本次实验分析lab07-01.exe,lab07-02.exe,先来看lab07-01.exe的问题
问题

  1. 计算机重启后这个程序如何确保它继续运行达到持久化驻留

首先查看导入函数。
vmware_rxArff1ORt.png
vmware_yCHgkko6gV.png
OpenSCManagerA和CreateServiceA函数暗示着这个恶意代码可能创建一个服务来保证它在系统被重启后运行StartServiceCtrlDispatcherA导入函数提示了这个文件是一个服务。
vmware_7gjZ8LVnBN.png
调用了StartServiceCtrlDispatcherA函数这个函数被程序用来实现一个服务并且它通常立立即被调用。
创建了一服务这个程序创建服务MarlService来保证它每次在系统启动后运行。

  1. 为什么这个程序会使用一个互斥量

vmware_Hnzr6w58Px.png
在此处的函数调创建了互斥量。
vmware_mNhZoK57El.png
这段代码创建了一个名为“HGL345”的互斥量。这两对互斥量组合调用被设计来保证这个可执行程序任意给定时刻只有一份实例在系统上运行。如果有一个实例已经在运行了。则对OpenMuteA的第一次调用成功并且这个程序就会退出。
接下来这段代码调用OpenSCManager它打开一个服务控制管理器的句柄以便这个程序可以添加或者修改服务。下一个调用的是GetModuleFileName函数它返回当前正在运行的可执行程序或一个被夹在DLL的全路径名。第一个参数是要获取路径名的模块句柄或者将它设置为NULL来获取这个可执行体的全路径名。
这个程序使用一个互斥量来保证在同一时间这个程序只有一份实例在运行。

  1. 可以用来检测这个程序的基于主机特征是什么

主机特征是一个名为HGL345的互斥量以及MalService服务。

  1. 检测这个恶意代码的基于网络的特征是什么

再之后是调用createserviceA来创建一个新的服务。Createservicea调用有许多参数关键的参数如binarypathname,dwstarttype,dwservicetype.Dwstarttype这里是0x02对应的是service_auto_start说明这个服务在系统启动时自动运行。
vmware_0QsokDGSii.png
chrome_mwaF4qXSAv.png
ida标记了systemtime结构体是windows多个结构体之一。由xor edx,edx及之后的指令可知程序中该结构体的所有值首先被设置为0然后表示年yaer的值被设置为834h10进制的2100该事件表示2100年1月1日的午夜之后通过systemtimetofieltime,在不同时间格式之间转换。
vmware_140BnZsuJM.png
可以看到调用了setwaitabletimer关键参数为lpduetime,这个参数是systemtofiletime返回的filetime然后通过waitforsingleobject进入等待直到2100年1月1日。接下来看到了一个循环。
vmware_B8yF8Iwb2s.png
vmware_UZG5XwrpAO.png
这个恶意代码使用用户代理 “Internet Explorer 8.0”并不断的访问 “http://www.malwareanalysisbook.com”。

  1. 这个程序的目的是什么

这个程序等待到2100年1月1日的半夜那时发送许多请求到 “http://www.malwareanalysisbook.com” 带盖是为了对这个网站进行一次分布式拒绝服务DDoS攻击。

  1. 这个程序什么时候完成执行

这个程序永远不会完成。它在-一个定时器上等待直到2100年到时候创建20个线程每一个运行一个无限循环。

2 Lab07-02

分析在文件Lab 07-02.exe 中发现的恶意代码。
问题
分析
查看导入表
17790459-28ea4b41109873e8.webp
从ole32库中导入了OleInitialize函数这个程序可能使用了COM功能。
继续查看strings存在可疑URLhttp://www.malwareanalysisbook.com/ad.html
Tips:这里需要设置让strings页面可以读取unicode编码的字符串。
17790459-4a59a7384694bd3b.webp
跟进main函数按下F5查看
17790459-fbdacbc79ac74f75.webp
CLSID是0002DF01-0000-0000-C000-000000000046 (表示Internet Explorer)
IID是D30C1661-CDAF-11D0-8A3E-00C04FC9E26E (表示IWebBrowser2)
vmware_RTDsZfi12Z.png
CoCreateInstance执行结果保存在ppv一旦结构体从调用返回一旦结构体从 CoCreateInstance处返回COM客户端调用位于这个结构体某处偏移的一个函数见下图。

1处拿到返回的结构体指针2处将eax解引用并赋给edx3处通过偏移调用IWebBrowser2Vtbl中的第12个函数Navigate可以在struct页面尝试添加一个结构体快捷键Insert。每个函数4字节第一个函数在0位置。
vmware_FGXB1GAP6n.png
vmware_UgphXhnv2E.png
嗲用Navigate函数之后会执行一些清理函数然后程序终止。这个程序不会持久化自己也不会修改系统。只是简单的显示一次广告。当遇到如此简单的一个程序时要考虑它是可疑的他可能只是随额外的恶意代码一起打包只是其中的一个组件。
该函数被调用后Internet Explorer将导航至http://www.malwareanalysisbook.com/ad.html。该函数执行一些清理函数但是没有持久化驻留仅简单显示一个广告页面。

  1. 这个程序如何完成持久化驻留

这个程序没有完成持久化驻留运行一次然后退出了。

  1. 这个程序的目的是什么

这个程序的目的是显示一个页面ad.html可能是一个广告页面。

  1. 这个程序什么时候完成执行

这个程序在显示这个广告页面后完成执行。

3 Lab07-03

问题
分析
首先分析Lab07-03.exe文件查看导入表有很多文件操作。
vmware_NEXTNVTZDt.png
查看strings视图
vmware_0idmtnTayY.png
.data:0040304C 00000021 C C:\windows\system32\kerne132.dll 是仿冒的dll说明该文件存在仿冒系统关键dll的可能.data:0040307C 0000000D C Lab07-03.dll 说明可能调用了Lab07-03.dll用IDA Pro打开查看代码。
vmware_a8Z23vNk7s.png
首先用eax保存命令行参数的格式如果参数的个数不是2会直接退出并且比较了argv[1]是不是WARNING_THIS_WILL_DESTROY_YOUR_MACHINE这样保证了恶意代码不会在虚拟机中被自动执行属于反动态检测的一种手段。
打开两个文件C:\Windows\System32\Kernel32.dll 和Lab07-03.dll映射到内存中。
17790459-de13e7f2928931d1.webp
接下来就是将C:\Windows\System32\Kernel32.dll 的导出表部分复制到Lab07-03.dll的导出表。
vmware_1wqkh7wnEn.png
然后将Lab07-03.dll 复制到C:\windows\system32\kerne132.dll将文件命名为和关键系统库相似的名称进一步进行恶意行为。并跳转到loc_401806位置。先将参数C:\*压栈调用函数sub_4011E0。
该函数如下主要是遍历C盘文件第29行找到.exe结尾的文件调用函数sub_4010A0。
判断文件是不是以.exe结尾的逻辑主要在0x004013F6处。在0x004011E0和0x004013F6处设置断点F9执行查看栈上数据变化。可以看到这部分的执行逻辑和静态分析的结论一致。
17790459-cd7f8b820daa96b9.webp
至此程序功能清晰就是将对kernel32.dll的调用转换为kerne132.dll的调用这样很多程序都会受到影响很难清除
分析Lab07-03.dll查看导入表有创建互斥体以及网络相关函数。
17790459-5b318b753e97dc7d.webp
查看strings发现疑似恶意IP127.26.152.13还有几个其他可疑的字符串。
17790459-fa45ef848f3380a8.webp
跟进SADFHUHF字符串可以看到这是一个互斥量名称硬编码保证同一时刻只有一个恶意代码进程在执行。
17790459-f1958e2e4e679793.webp
跟进127.26.152.13结构体sockaddr.data保存了host信息和端口信息。IP是127.26.152.13端口是0x50(十进制80)
17790459-90ad621289b516d2.webp
17790459-31b91df1a39784e7.webp buf中保存的是hello发送这个字符串给C2受害者已经上线然后接收C2发送的命令继续保存在buf中检查buf的前五个字节是不是sleep如果是跳出循环sleep60s检查前四个字节是不是exec如果是使用CreateProcessA创建新的进程。关于此函数文档如下lpCommandLine参数可以执行命令。说明此DLL文件带有后门功能。

  1. 这个程序如何完成持久化驻留来确保在计算机被重启后它能继续运行

这个程序将自己复制到C:\windows\System32并伪装成重要dll库实际名称为kerna132.dll来执行持久化。

  1. 这个恶意代码的两个明显的基于主机特征是什么

基于主机的特征是互斥量硬编码SADFHUHF文件名kerna132.dll。

  1. 这个程序的目的是什么

目的是执行持久化操作并留下后门可以执行sleep和exec命令。

  1. 一旦这个恶意代码被安装你如何移除它

这个程序很难被删除是因它感染系统上每一个.exe文件。可能在这个例子中最好的方法是从一个备份恢复系统。可以留下kernel132.dll文件删除其中的恶意代码或者复制kernell32.dll文件并将它命名为kernel132.dll。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: windows