新版本“机器狗” 分析(两个explorer的那个病毒 任务栏变成98经典)
- M- W: I6 f6 Q
现象
& f, y# G9 L& f3 G( W* U2 T“我的电脑”图标异常
$ z9 t0 C0 M* P1 j+ U, N1 y# O8 w* a/ X* |4 ]) o3 F& F
2008-1-22 18:05
8 Y$ M9 S% Y8 }/ }% k* Y/ k
任务栏图标变成类似98系统经典样式,如
$ I$ g+ ~0 _; h$ _+ R9 w& G
- |& f; z2 {- o* L) B# A: ?# B
2008-1-22 18:05
# Q% G+ E# Y, y% ]
/ ^/ N1 s& v" J3 Q- k5 ~4 {+ k对比“机器狗”一类新、老版本病毒的特征:
' y. D) m+ i1 p. R
: q! w7 t, T) `
1:新版本“机器狗”病毒采用VC++ 6.0编写,老版本“机器狗”病毒采用汇编编写。
+ h, u5 G6 U) R8 k
2:新版本“机器狗”病毒采用UPX加壳,老版本“机器狗”病毒采用未知壳。
% I6 D& W r& k' z, D- O7 J. n3:新版本“机器狗”病毒驱动文件很小(1,536 字节),老版本“机器狗”病毒驱动文件很大(6,768 字节)。
- S, E5 L# V( K' O4 Y& H/ O4:新版本“机器狗”病毒安装驱动后没有执行卸载删除操作,老版本“机器狗”病毒安装驱动工作完毕后会卸载删除。
) ^( v' R7 Y* h5 f! e0 }; }9 ^* @5:新版本“机器狗”病毒针对的是系统“conime.exe”、“ctfmon.exe”和“explorer.exe”程序文件,老版本“机器狗”病毒只针对系统“userinit.exe”文件。
) L; ^% a# N4 R% q) ?1 \& t
6:新版本“机器狗”病毒没有对注册表进行操作,老版本“机器狗”病毒有对注册表“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”项进行操作(感觉该操作没必要,因为重新启动系统后,“还原保护程序”系统会将其还原掉)。
) C4 k: w9 }$ f6 S) [4 @7:新版本“机器狗”病毒去到系统dllcache文件夹下调用真实系统文件运行,老版本“机器狗”病毒没有到系统dllcache文件夹下调用真实系统文件运行。
: H- Y$ x: \& {) N8 l
8:老版本“机器狗”病毒采用的是黑色机器小狗图案的图标,新版本机器狗病毒和程序图标不定。
4 x- T \! e! R- I) k
2 Z. b& |+ j" K大概列举出来了上边的几点,经过仔细分析它们的工作原理和编码风格后,可以推测出新版本“机器狗”病毒和老版本“机器狗”病毒不是出自一个人之手。(再叫机器狗这个名字未必恰当)
- c3 b( f9 A: b' j! d }, ]# K2 k; O: @! `+ f2 D3 I
错误纠正:
/ I. Z, j: f' H! U
0 \3 |" L2 r: \0 }; H) h在此要纠正两个技术性的问题,网络上流传的一些关于分析“机器狗”病毒(新、老版本)的部分文章中,有两处表达错误的地方。
0 U1 H# i& V1 J# s8 V- r
( V! _0 \6 A! E! c' S: v第一处是:在那些分析文章中所提到“‘机器狗’病毒会破坏‘还原保护程序’系统,使其还原功能失效”。
# w \) @; ?9 C$ F! E. B4 F4 P( U6 v
其实,从概念的理解上来讲述,那些表达都是错误的,是让人理解不清晰的,会严重误导读者。
/ o! f6 h; Y6 b; P7 C
5 M# j! |9 L4 c4 k
正确的表述应该是这样的:“‘机器狗’病毒并没有破坏‘还原保护程序’系统,也没有使其还原功能失效。只是安装了一个病毒自己的磁盘过滤驱动去操作真实的磁盘I/O端口,向真实的磁盘中执行修改覆盖“C:\windows\explorer.exe”目标文件(文件名是病毒作者定义的,不固定、会变。但肯定的是,真实磁盘中是存在该文件的。并且病毒运行后,一般只会修改覆盖一个真实磁盘中的系统文件,再不会去破坏其它真实磁盘中的文件)操作。虽然‘机器狗’病毒运行后下载了很多其它恶意程序并安装运行,但重新启动计算机后,这些都会被‘还原保护程序’系统还原掉的,只是唯一那个被修改覆盖的真实磁盘文件没有被还原。如果发现重新启动计算机后,系统中依然有一大堆病毒在运行。其实,这些都是系统重新启动后,由那个被修改覆盖后的系统程序全部重新下载回来并安装运行的恶意程序。也就是说,每次重新启动计算机,都要重新下载安装一次所有的其它恶意程序”。
: C- i1 j' C! K/ c
: G8 q D4 l8 h' Z2 W2 a第二处是:在那些分析文章中所提到“‘机器狗’病毒会替换系统中的正常程序‘conime.exe’、‘ctfmon.exe’、‘explorer.exe’或‘userinit.exe’”或“‘机器狗’病毒会感染系统中的正常程序‘conime.exe’、‘ctfmon.exe’、‘explorer.exe’或‘userinit.exe’”。
# ~, W7 k1 `9 Y4 n& X# Z
1 Q, }* ?% J9 p2 j* i7 d! Z. Q) p其实,从概念的理解上来讲述,那些表达都是错误的,是让人理解不清晰的,会严重误导读者。正确的表述应该是这样的:“‘机器狗’病毒并不是替换了系统中的那些正常文件,而是针对那些正常文件在硬盘中所存放的真实物理地址进行以覆盖的方式去写入相应的恶意数据。大家可以找来正常的系统文件‘explorer.exe’、被病毒修改覆盖后的系统文件‘explorer.exe’和病毒释放出来的恶意程序‘tmp281.tmp’。对比它们内部数据代码后会发现,被病毒修改后的系统文件‘explorer.exe’的前部分数据代码和”病毒释放出来的恶意程序‘tmp281.tmp’文件的数据代码是完全相同的,而后边的数据代码依然是正常系统文件‘explorer.exe’后边的数据代码。”。
3 K* z7 `) U' d+ U0 ?' m
" R3 S' w' c5 A7 f1 d# _% c简单的概念解释:
* w" o9 G) A% a% q% T) ^- w6 s引用:
& {$ B* Q! Y) [, w
替换:把原目标程序的数据代码全部清除掉,用新程序的数据代码来代替以前的整个程序。这样,替换后的程序只有新程序的功能。
+ u$ F2 n) N# P# Y7 A( Q8 K6 X# O3 W, A
感染:在不破坏原目标程序数据代码的前提下,向原目标程序的数据代码中追加上新程序的数据代码。这样,感染后的程序既有原目标程序的功能,又有新程序的功能。
5 z8 e2 u3 [/ l, s# C- p# C6 G7 g
' N5 ^& G$ E$ s) w" n4 E8 o覆盖:从原目标程序数据代码的文件头0地址处开始,向后依次执行覆盖写入新程序的数据代码操作,我们这里只假设原目标程序文件远远大于新程序。这样,覆盖后的程序只执行新程序的功能,虽然原目标程序的数据代码还存在一部分,但由于没有被调用,所以不会执行。
8 C- |3 Y0 p _6 A5 \' L1 Z
总结:
% _ n6 j2 a, g! U, } G7 ^* e上边所指的“还原保护程序”为利用磁盘过滤驱动技术编写而成的系统还原保护程序,出名一点的软件有“冰点还原精灵”和“影子系统”等。也就是说,就算用户计算机安装了上边这样的“还原保护程序”,只要是中了“机器狗”一类利用穿“还原保护程序”技术的病毒,就算您重新启动计算机了,但被修改的那个文件“explorer.exe”也是依然不会被还原的,因为病毒的恶意代码已经覆盖进了这个真实的磁盘文件中。
; G, h N; J' J' p8 e( D3 p$ |4 G4 n m0 u- W1 [% k1 a! O" Z
一旦感染了该版本的“机器狗”病毒,它不仅仅可以穿透“还原保护程序”,真实系统也一样会中毒。因为病毒修改覆盖了真实的系统文件“C:\windows\explorer.exe”。所以每次重新启动计算机后,被修改覆盖的系统程序“C:\windows\explorer.exe”它都会在被感染计算机的后台连接网络下载骇客事先定义好的下载列表中的全部恶意程序并自动调用运行。那么如果中该病毒的用户比较多,几万台计算机同时启动,骇客的下载服务器会挂掉吗?呵呵~!!
! o; v+ s0 D- I# ]& X W' e1 o( ~: ^: G5 G
病毒行为:
% N: y& z% N) o- B/ R4 s0、检查explorer.exe、spoolsv.exe是否有ntfs.dll模块,并查找“ssppoooollssvv”字符串(互斥体)
. v. b6 p5 h! M+ M. _: u
如果发现,则退出。
7 o" s3 g0 V8 I5 o- N+ _! ]; d! I
& S# ]0 V1 B1 v% v8 Y2 m/ U1、首先启动一个进程:spoolsv.exe,这是一个打印服务相关的进程。
, x6 {' U; m/ ?' u! n; i即便是禁用系统的打印服务,它仍然可以由机器狗启动。
5 S6 f0 X/ E& H0 X! c从任务管理器可以发现,这是一个当前用户级的权限,很容易区别
" p3 w4 T6 |5 y3 J8 a+ s' W
" l$ T1 P3 ?1 D9 s7 T0 s! H5 s8 C3 ]. K4 }
2、临时文件夹和%SystemRoot%\system32\drivers\释放Ntfs.dll。
' F: [( [$ n' V4 K) G2 l( r x+ y
并尝试注入spoolsv.exe。测试时没有实现。
+ W! ^# d' H5 C# K- T
7 {, y+ L" I. y( {7 j1 J3、病毒会下载27盗号木马,包括大话、梦幻、机战、奇迹、传奇、QQ、QQgame等。
|& S6 Z2 P! K' g! W# c释放路径是:%SystemRoot%\system32\drivers。
% ^- f5 f) r" ]! H0 J4 x( W
2 @* v0 N. v! H7 k
4、加载驱动%SystemRoot%\system32\drivers\puid.sys,并释放iefjsdfas.txt,里面记录一些puid.sys信息。
& j/ i M4 u- c2 p! f+ h
如果iefjsdfas.txt里面的内容和实际的不符合,可能判断为puid.sys是免疫文件夹或无效文件。
! A" h2 t: i G" q* G5 F这时候它可能会删除这个文件,再重新加载。
5 S2 I) @% _; {+ W: [" C
6 Y7 f* \7 C9 X I" v5、记录一个进程快照,每隔30秒执行一次。如果发现以下字符串则结束:
5 t3 _! w! U% m, |+ {6 q V3 j1 jantiarp.exe
. k0 ]2 q' Z" e/ f% z360tray.exe
; R! }+ t2 X$ I" I# X- F
360Safe.exe
8 o! Y3 T3 y4 ^* s; @" K
& R9 d7 [9 a! P. C! T( ~
6、另外那个puid.sys可能会修改userinit.exe达到穿透还原的目的。
% M2 z) d& r' M/ \/ Z O6 r- q1 L+ u. r& I% C& n- k
手动杀毒方法:
% s$ B$ F7 S4 [& ]( q9 ?
1:结束掉被病毒修改覆盖后的“C:\windows\explorer.exe”程序进程,删除该程序文件。(注意,一定要做下一步的操作,不然重启无法进入桌面)
3 d, Q x+ |& C8 j3 ]: S+ A% \2 y6 i1 Q2:也许系统会自动还原回来一个正常的“explorer.exe”桌面程序,如果没有还原的话,我们可以手动把“C:\windows\system32\dllcache\”下的“explorer.exe”文件拷贝到“C:\windows\”下。
) h( P+ s2 @0 G! w+ J4 l" S+ U# d
3:手动卸载掉病毒恶意驱动程序“phy.sys”文件。可以在注册表中找到病毒恶意驱动程序“phy.sys”的启动关联位置然后删除,接着再删除掉“C:\windows\system32\DRIVERS\phy.sys”文件。 我实际试过N次这种方法,针对该病毒决定好使。
+ q' \' w- r$ j& K% x, [2 _. _
4:重新启动计算机后,一切就都会变为正常了。但是该新版的“机器狗”病毒会下载27个(不固定)恶意程序到被感染计算机中安装运行,这些病毒可以查杀,效果很不错。
: B& \0 Y. H1 L6 S. r% k& @: K# {5 P9 T
注意事项:
& k$ ~! h% @/ ^! t' y
1.机器狗(暂且还叫这个名字吧)变种较多,本身是木马下载器,更新很快。
! e0 X, N+ p n8 z
目前发现的变种是破坏userinit.exe和explorer.exe,破坏后,还不会触发系统自带的系统保护(系统保护指%system32%下的系统文件被破坏时,系统会立即自动用%system32%\dllcache下的备份还原)
2 C1 A0 M: H: E4 {6 Q' m因为病毒本身必须要依赖系统正常运行才能达到盗号的目的,dllcache目录下的备份文件一定是有用的,这就给我们修复系统留下机会。修复被破坏的userinit.exe和explorer.exe就可以直接还原备份就可以了。
' ~( B& S# Z# ~9 ~/ g; a
+ [; N% {3 R$ h* o" q
2.以上手工修复方法的具备细节(比如文件名、驱动名)可能很快会修改,请使用金山清理专家2.0协助完成诊断和分析。不要照搬本办法,重要的是掌握解决问题的思路。