恶意代码分析实战-实验13
本文最后更新于:2021-10-13 上午
Lab 13-1
详细分析
监控行为可以看到有大量的网络连接
使用wireshark抓取数据包,可以看到如图的数据包内容。可以看到域名www.practicalmalwareanalysis.com还有get字段的内容V0lOLU5QTFE0SE9T。
使用IDA查看程序,可以看到有两个自定义的函数sub_401300
,sub_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.使用解密工具,你是否能够恢复加密文件中的一个文件到原始文件?
如详细分析中所述,那样操作。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!