论坛帖子内容              Thread Content
对新 Javqhc 拦截各安全软件及诊断工具的方式简单分析
作者 depressedboy   查看 325   发表时间 2008/7/12 22:14  【论坛浏览】
原帖:http://bbs.360safe.com/viewthrea ... p;extra=&page=1btyngkhqr
btyngkhqr
]昨天,几个朋友,包括天月来了,电脑维修工等,在一个帖子里对新 Jvaqhc 拦截各种安全软件及诊断工具的方式发生了质疑。btyngkhqr
btyngkhqr
具体可以参考此帖:http://bbs.360safe.com/viewthread.php?tid=528816btyngkhqr
btyngkhqr
这种新 Javqhc 病毒,会拦截很多安全工具,发现后即可结束其任务,并删除文件。十分恶劣。btyngkhqr
btyngkhqr
甚至连各种诊断工具都不放过。我们惯用的命令行版都不能幸免。不管是改名,还是删除 360 的 FileVerInfo 签名,都躲不过它的追杀。btyngkhqr
btyngkhqr
我一直也没想出病毒是如何确定的特征码,确定一个进程是 360 安全卫士及相关产品的呢?btyngkhqr
btyngkhqr
经过简单分析,我初步确定了 Jvaqhc 判断的手段,简单说明如下:btyngkhqr
btyngkhqr
病毒首先会判断注册表下:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad 是否存在自身,若不存在,则创建自身的 SODL 值。在 CLSID中注册自己(复制到 System32 下的随机文件名)。btyngkhqr
btyngkhqr
SODL 可以在 360 的诊断报告中观察到。ShellServiceObjectDelayLoad 的作用就是在 Shell 执行一个可执行文件后,延迟加载动态链接库。btyngkhqr
btyngkhqr
这样,当我们运行一个可执行文件,比如诊断报告工具的时候,就会延迟加载这个病毒链接库。btyngkhqr
btyngkhqr
当运行至病毒链接库的入口点后,病毒会创建几个线程,具体没有认真分析,其中有一个线程会获取当前进程的完整路径和文件名。btyngkhqr
btyngkhqr
并通过判断同一路径下的所有文件(用 FindFirstFile 枚举),与自身设定的一个特征库一一对比,如果发现符合特征,就结束当前进程,并删除进程的映像文件。btyngkhqr
btyngkhqr
这些特征库,包括:LibDLL.dat 及其他安全软件的同一目录下的特征文件名。btyngkhqr
btyngkhqr
  引用:
KNetWch.SYSbtyngkhqr
mmskskin.dllbtyngkhqr
Iereset.dllbtyngkhqr
KASearch.DLLbtyngkhqr
Rsaupd.exebtyngkhqr
libdll.datbtyngkhqr
libclsid.datbtyngkhqr
CleanHis.dllbtyngkhqr
WoptiClean.sysbtyngkhqr
kakalib.defbtyngkhqr
kakalib.defbtyngkhqr
KAVBootC.sysbtyngkhqr
Ras.exebtyngkhqr
iehelp.exebtyngkhqr
trojandetector.exebtyngkhqr
KAConfig.DLLbtyngkhqr
KAVPassp.DLLbtyngkhqr
KKClean.dllbtyngkhqr
VirUnk.defbtyngkhqr
AntiActi.dllbtyngkhqr
FileAnalyser.dllbtyngkhqr
ollydbg.ini
btyngkhqr
由于 360 的很多产品,均包含这个 LibDLL.dat ,所以也就无法幸免了。btyngkhqr
btyngkhqr
为了解决这个问题,我修改了 360 安全卫士诊断工具命令行版,将所有的 DAT 文件特征,修改成 EL 扩展名,结果成功躲避了病毒的追踪。btyngkhqr
btyngkhqr
这个修改后的诊断报告工具命令行版,可以在这里下载(帖子的 5 楼)btyngkhqr
btyngkhqr
另外,病毒会将正常的 advapi32.dll 和 Kernel32.dll 复制一份到 System32 下的随机文件名。btyngkhqr
btyngkhqr
通过 Hook 正常的函数库 advapi32 的 RegOpenKeyEx,RegEnumKeyEx等函数,导致其他安全工具,包括诊断报告工具,在枚举注册表时,被病毒 Hook,病毒会让这些枚举操作跳过自身的注册表项目,造成报告上缺失病毒的SODL 项目,因此,从报告上可能看不到病毒的加载项。btyngkhqr
btyngkhqr
通过 Hook 正常的函数库 Kernel32 的 CreateFile,导致其他安全工具在连接文件时被 Hook,所以某些安全工具,比如 360 的诊断报告会认为这个文件不存在。报告上的 CLSID 显示为“无效”,且无法计算出病毒文件的 MD5 值等。btyngkhqr
btyngkhqr
而病毒自身要使用这些函数的时候,就通过 LoadLibrary 和 GetProcAddress 两个函数,使用自身复制后的两个随机文件名函数库,这样自身就不会有任何影响了。btyngkhqr
btyngkhqr
所幸的是,这些 Hook,虽然隐藏了病毒的注册表项目,我们从报告上看不到病毒的注册表项目了,但仍然可以看到它注入在别的进程中的注入信息。btyngkhqr
btyngkhqr
[ 本帖最后由 depressedboy 于 2008-7-12 22:15 编辑 ]

序号 评论者 共有评论 0   【论坛浏览】  【发表评论】 评论时间
当前无任何评论,或评论已被禁止显示
 共有评论数 0  每页显示 10
页码 1/0  |<  <<     >>  >| 
论坛登录信息  
本版热门  
Powered by DiY-Page 5.3.0 © 2005-2009