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


一、样本信息

样本名称: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进行重定位的修复。

\

\

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一样执行自己的代码


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

相关内容

    暂无相关文章