恶意代码分析实战3-1

Posted Elwood Ying

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了恶意代码分析实战3-1相关的知识,希望对你有一定的参考价值。

使用动态分析基础技术来分析lab03-01.exe
Q1:找出这个恶意代码的导入函数与字符串列表
Q2:这个恶意代码在主机上的感染迹象特征是什么
Q3:这个恶意代码是否存在一些有用的网络特征,如果存在,是什么?
依次分析

Q1:找出这个恶意代码的导入函数与字符串列表
将文件载入peview

可以看到只导入了kernel32.dll。只有一个导入函数——ExitProcss
推测这个程序可能被加壳了,导入函数将在运行时被解析
然后使用string查看字符串

从打印出的结果中我们看到url,注册表位置,exe程序名等信息。这里注册表字符串中看到了\\run,恶意程序为了实现自启动常常会修改注册表的位置,待会儿可以留意。
A1:这个恶意代码看起来是被加过壳的。唯一的导入函数是ExitProcess,字符串大多是明文,而未被混淆过。

Q2:这个恶意代码在主机上的感染迹象特征是什么
打开监控软件。Wireshark监控网络,process explpre,process monitor监控主机
三个程序都启动后,然后双击运行实验文件
先来看process explorer
如图所示设置

可以看到恶意代码动态装载的dll文件,如下所示

如上图的ws2_32.dll
我们知道,ws2_32.dll是WindowsSockets应用程序接口,用于支持Internet和网络应用程序;
表明它有联网功能
可以再如下设置,查看该进程创建或使用的句柄

此时可以看到

恶意代码创建了一个名为WinVMX32的互斥量

然后我们切换到Procmon分析
因为监控到的事件很多,所以结合我们的前面观察到的字符串的猜测,恶意代码可能会修改注册表,写文件等。所以可以设置三个过滤。一个是对进程名称的过滤,两个操作上的过滤,分别为RegSetValue,WriteFile
如下打开过滤器

设置过滤条件

然后点击“应用”即可
此时结果如下

上图中真正有分析价值的是2,3条。其他的是随机数发生器的种子导致软件在注册表中不断更新
双击第二条

可以看到恶意代码往c:\\windows\\system32\\vmx32to64.exe写了7168个字节。这和实验文件大小相同。我们可以根据路径找到该文件,然后与实验文件进行md5比较

可见两者有相同的md5哈希。说明恶意代码会复制自身到这个位置上

再看第三条

可以看到新创建的注册表项在HKLM\\SOFTWARE\\Microsoft\\Windows\\CurentVersion\\Run位置,名为VideoDriver,用于在系统启动时自动运行vmx32to64.exe

A2:该恶意代码创建了一个名为WinVMX32 的互斥量,并复制自身到C:\\Windows\\System32\\vmx32to64.exe,并安装自己到系统自启动项中,通过创建注册表键值HKLM\\SOFTWARE\\Microsoft\\Windows\\ CurrentVersion\\Run\\VideoDriver,, 并将其设置为复制副本的位置。

Q3: 这个恶意代码是否存在一些有用的网络特征,如果存在,是什么?
切换到wireshark进行分析

可以看到有对域名www.practicalmalwareanalysis.com的查询请求,这和我们查看字符串时看到的一样

会往目的主机的443端口发数据,不过似乎是一些随机数据,数据大小为0x100,即256字节大小,我们多次运行,数据包的长度始终是固定的,可是每次的内容都是随机的。
A3:恶意代码在进行www.practicalmalwareanalysis.com的域名解析后,会向远程主机443端口发送256字节大小的数据包,其中包含看似随机的二进制数据。

以上是关于恶意代码分析实战3-1的主要内容,如果未能解决你的问题,请参考以下文章

恶意代码分析实战19-03

恶意代码分析实战19-03

恶意代码分析实战19-01

恶意代码分析实战19-01

恶意代码分析实战3-2

恶意代码分析实战3-2