恶意代码分析实战-实验13

本文最后更新于:2021-10-13 上午

Lab 13-1

详细分析

监控行为可以看到有大量的网络连接

使用wireshark抓取数据包,可以看到如图的数据包内容。可以看到域名www.practicalmalwareanalysis.com还有get字段的内容V0lOLU5QTFE0SE9T。

使用IDA查看程序,可以看到有两个自定义的函数sub_401300sub_4011C9

来分析一下401300,可以看到从资源节中释放出来一些资源,然后调用sub_401190,分析此函数发现是一个与0x3B异或的过程。

资源节内容

异或后的结果,可以看到正是访问的域名。

使用IDA FindCrypt插件可以看到此程序有base64

找到地方发现正是第二个函数sub_4011C9之中。发现其进行编码的内容是通过gethostname函数获得的主机名。

base64过程

查看编码后的内容正是get字段的内容。

继续分析后面的函数,可以看到会访问这个URLwww.practicalmalwareanalysis.com/V0lOLU5QTFE0SE9T ,然后会调用InternetReadFile来读取返回的数据,如果返回的数据等于0x6F也就是o的话,那么返回值result就不等于0,就会终止外面的循环。

1.比较恶意代码中的字符串(字符串命令的输出)与动态分析提供的有用信息,基于这些比较,哪些元素可能被加密?

查看字符串,可以看到base64所用码表,Mozilla/4.0,http://%s/%s,这几个。加密的话就是base64加密,加密元素从这里不太好分析出来。

2.使用IDA pro搜索恶意代码中字符串“xor”,以此来查找潜在的加密,你发现了哪些加密类型?

4011B8处是3B在进行异或,那么这里重点关注一下,跟进后就是前面分析的xor解密。

3.恶意代码使用什么密钥加密,加密了什么内容?

使用的是base64加密,加密的是主机名

4.使用静态工具FindCrypt2,Krypto ANALyzer以及IDA熵插件识别一些其他类型的加密机制,你发现了什么?

可以发现base64加密

5.什么类型的加密被恶意代码用来发送部分网络流量?

base64加密

6.Base64编码函数在反汇编的何处?

在反汇编的401000处

7.恶意代码发送的Base64加密数据的最大长度是什么?加密了什么内容?

最大长度是12,注意这里的strncpy函数,指定了长度,为12,所以最大是12。加密的内容就是主机名

8.恶意代码中,你是否在Base64加密数据中看到了填充字符(=或者==)?

并没有看到填充的字符,因为我这里主机名正好为12位,根据base64编码的特性可以知道,是每三位变为四位,所以12位刚好扩充为16位无需填充,但是如果主机名不足12位,且其不能被3整除,就会出现填充字符。

9.这个恶意代码做了什么?

从资源节解密出一个域名,然后通过base64加密主机名,再和域名拼接形成一个URL,访问此URL,直到返回一个特定数据才会结束。

Lab 13-2

详细分析

使用火绒剑,可以看到有创建文件的行为,每隔一小会就会创建一个看起来是随机名称的文件。

使用IDA插件FindCrypt查找是否存在加密,没有找到

查看主函数,看到流程很短,while循环是一个死循环,其中有两个sleep函数,还有一个sub_401851函数,根据火绒剑的结果分析,隔一段时间创建文件应该就是sleep函数的原因。那么这个函数应该就是创建文件的函数。

查看此函数,可以看到其中有一个GetTickCount函数,此函数获取自系统启动以来的毫秒数,然后将其拼接成为文件名tempXXX,这就解释了刚才看到那些文件名是怎么回事了。

sub_401070函数,这是一个生成当前的屏幕截图的函数,在其中进行截图操作。

sub_40181F函数就是加密的函数,查看其传入的参数也是内容和大小

现在尝试在加密之前将图像内容给dump出来,在加密函数之前可以看到传入的参数分别是要加密的内容和大小

在lordpe中转存这部分区域,之后改为BMP格式即可看到图片,确实是当前的截图

1.使用动态分析,确定恶意代码创建了什么?

每隔一会会创建一个tempXXX文件

2.使用静态分析技术,例如xor搜索指令、FindCrypt2、KANAL以及IDA熵插件,查找潜在的加密,你发现了什么?

没有找到很有用的东西

3.基于问题1的回答,哪些导入函数将是寻找加密函数比较好的一个证据?

CreateFile和WriteFile

4.加密函数在反汇编的何处?

40181F

5.从加密函数追溯原始的加密内容,原始加密内容是什么?

原始的加密内容是屏幕截图

6.你是否能够找到加密算法?如果没有,你如何解密这些内容?

加密算法就在40181F中,可以在加密之前将内容dump出来

7.使用解密工具,你是否能够恢复加密文件中的一个文件到原始文件?

如详细分析中所述,那样操作。