|
知马识马不养马(二)' g) f3 S; d R' S
# @- l9 v2 Y, s+ n W: E2 X4 Y
/ I- V# q. t$ A0 M8 d* z
控制面板中的木马
: @) M6 P/ O& L9 a. e" f+ U" H) [0 g! j" Z3 _& C. J5 ^ A/ d
控制面板的各个选项实际上是以后缀名为cpl的文件单独存在的,再加上Windows安装目录中的control.exe和control.ini文件,就构成控制面板的全部组成部分。
9 a& ]) F& x5 ` U每一个cpl文件都对应“控制面板”中的一个选项,例如desk.cpl对应“桌面属性”、inetcpl.cpl对应“Internet属性”等。由于.cpl文件的特殊性,需要使用RunDll32.exe来启动该文件,换句话说,控制面板中的任何一个选项都可以通过RunDll32.exe来调用。
$ k8 _) ~$ F$ W4 ^/ PRunDll32.exe的一项强大功能就是对控制面板的管理,用它调用控制面板程序的格式如下:在“开始”菜单的“运行”中或命令行下输入“RunDll32 shell32.dll,Control_RunDLL *.cpl,,X”。其中,shell32.dll为被调用的DLL文件,意思为调用shell32.dll中的Control_RunDLL来打开desk.cpl文件;“*.cpl”为您想调用的cpl文件的路径和文件名;而“X”为对应cpl文件的页数,从0开始,0为第一页(如desk.cpl,,0代表“显示 属性”的“背景”),1为第二页(如desk.cpl,,1代表“显示 属性”的“屏幕保护程序”),依此类推。
" W9 K( ^0 I1 u提示:shell32.dll和Control_RunDLL两者之间只能以“,”分隔,逗号之后不能有空格,如果这里出错的话,不会得到任何提示。
* e Z7 h+ h+ K- j# s! O- w* T根据上面的原理,我们可以自己写一个无窗口或隐藏窗口的控制面板程序,将其写进注册表的启动项,使之可以自启动。如果您编写的控制面板程序是木马的话,则不仅中木马者无法发现,就连木马克星等专门查杀木马的软件也会不知所措。
3 S0 N( X" D2 [; S* K+ W" M具体步骤就是在注册表启动项中加入RunDll32 shell32.dll、Control_RunDll mycpl.cpl,这样,这个mycpl.cpl就会在用户机器启动的时候被调用。(注:如果mycpl.cpl保存在默认目录中,可以不加路径直接调用,否则必须加上路径。)控制面板在执行的时候会加载System子目录中的所有*.cpl文件,所以只要把这个cpl木马放在System(Windows 9x)或System32(Windows 2000/XP)子目录中就可以达到目的。要提醒大家的是,如果mycpl.cpl真是木马的话,那么别人一定会给它改个名字,或替换掉系统中那些不常用的cpl文件,使您疏于察觉。
" [. |# |1 D5 _# ~# K是不是只有把cpl文件放到System(Windows 9x)或System32(Windows 2000/XP)子目录下才会被加载呢?答案是否定的。如果您的控制面板程序不在Windows目录,假设在D:ok下,想让它在控制面板里显示,只需编辑control.ini文件,在[MMCPL]小节里面加入“mycpl.cpl=D:okmycpl.cpl”就可以了。如果不想让cpl文件显示在控制面板中,依然要从control.ini文件入手,只需在[don't load]小节中加入“mycpl.cpl=no”,这个mycpl.cpl文件就不会被加载了。
0 _2 W- N! ?. M8 ]如果有人利用这种方式进行攻击,防范方法是经常检查注册表的启动项,发现用RunDll32.exe调用的.cpl文件就杀无赦。在将这个注册表键值删除后,还要按键值提供的路径找到这个cpl文件,把它也删除掉。9 g. h& V# [" z/ I
+ P. l' w, C& S3 L0 U
可怕的超长目录中隐藏的木马
+ f2 t1 ~$ o* `! M" ]3 ]/ H' y! p* w: S* V( K) ^8 c! \/ N- N
给我们下木马的人要想在我们的电脑中隐藏木马文件,会绞尽脑汁,利用Windows系统建立超长目录然后在其中隐藏木马就是手段之一。, o8 e; {; u \" `( ~; M6 s" r
我们可以做这样一个试验:打开“资源管理器”,在任意一个磁盘(假设是E盘)下建立一个目录,假设为good,然后进入此目录,在下面再建立一个子目录,假设为123,然后在123子目录下建立一个子目录test,现在test这个目录的绝对路径就是:E:goodS est。接下来把您要隐藏的目录和文件都拷贝test子目录下。然后点击“向上”按钮,来到123子目录,对着它点击鼠标右键,在弹出菜单中选择“重命名”,把这个123子目录改名为“1111……1111”,能写多长就写多长。接下来点击“向上”按钮,来到good目录,用同样的办法把它也重命名,假设改名为goodluck123,现在test子目录的绝对路径就是E:goodluck123I1……1111 est。这时,当您想访问该目录时,会出现一个提示:无法访问此文件夹,路径太长.% l: \) s: ?6 g& C5 a( Q
而且,这个目录在视窗界面下无法看到里面的内容,在DOS下同样如此,所以,该目录和里面的文件就被巧妙地隐藏起来了。谁能想到里面会有个test子目录呢,谁能想到test子目录下还有文件和文件夹呢?木马文件就这样巧妙地隐藏起来了。
# q# m" L n* R: p: C+ A6 ?5 V
1 \! t7 J3 Y5 m0 v$ h- J6 Z5 m( n为什么会这样呢?其实,这只是利用了Windows系统的一个小Bug,即Windows目录的绝对路径不能超过254个字符,如果您建立的目录的绝对路径超过254个字符的话,系统是看不到的。反过来讲,系统也不允许您直接建立一个绝对路径长度超过254个字符的目录,而我们前面所做的就是迂回地建立了一个目录,其绝对路径超过了254个字符,所以别人就无法访问里面包含的子目录和文件了,变相地把目录和文件隐藏了起来。更妙的是,整个目录根本无法直接删除,进行删除操作时会弹出一个窗口,提示我们“无法删除*.*:找不到文件。请确定指定的路径及文件名是否正确”,在DOS下或是使用工具软件Windows Commander等也同样无法删除该目录。2 O u3 S1 q7 E. K; E; S
7 o# L8 P# C0 I
让我们再用其他软件来检视一下利用这种方法来隐藏木马的效果如何。大家知道,一般的隐藏文件或目录的方法,如特殊空格法、给文件夹设定一个空白图标法、修改注册表隐藏目录法等,都会在文件管理软件Windows Commander、看图软件ACDSee或压缩软件WinZIP或WinRAR中显露原形。而用本方法隐藏的目录不会被显示在上述软件中,它们只能看到受保护文件夹的上一层目录,而无法看到里面隐藏的内容。! }& x- d4 p# C0 ?% g" d! n! n8 f k
1 O6 y) f7 [' p
4 i9 E& ?* u" M" b. X7 N转自爱好者论坛(IT、电脑知识交流平台;《电脑爱好者》官方论坛。)
" P' p5 B" n! ~' W2 _/ N6 E' u1 I* y |
|