病毒分析之Virut病毒感染样本分析(setup.exe)

病毒分析之Virut病毒感染样本分析(setup.exe)

样本概况

文件: C:\Users\Hades-win7\Desktop\setup_mima666\setup.exe
大小: 369664 bytes
文件版本:8.0.50727.42 (RTM.050727-4200)
修改时间: 2014年4月21日, 11:18:00
MD5: E29DAE6188A0B0BB797C42F68D8DFA41
SHA1: 16B5B2BBEFD499AAE7B3B6111ABB2409AC76FAB1
CRC32: 43952BC7

该样本为正常程序被病毒感染后的样本,运行效果如图:


恶意行为

2.1创建内存映射,注入进程
2.2修改注册表,添加防火墙信任列表
2.3挂钩系统函数,过滤消息感染进程
2.4连接恶意网址,发送数据,接收数据,接受远程控制(服务器ilo.brenz.pl ant.trenz.pl)
2.5感染移动磁盘,复制病毒并创建autorun.inf文件,写入启动信息为病毒

2.6感染可执行文件

分析记录

执行完病毒代码后,调用原程序执行.


创建病毒文件到临时目录


通过Hash值来动态获取函数地址.




使用GetTickCount函数与rdtsc指令获取代码执行时间,判断是否处于调试状态,验证通过恢复代码继续执行.



申请内存拷贝恶意代码并执行


加载advapi32.dll获取函数并提权


创建进程快照,遍历进程,前四个进程不做操作,之后的进程对第一个可打开的进程HookAPI,创建共享内存,创建远程线程.剩余其他进程全部做inlineHook,但不执行远程线程


开始Hook几个内核

API(ZwDeviceIoControlFile,ZwOpenFile,ZwCreateProcess,ZwCreateProcessEx,ZwCreateUserProcess,ZwQueryInformationProcess)


挂钩内核函数



创建内存映射之后,创建远程线程,执行恶意代码.



修改注册表,添加防火墙信任列表



连接恶意网址线程


判断移动磁盘,复制病毒文件到移动磁盘,并创建autorun.inf文件


创建socket连接,连接服务器受控


可连接网址现在的状态


发送数据



感染文件会分成几种类型,读取要被感染的文件,通过判断入口附近是否有API调用等确定感染方式
如果有kernel32中的函数调用,更改其代码: call dword ptr [ api ] 改成 jmp virut
没有的话直接修改其入口等.

Virut类型病毒其感染方式多种,多态解密运行.是一个很有意思的样本.感染文件部分详细分析后能很大的增长自己的功力




过滤数据包,含有以下字符的udp包全部拦截


执行流程

参考文章:    virut详细分析   https://www.cnblogs.com/Mikhail/p/5615286.html