Backdoor.Zegost木马病毒分析(一)

来源:互联网 发布:vpn软件排行 编辑:程序博客网 时间:2024/05/16 10:36

http://blog.csdn.net/qq1084283172/article/details/50413426

一、样本信息


样本名称:rt55.exe

样本大小: 159288 字节

文件类型:EXE文件

病毒名称:Win32.Backdoor.Zegost

样本MD5:C176AF21AECB30C2DF3B8B8D8AA27510

样本SHA1:16E951925E9C92BC8EFDF21C2FBAF46B6FFD13BC


二、行为具体分析


1.获取当前运行模块的命令行参数,根据当前命令行参数是否包含字符串"NewUpdatExe"进行判断,决定下面提到的内存解密PE文件是调用导出函数NewUpdatExe还是导出函数xDllMain。






2.解密当前病毒进程内存地址为0x408070处,文件大小为0x17C00的被加密隐藏的PE文件。






3. 加载内存解密的PE格式的Dll文件,进行恶意病毒行为的操作;具体的加载过程后面会具体分析。







4.将解密内存PE文件的每个区节块的数据从文件映射到申请的内存空间中。





5. 对内存解密PE文件的重定位表Base RelocationTable进行重定位的修复。





具体的参考代码:http://blog.sina.com.cn/s/blog_6ac942220100l8c2.html


6. 获取解密内存PE文件的导入表中的INT表中的函数的调用地址填充IAT表。






7. 循环修改解密内存PE文件的各区节块数据段的内存数据属性。








8.运行的病毒进行将PE文件(dll文件)的加载已经基本完成了,因此这个被病毒进行内存加载的PE的动态库文件是有效可以执行的;因此以该内存PE动态库的OEP为函数指针执行恶意的代码。






9. 获取导出函数名称字符串"NewUpdatExe"或"xDllMain",用以获取解密内存PE文件的导出函数"NewUpdatExe"或"xDllMain"的调用地址。





遍历内存解密PE文件的导出表,获取需要的导出函数"NewUpdatExe"或"xDllMain"的调用地址。





10.根据步骤1中的传入的函数的名称"NewUpdatExe"或者"xDllMain",根据上面的步骤获取需要的导出函数"NewUpdatExe"或者"xDllMain"的地址,然后调用内存解密PE动态库文件的导出函数"NewUpdatExe"或者"xDllMain",执行恶意的代码;然后再次以内存解密PE文件的OEP为函数指针,执行内存PE文件的代码,执行恶意行为。




三、 病毒分析总结


总体来说,上面的详细的分析,基本可以使用一句话总结,那就是:宿主样本程序通过LoadPE的方式加载解密的PE动态库dll文件,然后有加载的PE动态库dll文件来执行具体恶意的病毒行为,从而达到逃过杀软的查杀的目的。关于Backdoor.Zegost木马病毒的具体行为也就是内存解密PE动态dll文件的恶意行为后面会详细的分析。


 

宿主样本程序加载PE动态库文件的步骤

1

在宿主程序内存中解密出加密的PE动态库dll文件

2

将内存解密的PE动态库dll文件的数据进行PE文件镜像的内存映射

3

对内存解密PE文件的重定位表Base RelocationTable进行重定位的修复

4

获取解密内存PE文件的导入表中的INT表中的函数的地址填充IAT表

5

修改解密内存PE文件的各个块数据段的内存数据属性

6

内存解密的PE动态库dll文件的加载完成,可以像正常dll一样执行自己的代码





:真的好烦,笔记本屏幕显示发白导致截图不清晰;本来想好好的记录下这个有意思的木马病毒,但是由于截图的效果不好,心情顿时就不好了。
原创粉丝点击