其他
恶意样本分析——XOR加密与进程注入
本文为看雪论坛优秀文章
看雪论坛作者ID:fickle
分析中如有不当的地方还请各位大佬指教。
PEID
PEView
IDA pro
火绒剑
strings提取字符串
WinHex
1
基础静态分析
1、查壳:
无壳。
2、提串:
一堆乱码,全是A,说明这个样本加密了,但是刚刚查壳有发现没有壳,于是打算看看PE文件有没有加密的迹象。
可以看到这部分没什么问题,并没有加密的迹象,我一个一个节查看,发现后面的资源节有问题,被加密了,就如我提串时看到的字符串一样全是A,如下图。
至此,我可以确定,这个样本使用了资源节加密技术,而且加密的资源节类型是UNICODE,名字是LOCALIZATION,但是加密方法、密钥我都不知道,所以接下来的分析就要注意这个问题。
我看到有几个明显的可疑函数:
VirtualAllocEx、WriteProcessMemory这几个函数一般用来进程替换,所以推测这个样本可能还使用了进程替换技术;
SizeofResource、LoadResource、FindResource都是用来加密资源节必要的函数,证明了之前的判断。
样本使用了资源节加密技术,目前并不清楚加密方法和密钥;
样本可能使用了进程替换技术,目前只是猜测。
2
基础动态分析
运行之后的前一小段时间,进程中出现了Lab12-02.exe进程和它创建的子进程svchost.exe。
一段时间后,只剩下svchost.exe进程。
3
IDA pro反汇编分析
看到字符串“\svchost.exe”,极有可能就是代表在此目录下创建svchost.exe进程(正如动态分析时看到的那样),所以跳转到sub_40132C函数(sub_40149D函数跳转进去只是一些字符串的操作,对分析的帮助不大)。
出现了之前导入表中和资源节加密有关的一系列函数,说明 sub_40132C 函数应该就是加密资源节的作用,所以接着向下分析,看看能不能找出加密方法和密钥。
到这里我看到有一个函数sub_401000被调用,而之前的所有代码调用的只有导入表中存在的API,所以我判断这个函数一定和加密的内核功能有关联,并且我注意到了这个函数还有一个参数41h被传入进去,这是个16进制数。跳转进去。
一步一步向下分析,就到了跳转到loc_401016这个位置。有一条指令引起了我的注意:xor al, [ebp+arg_8]。这条指令在对寄存器eax的低8位内容进行异或运算,而一般的异或运算大多都是寄存器自身异或来清除内容,所以这个异或运算显得很不寻常。
这里就清晰的看出了这是个典型的循环结构,而核心部分就在图中高亮的那行代码,显而易见,这个循环结构的目的就是让所有的内容进行一次异或运算,所以我判断,资源节加密的加密方法就是异或运算加密,密钥就是之前传入的参数41h。
回到_main函数,恶意代码完成资源节加密操作后,又调用了sub_4010EA函数,跳转过去看看。
4
总结
这个恶意样本有如下恶意行为和功能:
该恶意样本进行了资源节内容加密,并且在运行时解码内容,释放出一个二进制文件。加密方法是异或运算加密,密钥是41h,可以用WinHex解密查看明文内容;
该恶意样本使用了进程替换技术,用释放的二进制文件替换svchost.exe;
总体来看,该恶意样本的目的就是利用进程替换,秘密地执行自己的进程。
看雪ID:fickle
https://bbs.pediy.com/user-home-919734.htm
# 往期推荐
1. 超级长的IE调试总结:CVE-2013-1347 IE CGenericElement UAF漏洞分析
3.11个小挑战,Qiling Framework 入门上手跟练
4. VMP导入表修复
球分享
球点赞
球在看
点击“阅读原文”,了解更多!