行为恶劣的U盘病毒OSO.exe分析与查杀

病毒名:Worm.Pabug.ck

大小:38,132 字节
MD5:2391109c40ccb0f982b86af86cfbc900
加壳方式:FSG2.0
编写语言:Delphi
传播方式:通过移动介质或网页恶意脚本传播

经虚拟机中运行,与脱壳后OD分析结合,其行为如下:

文件创建:
%systemroot%/system32/gfosdg.exe
%systemroot%/system32/gfosdg.dll
%systemroot%/system32/severe.exe
%systemroot%/system32/drivers/mpnxyl.exe
%systemroot%/system32/drivers/conime.exe
%systemroot%/system32/hx1.bat
%systemroot%/system32/noruns.reg
X:/OSO.exe
X:/autorun.inf
X指非系统盘符
%systemroot%是环境变量,对于装在C盘的Windows XP系统,默认路径为C:/WINDOWS文件夹,以下以此假设进行分析。

创建进程:
%systemroot%/system32/gfosdg.exe
%systemroot%/system32/severe.exe
%systemroot%/system32/drivers/conime.exe

使用net stop命令,结束可能存在的杀毒软件服务

调用sc.exe,
config [对应服务] start=disabled
禁用这些服务

被结束和禁用的服务包括:
srservice
sharedaccess(此即系统自带防火墙——笔者注)
KVWSC
KVSrvXP
kavsvc
RsRavMon
RsCCenter

其中,在结束瑞星服务的过程中,由于瑞星会弹出提示,病毒作了相应处理:
用FindWindowA函数,捕捉标题为"瑞星提示"的窗口
用FindWindowExA函数,找到其中“是(&Y)”的按钮
用SendMessageA函数向系统发送信息,相当于按下此按钮


禁止或结束以下进程运行,包括但不限于:
PFW.exe
Kav.exe
KVOL.exe
KVFW.exe
adam.exe
qqav.exe
qqkav.exe
TBMon.exe
kav32.exe
kvwsc.exe
CCAPP.exe
EGHOST.exe
KRegEx.exe
kavsvc.exe
VPTray.exe
RAVMON.exe
KavPFW.exe
SHSTAT.exe
RavTask.exe
TrojDie.kxp
Iparmor.exe
MAILMON.exe
MCAGENT.exe
KAVPLUS.exe
RavMonD.exe
Rtvscan.exe
Nvsvc32.exe
KVMonXP.exe
Kvsrvxp.exe
CCenter.exe
KpopMon.exe
RfwMain.exe
KWATCHUI.exe
MCVSESCN.exe
MSKAGENT.exe
kvolself.exe
KVCenter.kxp
kavstart.exe
RAVTIMER.exe
RRfwMain.exe
FireTray.exe
UpdaterUI.exe
KVSrvXp_1.exe
RavService.exe

创建noruns.reg,并导入注册表,之后删除此文件。导入内容:
[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer]
"NoDriveTypeAutoRun"=dword:b5
改变驱动器的autorun方式(在我的虚拟机里没有实现)

修改注册表,创建启动项(后来在SREng日志中可见的项目):
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run]
<mpnxyl><C:/WINDOWS/system32/gfosdg.exe> [N/A]
<gfosdg><C:/WINDOWS/system32/severe.exe> [N/A]
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Winlogon]
<shell><Explorer.exe C:/WINDOWS/system32/drivers/conime.exe> [N/A]

为预防瑞星注册表监控提示,故伎重施:
用FindWindowA函数捕捉标题为“瑞星注册表监控提示”的窗口
用mouse_event控制鼠标自动选择允许修改。

访问注册表
[HKEY_LOCAL_MACHINE/software/microsoft/windows/currentversion/explorer/advanced/folder/hidden/showall]
CheckedValue键
破坏显示隐藏文件的功能(这一点在我的虚拟机中没有实现,可能是被TINY或SSM默认阻止了)


然而,做了这么多工作除去杀毒软件之后,作者似乎觉得还不保险,他终于使出了“杀手锏”:
在注册表
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options]
创建以安全软件程序名为名的子项

子项中创建子键
"Debugger"="C://WINDOWS//system32//drivers//mpnxyl.exe"
使得这些程序在被双击运行时,均会转为运行病毒文件mpnxyl.exe
形如:

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/avp.exe]
"Debugger"="C://WINDOWS//system32//drivers//mpnxyl.exe"

autoruns的日志中可以清楚地看到这些项目,以及遭到这种手法“蹂躏”的程序:
+ 360Safe.exe c:/windows/system32/drivers/mpnxyl.exe
+ adam.exe c:/windows/system32/drivers/mpnxyl.exe
+ avp.com c:/windows/system32/drivers/mpnxyl.exe
+ avp.exe c:/windows/system32/drivers/mpnxyl.exe
+ IceSword.exe c:/windows/system32/drivers/mpnxyl.exe
+ iparmo.exe c:/windows/system32/drivers/mpnxyl.exe
+ kabaload.exe c:/windows/system32/drivers/mpnxyl.exe
+ KRegEx.exe c:/windows/system32/drivers/mpnxyl.exe
+ KvDetect.exe c:/windows/system32/drivers/mpnxyl.exe
+ KVMonXP.kxp c:/windows/system32/drivers/mpnxyl.exe
+ KvXP.kxp c:/windows/system32/drivers/mpnxyl.exe
+ MagicSet.exe c:/windows/system32/drivers/mpnxyl.exe
+ mmsk.exe c:/windows/system32/drivers/mpnxyl.exe
+ msconfig.com c:/windows/system32/drivers/mpnxyl.exe
+ msconfig.exe c:/windows/system32/drivers/mpnxyl.exe
+ PFW.exe c:/windows/system32/drivers/mpnxyl.exe
+ PFWLiveUpdate.exe c:/windows/system32/drivers/mpnxyl.exe
+ QQDoctor.exe c:/windows/system32/drivers/mpnxyl.exe
+ Ras.exe c:/windows/system32/drivers/mpnxyl.exe
+ Rav.exe c:/windows/system32/drivers/mpnxyl.exe
+ RavMon.exe c:/windows/system32/drivers/mpnxyl.exe
+ regedit.com c:/windows/system32/drivers/mpnxyl.exe
+ regedit.exe c:/windows/system32/drivers/mpnxyl.exe
+ runiep.exe c:/windows/system32/drivers/mpnxyl.exe
+ SREng.EXE c:/windows/system32/drivers/mpnxyl.exe
+ TrojDie.kxp c:/windows/system32/drivers/mpnxyl.exe
+ WoptiClean.exe c:/windows/system32/drivers/mpnxyl.exe

删除卡卡助手的dll文件kakatool.dll(的确这么做了,虚拟机运行的结果和程序代码里的内容相映证)

为了堵死中毒者的“后路”,又采取了另一种卑劣的手法
修改hosts文件,屏蔽杀毒软件厂商的网站,卡卡社区“有幸”成为被屏蔽的其中一员:
这是后来用SREng看到的结果,在程序代码里也有相应内容:

127.0.0.1 mmsk.cn
127.0.0.1 ikaka.com
127.0.0.1 safe.qq.com
127.0.0.1 360safe.com
127.0.0.1 www.mmsk.cn
127.0.0.1 www.ikaka.com
127.0.0.1 tool.ikaka.com
127.0.0.1 www.360safe.com
127.0.0.1 zs.kingsoft.com
127.0.0.1 forum.ikaka.com
127.0.0.1 up.rising.com.cn
127.0.0.1 scan.kingsoft.com
127.0.0.1 kvup.jiangmin.com
127.0.0.1 reg.rising.com.cn
127.0.0.1 update.rising.com.cn
127.0.0.1 update7.jiangmin.com
127.0.0.1 download.rising.com.cn
127.0.0.1 dnl-us1.kaspersky-labs.com
127.0.0.1 dnl-us2.kaspersky-labs.com
127.0.0.1 dnl-us3.kaspersky-labs.com
127.0.0.1 dnl-us4.kaspersky-labs.com
127.0.0.1 dnl-us5.kaspersky-labs.com
127.0.0.1 dnl-us6.kaspersky-labs.com
127.0.0.1 dnl-us7.kaspersky-labs.com
127.0.0.1 dnl-us8.kaspersky-labs.com
127.0.0.1 dnl-us9.kaspersky-labs.com
127.0.0.1 dnl-us10.kaspersky-labs.com
127.0.0.1 dnl-eu1.kaspersky-labs.com
127.0.0.1 dnl-eu2.kaspersky-labs.com
127.0.0.1 dnl-eu3.kaspersky-labs.com
127.0.0.1 dnl-eu4.kaspersky-labs.com
127.0.0.1 dnl-eu5.kaspersky-labs.com
127.0.0.1 dnl-eu6.kaspersky-labs.com
127.0.0.1 dnl-eu7.kaspersky-labs.com
127.0.0.1 dnl-eu8.kaspersky-labs.com
127.0.0.1 dnl-eu9.kaspersky-labs.com
127.0.0.1 dnl-eu10.kaspersky-labs.com

另外:

hx1.bat内容:
@echo off
set date=2004-1-22
ping ** localhost > nul
date %date%
del %0

改日期?不过在虚拟机里没有实现

autorun.inf的内容:
[AutoRun]
open=OSO.exe
shellexecute=OSO.exe
shell/Auto/command=OSO.exe

如果你要从右键菜单来判别,很不幸,右键菜单完全看不出异常,无论你是双击还是右键,同样会激活病毒!

TINY还记录到,病毒关闭系统还原服务后再打开。这恐怕会导致丢失还原点的结果。

至此这个十分恶劣的病毒的行为分析告一段落,下面介绍清除方法(上面内容看得头晕的会员们,直接看清除方法即可)


清除方法归结为一句话:“夹缝中求生”
IceSword.exe、SREng.exe均被禁,但只需将文件改名,照样可以运行
autoruns.exe则不在被禁的行列
其他的被禁程序,一步步解禁

具体过程:

结束进程:
%systemroot%/system32/gfosdg.exe
%systemroot%/system32/severe.exe
%systemroot%/system32/drivers/conime.exe
没有发现此病毒禁用任务管理器。也可以用其他工具如procexp等

用autoruns删除以下项目(建议用autoruns,一是没被禁,二是一目了然,注意先选Options-Hide Microsoft Entries):
+ 360Safe.exe c:/windows/system32/drivers/mpnxyl.exe
+ adam.exe c:/windows/system32/drivers/mpnxyl.exe
+ avp.com c:/windows/system32/drivers/mpnxyl.exe
+ avp.exe c:/windows/system32/drivers/mpnxyl.exe
+ IceSword.exe c:/windows/system32/drivers/mpnxyl.exe
+ iparmo.exe c:/windows/system32/drivers/mpnxyl.exe
+ kabaload.exe c:/windows/system32/drivers/mpnxyl.exe
+ KRegEx.exe c:/windows/system32/drivers/mpnxyl.exe
+ KvDetect.exe c:/windows/system32/drivers/mpnxyl.exe
+ KVMonXP.kxp c:/windows/system32/drivers/mpnxyl.exe
+ KvXP.kxp c:/windows/system32/drivers/mpnxyl.exe
+ MagicSet.exe c:/windows/system32/drivers/mpnxyl.exe
+ mmsk.exe c:/windows/system32/drivers/mpnxyl.exe
+ msconfig.com c:/windows/system32/drivers/mpnxyl.exe
+ msconfig.exe c:/windows/system32/drivers/mpnxyl.exe
+ PFW.exe c:/windows/system32/drivers/mpnxyl.exe
+ PFWLiveUpdate.exe c:/windows/system32/drivers/mpnxyl.exe
+ QQDoctor.exe c:/windows/system32/drivers/mpnxyl.exe
+ Ras.exe c:/windows/system32/drivers/mpnxyl.exe
+ Rav.exe c:/windows/system32/drivers/mpnxyl.exe
+ RavMon.exe c:/windows/system32/drivers/mpnxyl.exe
+ regedit.com c:/windows/system32/drivers/mpnxyl.exe
+ regedit.exe c:/windows/system32/drivers/mpnxyl.exe
+ runiep.exe c:/windows/system32/drivers/mpnxyl.exe
+ SREng.EXE c:/windows/system32/drivers/mpnxyl.exe
+ TrojDie.kxp c:/windows/system32/drivers/mpnxyl.exe
+ WoptiClean.exe c:/windows/system32/drivers/mpnxyl.exe

这样包括IceSword、SREng、注册表编辑器和系统配置实用程序在内的部分程序不再被禁止

删除或修改启动项:
以用SREng为例
在“启动项目”-“注册表”中删除:
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run]
<mpnxyl><C:/WINDOWS/system32/gfosdg.exe> [N/A]
<gfosdg><C:/WINDOWS/system32/severe.exe> [N/A]

双击以下项目,把“值”中Explorer.exe后面的内容删除
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Winlogon]
<shell><Explorer.exe C:/WINDOWS/system32/drivers/conime.exe> [N/A]

删除文件:
由于非系统盘即便右键打开也会有危险,应该采用其他方法,推荐用IceSword或WINRAR来做
删除:
%systemroot%/system32/gfosdg.exe
%systemroot%/system32/gfosdg.dll
%systemroot%/system32/severe.exe
%systemroot%/system32/drivers/mpnxyl.exe
%systemroot%/system32/drivers/conime.exe
%systemroot%/system32/hx1.bat
%systemroot%/system32/noruns.reg
X:/OSO.exe
X:/autorun.inf

系统修复与清理:

在注册表展开
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/SHOWALL]
建议将原CheckedValue键删除,再新建正常的键值:
"CheckedValue"=dword:00000001

[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer]
NoDriveTypeAutoRun键的值,是否要改,要改为什么,视乎各人所需,一般默认为91(十六进制的)
此键的含义,请搜索网上资料,在此不再赘述

HOSTS文件的清理
可以用记事本打开%systemroot%/system32/drivers/etc/hosts,清除被病毒加入的内容
也可以用SREng在“系统修复”-“HOSTS文件”中点“重置”,然后点“保存”

最后修复一下服务被破坏的杀毒软件。

小结:
从拿到样本到方法写完,历时整整五小时。之所以要说得如此详细,是因为这个病毒相当的典型,尤其是它对付安全软件的几种方法。右键菜单没变化,也是比较“隐蔽”而且给清除带来麻烦的一个特征。对付这个病毒,也要在“知己知彼”的基础上,灵活运用方法和工具。

1月31日,艾玛补充:
http://forum.ikaka.com/topic.asp?board=28&artid=8261581

net stop sharedaccess这项服务仅是停用
禁用上网助手、木马助手、天网个人防火墙、金山毒霸扫描

另有文件生成:C:/重要资料.exe C:/美女游戏.pif

gfosdg.dll hook及键盘记录偷取QQ账户,网页收信

以上资料确定就是盗Q黑侠:-)

艾玛的后续补充说明,这个病毒的确存在生成器,即使是一般的电脑使用者,得到生成器,也可以轻松生成此类病毒。
在此再提醒广大用户,上网和使用移动介质时一定要小心谨慎。


针对会员们普遍反映清除过程仍然比较艰难,再补充一下:

一、mpnxyl.exe和gfosdg.exe、gfosdg.dll,其文件名是可变的,不过并非无章可循,一般有这样的特征:

如我第一次运行时产生以下启动项
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run]
<mpnxyl><C:/WINDOWS/system32/gfosdg.exe> [N/A]
<gfosdg><C:/WINDOWS/system32/severe.exe> [N/A]
severe.exe的启动项键名gfosdg,正是其中一个病毒程序gfosdg.exe的文件名
而gfosdg.exe的启动项键名mpnxyl,则就是drivers文件夹下的病毒文件mpnxyl.exe的文件名

再看另一份中毒日志中相应项目:
[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run]
<jypexx><C:/WINDOWS/system32/bdelys.exe> [N/A]
<bdelys><C:/WINDOWS/system32/severe.exe> [N/A]

可发现:severe.exe的启动项键名bdelys,正是其中一个病毒程序bdelys.exe的文件名
而bdelys.exe的启动项键名jypexx,则应该就是drivers文件夹下的病毒文件名
所以在这份日志中,原来的
%systemroot%/system32/gfosdg.exe
%systemroot%/system32/gfosdg.dll
%systemroot%/system32/drivers/mpnxyl.exe
相应被替换为
%systemroot%/system32/bdelys.exe
%systemroot%/system32/bdelys.dll
%systemroot%/system32/drivers/jypexx.exe

二、关于结束进程比较困难的问题。
考虑到进程间可能有进程守护,再加上dll插入
建议用procexp.exe(置顶工具帖中有)来结束进程
或者将IceSword.exe(置顶工具帖中有)改名(如改为Sword.exe)后运行(这样就不会再受IFEO的限制),勾选“禁止进线程创建”然后再结束进程。记得处理完病毒后“禁止进线程创建”的勾要再取消。

三、文件删除
如果成功结束这几个进程,exe文件的删除不会有太大问题,但是随机文件名的dll文件(如本例的gfosdg.dll)可能插入不少应用程序进程,直接删除有困难。
建议选用以下方法其中之一:
1.先删除exe文件,重启后再删除dll文件。由于gfosdg.dll是通过gfosdg.exe来加载,删除gfosdg.exe和其他病毒exe文件之后,重启电脑,gfosdg.dll即不再加载,可顺利删除
2.同样用IceSword(仍需改名,见上文)来从被插入的进程中卸除dll后再删除,或强制删除。
 

你可能感兴趣的:(c,虚拟机,Microsoft,dll,Delphi,杀毒软件)