服务器 频道

资深网管教你IIS下网页木马防范手段



    【IT168 专稿】如今,Web安全越来越受到人们的重视,而黑客们为了获得主机的长久控制权,一般都会在入侵后留下Web Shell,也就是我们常说的网页木马,它一般是一段恶意代码或文件。这样即使网络管理员日后弥补了服务器上的漏洞,黑客也会通过留下的Web shell后门再次入侵服务器的。

    由于网页木马最常见的就是ASP木马,所以笔者就简单的说说如何防范基于IIS的ASP网页木马。

    大部分ASP木马都是基于FileSystemObject和shell.application两个组件来完成所有控制操作的,它们均具有远程删除、新建、修改文件或文件夹的功能,具有比较大的破坏力。作为网络管理员来说一定要将网页木马的遗留场所进行封存,本文将逐步说明如何禁掉上面提到的两个组件,并将这些组件设置为只容许管理者一人使用。


方法一:注销相关组件

    当我们的程序基本用不上FileSystemObject和shell.application组件的功能时,可以将它们注销掉,以免带来不必要的灾难。方法如下:

    第一步:通过任务栏的“开始->运行->输入CMD”进入命令行模式。
    第二步:在命令提示符下输入“regsvr32.exe scrrun.dll/u/s”,这样,就能够彻底地将FileSystemObject组件卸掉了。(如图1)

图1

    第三步:相应的按照上面的方法shell.application组件也可以在命令提示符下输入“regsvr32.exe shell32.dll/u/s”将其卸载掉。

    小提示:如果日后我们希望继续使用这两个组件的话,可以在命令行模式中使用“regsvr32.exe shell32.dll/i/s”和 “regsvr32.exe scrrun.dll/i/s”命令将它们重新安装即可。其中:“regsvr32.exe”是注册对象链接和嵌入(OLE)控件的命令,/u 是注册参数,/s是寂静模式参数,/i 为安装参数。

    点评——这种方法虽然比较有效但在实际使用中会带来或多或少的不方便,每次使用这两个组件都要重新注册。


方法二:修改Progid值

    当某些程序需要使用这两个组件时该怎么办呢?其实我们可以通过注册表修改组件的Progid值来实现。

    第一步:执行“开始”->“运行”->输入regedit后回车进入注册表编辑器。
    第二步:在打开的注册表编辑器中找到“HKEY_CLASSES_ROOT\Scrigting. FileSystemObject”项。(如图2)

图2 点击看大图

    第三步:将其中的“Scripting.FileSystemObject” 改为“Scripting.FileSystemObjectkillfso”即可。

    小提示:其实细心的读者就会发现修改前后的差别了,只是后面多出了“killfso”几个字母,当然这几个字母管理员可以随便改,但需要记住这个名字。

    第四步:这样我们在调用该组件的时候就需要写成:Set对象名=Server.CreateObject(“Progid”)。其中的Progid=Scripting.FileSystemObjectkillfso,也就是写成我们改过后的字符串。

    第五步:我们再按照上面的方法找到“HKEY_CLASSES_ROOT\Shell.Application”, 将“Shell.Application”改为您自己想要的字符串即可。调用时同样按照第四步的命令调用。


方法三:修改CLSID值

    这个道理同上面讲的一样,就是通过注册表来修改CLSID值实现。我们只要找到“HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID”和“HKEY_CLASSES_ROOT\Shell.Application\CLSID”这2个组件的CLSID值,并将它们修改为您喜欢的,然后在调用时注明即可。(如图3)

图3 点击看大图

    小提示:需要注意的是,调用CLSID值要写成:
<object  runat=server  id=fsl  scope=page  classid=“clsid:CLSID值”></object>其中默认情况下的CLSID值为“0D43FE01-F093-11CF-8940-00A0C9054228”。

    另外,我们还要注意Adodb.stream组件。这个组件主要是用来上传/下载文件的,虽然没有上面两个组件那么强大,但与其他组件一起使用时,还是有一定的危险的,ASP木马经常使用这些高权限的组件进行攻击,所以需要我们对这些组件有所防范。


四:清除ASP木马

    早期的ASP木马是能被杀病毒软件正常检测并查杀的,不过随着ASP木马的发展目前很多都处与隐藏状态,一般的杀毒软件已经难已将他们查杀了,这就需要靠我们手工清除。

    第一步:一般黑客都会通过更改ASP脚本的启动权限使ASP木马能够以最高权限运行,这就给我们提供了一个查找ASP木马的捷径。我们只要在命令提示符下输入“cd c:\inetpub\adminscripts”, 然后执行“adsutil.vbs get w3svc/inprocessisapiapps”,就能够得到以system权限启动的DLL文件。而在默认情况下,asp.dll是不会出现在其中的,如果出现了asp.dll,那么服务器必定感染了ASP木马。

    第二步:根据自己网站的结构从根据目录开始搜索ASP文件,这点需要网络管理员清楚地知道网站文件的分布情况,当在与网页存放目录不相干的目录中搜索到ASP文件时,这个文件肯定就是ASP木马了。

    第三步:在“Internet 服务管理器”里面去掉一些用不着的映射(比如*.cer, *.cdx, *.htr 之类的映射),然后在网站跟目录开始搜索*.cer, *.cdx, *.htr 文件,将所有搜索出来的文件都彻底删除掉。

    第四步:我们再看看正常文件有没有被写入恶意代码,从网站最初的目录(根目录)开始,在搜索对话框里输入“* asp”,在包含文字中输入“VBS cript.Encode”或“iframe src”之类的关键字后开始搜索,搜索到ASP文件后将相应代码清除掉即可。

    第五步:如果检测到了ASP木马,那么在清理完木马之后,就需要尽快做亡羊补牢的工作了。

    小提示:没有经验的网络管理员也可以使用一些“ASP 木马追捕”之类的程序或软件来帮助你清除木马病毒。不过现在已经有些黑客通过再次修改ASP木马,致使“ASP 木马追捕”等软件也无法查杀了,所以我们还是应该彻底掌握检测和清除ASP木马的技术。


总结:

    ASP木马诞生的时间比较长,危害也很大。在服务器提供了WWW服务的情况下一定要定期严格全面的扫描,发现有ASP木马的迹象立即清除,为我们服务器提供一个安全运行的环境。


0
相关文章