控制面板中的木马

来源: billsoft 2007-07-02 11:48:27 [] [旧帖] [给我悄悄话] 本文已被阅读: 次 (2302 bytes)
控制面板中的木马

控制面板的各个选项实际上是以后缀名为cpl的文件单独存在的,再加上Windows安装目录中的control.exe和control.ini文件,就构成控制面板的全部组成部分。
每一个cpl文件都对应“控制面板”中的一个选项,例如desk.cpl对应“桌面属性”、inetcpl.cpl对应“Internet属性”等。由于.cpl文件的特殊性,需要使用RunDll32.exe来启动该文件,换句话说,控制面板中的任何一个选项都可以通过RunDll32.exe来调用。
RunDll32.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代表“显示 属性”的“屏幕保护程序”),依此类推。
提示:shell32.dll和Control_RunDLL两者之间只能以“,”分隔,逗号之后不能有空格,如果这里出错的话,不会得到任何提示。
根据上面的原理,我们可以自己写一个无窗口或隐藏窗口的控制面板程序,将其写进注册表的启动项,使之可以自启动。如果您编写的控制面板程序是木马的话,则不仅中木马者无法发现,就连木马克星等专门查杀木马的软件也会不知所措。
具体步骤就是在注册表启动项中加入RunDll32 shell32.dll、Control_RunDll mycpl.cpl,这样,这个mycpl.cpl就会在用户机器启动的时候被调用。(注:如果mycpl.cpl保存在默认目录中,可以不加路径直接调用,否则必须加上路径。)控制面板在执行的时候会加载System子目录中的所有*.cpl文件,所以只要把这个cpl木马放在System(Windows 9x)或System32(Windows 2000/XP)子目录中就可以达到目的。要提醒大家的是,如果mycpl.cpl真是木马的话,那么别人一定会给它改个名字,或替换掉系统中那些不常用的cpl文件,使您疏于察觉。
是不是只有把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文件就不会被加载了。
如果有人利用这种方式进行攻击,防范方法是经常检查注册表的启动项,发现用RunDll32.exe调用的.cpl文件就杀无赦。在将这个注册表键值删除后,还要按键值提供的路径找到这个cpl文件,把它也删除掉。
请您先登陆,再发跟帖!

发现Adblock插件

如要继续浏览
请支持本站 请务必在本站关闭/移除任何Adblock

关闭Adblock后 请点击

请参考如何关闭Adblock/Adblock plus

安装Adblock plus用户请点击浏览器图标
选择“Disable on www.wenxuecity.com”

安装Adblock用户请点击图标
选择“don't run on pages on this domain”