返回列表 回复 发帖

[技巧] 破坏系统services.exe、cdfview.dll和beep.sys文件的最新机器狗变种病毒 3代

本人分析细致全面,非常值得一看。
本文源自http://www.kingzoo.com/bbs/thread-12729-1-1.html
作者coderui

由于本论坛发帖限制,1贴不能发,所以发两帖


  破坏系统services.exe、cdfview.dll和beep.sys文件的最新机器狗变种病毒///////////////////////////////////////////////////////////////////////////////////////////////
文章名称:破坏系统"services.exe"、"cdfview.dll"和"beep.sys"文件的最新机器狗变种病毒分析资料
文章类型:病毒分析播报
编写作者:Coderui
编写日期:2008年05月09日
作者博客:http://hi.baidu.com/coderui
///////////////////////////////////////////////////////////////////////////////////////////////
------------------------------------------------------------------------------------
对病毒主安装程序“xx.exe”进行分析(病毒名称为:TrojanDownloader.Agent.agto):
英文名称:TrojanDownloader.Agent.agto
中文名称:“代理木马”变种agto
病毒类型:木马下载器
危险级别:★★
影响平台:Win 9X/ME/NT/2000/XP/2003
加壳名称:UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo [Overlay]
编写语言:Microsoft Visual C++ 6.0
文件大小:23,072 字节
脱壳入口:000022AA
注明信息:(病毒在临时文件夹中所释放的恶意文件“dat*.tmp”中的“*”号为不固定字符。)
作者在程序入口处制造了些异常,干扰计算机病毒分析人员,防止病毒程序被轻易逆向调试分析。
-----------------------------------------------------------
进入程序内部的入口后,会在这里产生一个特意构造的异常:
反汇编代码位置:004010C7 E8 04110000 CALL .004021D0 ; JMP 到 msvcrt._CxxThrowException
全部异常处理执行完毕后,会来到这里继续执行主程序领空的代码:
反汇编代码位置:004010D2 834D FC FF OR DWORD PTR SS:[EBP-4],FFFFFFFF
-----------------------------------------------------------
读取自身文件尾部资源,然后解密出来其它恶意程序下载地址列表:
(ASCII "http://ccc.52gol.com/tk.txt")
提取自身资源,在系统临时文件夹下释放一个恶意DLL组件文件:
"C:\Documents and Settings\coderui\Local Settings\Temp\dat1.tmp" ->(文件大小:15,191 字节,加壳名称:Upack V0.37 -> Dwing *)
然后利用系统API函数“LoadLibraryA”加载恶意DLL组件“dat1.tmp”程序,再使用系统API函数“GetProcAddress”获取该恶意DLL组件程序中导出函数“HttpAddUrl”的调用位置,最后使用“JMP”指令去调用执行。
调用恶意DLL组件“dat1.tmp”程序中的导出函数“HttpAddUrl”:
反汇编代码位置:00401168 E8 E80F0000 CALL .00402155 ; (EAX=10001580 (dat4.HttpAddUrl))
-----------------------------------------------------------
恶意DLL组件“dat1.tmp”程序中导出函数“HttpAddUrl”的功能:
设置调用该DLL的进程为“SeDebugPrivilege”权限:
“SeDebugPrivilege”、“GetCurrentProcess”、“OpenProcessToken”、“LookupPrivilegeValueA”、“AdjustTokenPrivileges”。
遍历寻找系统进程中是否有“drvAnti.exe”《驱动防火墙》进程在运行:
“CreateToolhelp32Snapshot”、“Process32First”、“Process32Next”、“strlen”、“_strnicmp”。
如果“drvAnti.exe”《驱动防火墙》进程存在,则将其进程强行关闭:
“OpenThread”、“TerminateThread”。
提取资源,在系统临时文件夹下释放一个恶意磁盘过滤驱动程序文件:
"C:\Documents and Settings\coderui\Local Settings\Temp\dat2.tmp" ->(文件大小:10,301 字节)
枚举系统内核模块,看是否存在“classpnp.sys”、“stpdrive.sys”、“ntfs.sys”、“fastfat.sys”、“ntoskrnl.exe”、“NTKRNLPA.exe”、“ntkrnlmp.exe”、“ntkrpamp.exe”、“atapi.sys”内核模块,并对其相应的结构进行处理或调用:
“ZwQuerySystemInformation”、“CreateFileA”、“CreateFileMappingA”、“MapViewOfFile”、“GetFileSize”。
读取注册表键值,获取数据:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IE4\data"
复制替换系统驱动文件:
先复制"C:\WINDOWS\system32\drivers\beep.sys"到"C:\WINDOWS\system32\dllcache\beep.sys"。
再复制"C:\Documents and Settings\coderui\Local Settings\Temp\dat2.tmp"到"C:\WINDOWS\system32\drivers\beep.sys"。
安装并启动被替换后的系统驱动程序“beep.sys”(恶意磁盘过滤驱动程序):
“OpenSCManagerA”、“OpenServiceA”、“CopyFileA”、“CloseServiceHandle”。
循环继续执行N次提权并遍历进程,然后关闭“drvAnti.exe”进程的操作。
-----------------------------------------------------------
利用磁盘过滤驱动程序去破坏系统文件的函数调用位置:
反汇编代码位置:0040116F E8 F80D0000 CALL .00401F6C
-----------------------------------------------------------
利用设备名为“\\.\PhysicalDrive0”的调用,去破坏系统程序文件“services.exe”,修改其系统程序文件“services.exe”的输入表:
(使其系统程序“services.exe”运行时,调用恶意病毒DLL组件程序“cdfview.dll”运行,而且还保留了系统原程序“services.exe”的功能。文件大小不变。)
"C:\WINDOWS\system32\services.exe"
利用设备名为“\\.\PhysicalDrive0”的调用,去覆盖系统DLL组件文件“cdfview.dll”:
(病毒以覆盖的形式去破坏系统文件“cdfview.dll”,原系统DLL组件程序文件功能同时也别破坏,不再具备原系统DLL组件程序文件的功能。文件大小不变。)
"C:\WINDOWS\system32\cdfview.dll"
-----------------------------------------------------------
把病毒当前运行的路径名保存到注册表项中:
HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\explorer\desktop\sysfile"
“C:\Documents and Settings\coderui\桌面\xx.exe”
调用恶意DLL组件“dat1.tmp”程序中的导出函数“InitHttp”:
反汇编代码位置:00401F1C FFD0 CALL EAX ; (EAX=100015A5 (dat4.InitHttp))
-----------------------------------------------------------
恶意DLL组件“dat1.tmp”程序中导出函数“InitHttp”的功能:
设置调用该DLL的进程为“SeDebugPrivilege”权限:
“SeDebugPrivilege”、“GetCurrentProcess”、“OpenProcessToken”、“LookupPrivilegeValueA”、“AdjustTokenPrivileges”。
遍历寻找系统进程中是否有“drvAnti.exe”《驱动防火墙》进程在运行:
“CreateToolhelp32Snapshot”、“Process32First”、“Process32Next”、“strlen”、“_strnicmp”。
如果“drvAnti.exe”《驱动防火墙》进程存在,则将其进程强行关闭:
“OpenThread”、“TerminateThread”。
遍历当前被感染计算机系统中的进程,向系统“winlogon.exe”进程内存中注入恶意可执行代码,并调用执行:
反汇编代码位置:100015C5 E8 26150000 CALL dat4.10002AF0
--------------------------------------------
被注入恶意可执行代码后的系统“winlogon.exe”进程的功能:
1:直接利用系统API函数“LoadLibraryA”去调用恶意DLL组件程序文件“C:\Documents and Settings\coderui\Local Settings\Temp\dat1.tmp”。
2:在后台连接骇客指定远程服务器站点地址“http://ccc.52gol.com/tk.txt”,下载“恶意程序下载地址列表”中所有的恶意程序并自动调用运行。具有穿墙功能。
3:线程工作完毕,利用系统API函数“ExitThread”来退出工作线程。
http://bbsattach.uuu9.com/attachment/Day_100805/2521_1301803_31f3a0d0b257bec.gif
----------------------------
被系统“winlogon.exe”进程调用的恶意DLL组件程序“dat1.tmp”的功能:
1:后台创建工作线程。
2:读取注册表键值:
"HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\explorer\DESKTOP\SysFile"
"C:\Documents and Settings\coderui\桌面\xx.exe"
3:删除病毒主安装程序文件:
反汇编代码位置:100034DA FF15 7C500010 CALL DWORD PTR DS:[1000507C] ; kernel32.DeleteFileA
FileName = "C:\Documents and Settings\coderui\桌面\xx.exe"
4:删除注册表中记录的数据:
反汇编代码位置:100034F9 FF15 14500010 CALL DWORD PTR DS:[10005014] ; ADVAPI32.RegDeleteValueA
"HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\explorer\DESKTOP\SysFile"
"C:\Documents and Settings\coderui\桌面\xx.exe"
5:释放恶意磁盘过滤驱动程序:
"C:\Documents and Settings\coderui\Local Settings\Temp\dat3.tmp"
6:使用释放出来的恶意磁盘过滤驱动程序文件去替换系统驱动程序文件:
"C:\WINDOWS\system32\drivers\beep.sys"
7:在后台连接骇客指定远程服务器站点地址“http://ccc.52gol.com/tk.txt”,下载“恶意程序下载地址列表”中所有的恶意程序并自动调用运行(具有穿墙功能):
反汇编代码位置:10002DEA 55 PUSH EBP
----------------------------
--------------------------------------------
如果系统“winlogon.exe”进程在当前用户计算机中没有运行。则病毒会去继续遍历系统进程,然后向系统桌面程序“explorer.exe”进程内存中注入恶意可执行代码,并调用执行:
(所执行的功能和注入到系统“winlogon.exe”进程中的恶意可执行代码的功能是完全一样的)。
反汇编代码位置:100015D6 E8 E5130000 CALL dat4.100029C0
反汇编代码位置:100015E2 E8 09150000 CALL dat4.10002AF0
-----------------------------------------------------------
执行完毕,调用系统API函数“exit(0)”来执行关闭退出。
(该病毒运行完毕后,病毒安装主程序会进行自我删除。删除功能是在“系统‘winlogon.exe’进程调用恶意DLL组件程序‘dat1.tmp’执行功能操作”中完成的。)
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
对被病毒破坏的系统服务程序文件“services.exe”进行分析:
(病毒名称为:Win32.Dogarp.b、文件大小为:。108,032 字节)

1:系统服务程序“services.exe”运行后,先加载恶意DLL组件程序“cdfview.dll”,然后再调用该恶意DLL组件程序中的导出函数“HttpAddUrl”进行恶意操作。
2:创建工作线程,在后台连接骇客指定远程服务器站点地址“http://ccc.52gol.com/tk.txt”,下载“恶意程序下载地址列表”中所有的恶意程序并自动调用运行(具有穿墙功能)。
3:同时,继续执行原系统服务程序“services.exe”自身的功能。
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
对被病毒覆盖的系统DLL组件程序文件“cdfview.dll”进行分析:
(病毒名称为:Worm.DogArp.b、文件大小为:150,016 字节。)

被病毒覆盖的系统DLL组件程序文件“cdfview.dll”具有两个导出函数,分别是“HttpAddUrl”和“InitHttp”。
被病毒覆盖的系统DLL组件程序文件“cdfview.dll”大概具有以下功能:
-----------------------------------------------------------
1:删除释放该恶意DLL组件程序的“病毒主安装程序”在磁盘中的文件。
2:设置当前程序进程为“SeDebugPrivilege”权限。
3:释放、安装并启动恶意磁盘过滤驱动程序“C:\WINDOWS\system32\drivers\beep.sys”,实现破坏磁盘中真实系统文件的功能。
4:遍历当前被感染计算机系统中的进程,向系统“winlogon.exe”或“explorer.exe”进程内存中注入恶意可执行代码,并调用执行恶意操作。
5:创建工作线程,在后台连接骇客指定远程服务器站点地址“http://ccc.52gol.com/tk.txt”,下载“恶意程序下载地址列表”中所有的恶意程序并自动调用运行(具有穿墙功能)。
6:循环遍历寻找系统进程中是否有“drvAnti.exe”《驱动防火墙》进程在运行,如果发现该进程存在,则将其进程强行关闭。
-----------------------------------------------------------
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
对被病毒替换的系统驱动程序文件“beep.sys”进行分析:
(病毒名称为:Trojan/DogArp.f、文件大小为:10,301 字节。)

  被病毒替换的系统驱动程序文件“beep.sys”是一个恶意的磁盘过滤驱动程序,采用C语言编写,未经过加密处理。该恶意磁盘过滤驱动程序一般以系统服务的方式来运行,当该恶意磁盘过滤驱动程序被安装启动后,病毒主程序会利用该恶意磁盘过滤驱动程序去破坏被感染计算机磁盘中的系统文件。该恶意磁盘过滤驱动程序具有绕过“还原保护系统”,去破坏被感染计算机真实磁盘中系统文件的功能,使用户防不胜防。该恶意磁盘过滤驱动程序属于恶意程序集合中的一个功能模块,伴随着该恶意磁盘过滤驱动程序模块还会有很多其它恶意程序模块一起安装到了被感染计算机用户的系统中。如果用户计算机感染了该类病毒,那么很难彻底清除干净,会给被感染计算机系统的用户带去不同程度的损失。
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
手动杀毒和修复方法步骤(经过实际测试绝对有效):
-------------------------------------
一、系统可以启动登陆的修复方法:(转载请注明出自Coderui的博客“http://hi.baidu.com/coderui”,谢谢)
1:把系统服务程序“services.exe”文件、系统DLL组件程序“cdfview.dll”文件和系统驱动程序“beep.sys”文件同时改名,Windows系统是支持运行着的程序改名的。(如果您能终止掉系统程序“services.exe”和DLL组件“cdfview.dll”的运行也可以)。
2:复制一个正常的系统服务程序“services.exe”文件保存为“C:\WINDOWS\system32\services.exe”文件。
3:复制一个正常的系统DLL组件程序“cdfview.dll”文件保存为“C:\WINDOWS\system32\cdfview.dll”文件。
4:复制一个正常的系统驱动程序“beep.sys”文件保存为“C:\WINDOWS\system32\drivers\beep.sys”文件。
5:删除系统临时文件夹下的病毒残留文件"dat*.tmp"。
6:按照上边的1-4步骤操作完毕后,重新启动一次计算机,一切修复完毕。
7:系统修复完毕后,要使用杀毒软件去查杀病毒。因为该病毒为木马下载器,它可能已经在您的计算机系统中安装了其它恶意程序(20款以上)。
-------------------------------------
-------------------------------------
二、系统无法启动登陆的修复方法:(转载请注明出自Coderui的博客“http://hi.baidu.com/coderui”,谢谢)
1:使用PE盘或DOS盘启动系统(这种情况下,安全模式是无法登陆的)。
2:复制一个正常的系统服务程序“services.exe”文件保存为“C:\WINDOWS\system32\services.exe”文件。
3:复制一个正常的系统DLL组件程序“cdfview.dll”文件保存为“C:\WINDOWS\system32\cdfview.dll”文件。
4:复制一个正常的系统驱动程序“beep.sys”文件保存为“C:\WINDOWS\system32\drivers\beep.sys”文件。
5:删除系统临时文件夹下的病毒残留文件"dat*.tmp"。
6:按照上边的1-4步骤操作完毕后,重新启动一次计算机,一切修复完毕。
7:系统修复完毕后,要使用杀毒软件去查杀病毒。因为该病毒为木马下载器,它可能已经在您的计算机系统中安装了其它恶意程序(20款以上)。
-------------------------------------
-------------------------------------
注意:
手动杀毒前请自行备份。
上述三个文件一般都可以在系统“C:\WINDOWS\system32\dllcache”目录下找到正常完好的系统备份文件。如果实在没有找到的话,可以去同一个版本的其它计算机系统中拷贝。
最好是断开网络修复系统,因为该病毒为木马下载器,它会连接网络向您的计算机中安装20多款其它恶意程序(如网络游戏盗号木马等)。
因为该病毒并没有去破坏或修改您系统中的注册表,请您不要去重新注册系统DLL组件“cdfview.dll”,不然可能会带去不必要的麻烦。
-------------------------------------
------------------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////////////////////
http://bbsattach.uuu9.com/attachment/Day_100805/2521_1301803_31f3a0d0b257bec.gif
返回列表