“代理蠕虫变种ZAH”病毒技术细节
来源:瑞星公司 时间:2007-11-05 17:11:53
病毒摘要 技术细节
这是一个蠕虫病毒.使用Microsoft Visual C++ 6.0编写
1.exe部分
病毒运行后,创建一个线程,该线程先利用EnumWindows遍历当前系统内的窗口,在CallBack中利用GetClassName,GetWindowText,查找"KAVStart"等名称,找到后向该窗口发送WM_CLOSE和WM_COMMAND消息,再使用FindWindowEx查找"#32770","金山毒霸","Button",找到后向该窗口发送WM_LBUTTONDOWN,WM_LBUTTONUP消息,关闭杀毒软件.病毒使用Process32First, Process32Next遍历系统进程,查找进程中是否存在avp.exe如果遍历到该进程,则使用GetSystemTime获得当前系统时间,比较年份是否小于2005,如果不小于,则使用SetSystemTime将系统时间的年份改为2005年,使avp杀毒软件过期.
病毒会比较是否有"-k"参数,如果没有,则创建一个Dispaly Name为"61957A08"的服务,如果有的话,则创建一个线程.从自身文件中读取一个94A5415E.DLL放到%SYSTEM32%目录中,然后使用OpenProcess打开winlogon.exe进程,将94A5415E.DLL名称使用WriteProcessMemory写入,再使用CreateRemoteThread调用94A5415E.DLL.到此exe的工作完毕.
2.DLL部分
病毒上来先创建一个线程.该线程利用fopen,fseek,fread等,打开%SYSTEM32%目录下的61957A08.EXE文件(病毒本身),通过解密得到"
http://nx.51ylb.c..."这个网址.再加载"rpcrt4.dll"调用 "UuidCreateSequential"来获得当前机器的网卡MAC地址,再使用GetComputerNameA得到当前系统的计算机名称.再使用strcat把"
http://alexa.very..."这个网址连接起来.
病毒判断加载当前DLL的进程
a)如果是winlogon.exe进程,则创建五个线程.其中:
线程一:获取当前计算机时间,比较年份是否大于2005,如果大于则改年份改为2005
线程二:创建一个服务,使计算机在启动时自动加载病毒
线程三:先通过解密得到"61957A08"字符,再加病毒本身复制到"SYSTEM32"目录中.
线程四:删除注册表里的SYSTEM\CurrentControlSet\Services\ERSvc子项.并把SOFTWARE\Microsoft\PCHealth\ErrorReporting下的ReportBootOk,DoReport,ShowUI三个DWORD值设为0(修改的目的就是为了禁止错误报告提示)
线程五:利用PathFileExistsA查找"SYSTEM32"目录中的"61957A08.exe"文件是否存在,如果不存在,则下载
http://nx.51ylb.cn/...ata.txt列表文件,根据列表中的版本,地址,网址等信息.下载文件,修改IE主页等操作.遍历磁盘,向可移动磁盘中写入auto.exe(为病毒本身)和autorun.inf.其中autorun.inf的内容为:
[AutoRun]
open=auto.exe
shellexecute=auto.exe
shell\Auto\command=auto.exe
修改注册表内Software\Microsoft\windows\CurrentVersion\explorer\Advanced\Folder\ Hidden\SHOWALL的CheckedValue值为0达到隐藏文件的目的.
最后将DLL注入到explorer.exe进程中.
b)如果是explorer.exe进程,则创建两个线程,其中:
线程一:重复上面winlogon.exe里的线程五的步骤.
线程二:重复上面exe部分查找病毒软件窗口并关闭的步骤.
c)如果不是以上两个进程,则复制61957A08.exe到%SYSTEM32%目录中.