对Autorun.inf类病毒(U盘病毒)的攻防经验总结
上一篇 / 下一篇 2007-05-07 09:39:57 / 个人分类:技术探索
&I5X,r(D2L0
H kP zJ&f.J0
Windows 95以后的系统都有一个“自动运行”的功能。通过在卷插入时读取磁盘卷上的Autorun.inf文件来获得Explorer中卷的自定义图标和对卷图标的上下文菜单进行修改,并对某些媒体自动运行Autorun.inf中定义的可执行文件。05年以后,随着各种可移动存储设备的普及,国内有些黑客制作了盗取U盘内容并将自身复制到U盘利用Autorun.inf传播的病毒。著名的伪ravmon、copy+host、sxs、Viking、熊猫烧香等著名病毒都有这种传播方式。它们有时是根目录下的神秘幽灵,有时是出现在不应该出现的地方的回收站,总之,它们是系统安全的严重威胁。
Q4V!y:EEV\a0
1Pv5{2Ad
vfjX0Autorun.inf被病毒利用一般有4种方式爱好者博墅/a
k/q#N^1`2\K
6fV
~Ic
\j6a1k01.爱好者博墅7V3Q$Wq!b;};gB#zN/x
OPEN=filename.exe 爱好者博墅K;ps~(GR A6|a
自动运行。但是对于很多XPSP2用户和Vista用户,Autorun已经变成了AutoPlay,不会自动运行它,会弹出窗口说要你干什么。
6DY*t?FPm0
1u*y8LD2wn02.
?T2?5RIn0shellAutocommand=filename.exe
`vyw_D0shell=Auto爱好者博墅
Nt'NA[
修改上下文菜单。把默认项改为病毒的启动项。但此时只要用户在图标上点击右键,马上发现破绽。精明点的病毒会改默认项的名字,但如果你在非中文的系统下发现右键菜单里多出了乱码或者中文,你会认为是什么呢?
Qj&kZ0E
V8P9q0爱好者博墅vI|1|x
3.爱好者博墅Qz(W {5I'Y
shellexecute=filename.exe
'yg*GwYl/je3J0ShellExecute=....只要调用ShellExecuteA/W函数试图打开U盘根目录,病毒就会自动运行。这种是对付那些用Win+R输盘符开盘的人。
+t4pHU \y0
ur1Y%w$N'^04.
[s/p-?E%u7C0shellopen=打开(&O)
-b
s)K*i*DDkd5Iz2I"C0shellopenCommand=filename.EXE爱好者博墅
mTJY'?
shellopenDefault=1爱好者博墅E4L-RZ1V
shellexplore=资源管理器(&X)爱好者博墅fxFPD| V2n&n5F
!ne7h9f GbZ#d m0这种迷惑性较大,是新出现的一种形式。右键菜单一眼也看不出问题,但是在非中文的系统下,原形毕露。突然出现的乱码、中文当然难逃法眼。爱好者博墅nOw5@
K)hH
面对这种危险,尤其是第四种,仅仅依靠Explorer本身,已经很难判断可移动磁盘是否已经中毒。而在这种情况下,一部分人也根据自己的经验,做出了“免疫”工具。爱好者博墅1V[P'u)R6O/_Q`
免疫的办法(对可移动磁盘和硬盘)爱好者博墅 \e,|#B @
X+i@A)yA
P-i01、同名目录爱好者博墅%G&n"ad/[;M1{
爱好者博墅E#Nn*m
t+jZ
目录在Windows下是一种特殊的文件,而两个同一目录下的文件不能同名。于是,新建一个目录“autorun.inf"在可移动磁盘的根目录,可以防止早期未考虑这种情况存在的病毒创建autorun.inf,减少传播成功的概率。爱好者博墅(Je8jV5U"~
'Q7Fn"v*_.h;t02、autorun.inf下的非法文件名目录爱好者博墅Cm"^e7S8f
爱好者博墅6o CpL;DJ
mg
有些病毒加入了容错处理代码,在生成autorun.inf之前先试图删除autorun.inf目录。爱好者博墅*j o[p#zq
在Windows NT Win32子系统下,诸如"filename."这样的目录名是允许存在的,但是为了保持和DOS/Win9x的8.3文件系统的兼容性(.后为空非法),直接调用标准Win32 API中的目录查询函数是无法查询这类目录中的内容的,会返回错误。但是,删除目录必须要逐级删除其下的整个树形结构,因此必须查询其下每个子目录的内容。因此,在“autorun.inf"目录建一个此类特殊目录,方法如"MD x:autorun.infyksoft..",可以防止autorun.inf目录轻易被删除。类似的还有利用Native API创建使用DOS保留名的目录(如con、lpt1、prn等)也能达到相似的目的。爱好者博墅"?'O;Zty%eA3~{2c
~
爱好者博墅1Y,Q'xg4[Q
3、NTFS权限控制爱好者博墅0P{ A[6`(X^
c|BE4~ Ma5{0病毒制造者也是黑客,知道Windows的这几个可算是Bug的功能。他们可以做一个程序,扫描目录时发现某目录名最后一个字节为'.'则通过访问"dirfullname.."、或者通过利用Windows NT的Native API中的文件系统函数直接插手,删除该特殊目录。