ASP木马的原理和基本防范方法
网络整理 - 09-01
ASP木马猖獗,基于ASP的网站时时处于危险之中,要让网站的安全随时得到保障,需要我们的服务器管理员要做些什么呢,如何防范ASP木马呢?要防范ASP木马,那么我们就需要知道它的运行原理和机制,下面我们看一段代码:Set oscript = Server.CreateObject("Wscript.SHELL") "建立了一个名为oscript的Wscript.SHELL对象,用于命令的执行"
Set oscriptNet = Server.CreateObject("Wscript.NETWORK")
Set oFileSys = Server.CreateObject("scripting.FileSystemObject")
上面三行代码创建了Wscript.SHELL、Wscript.NETWORK、scripting.FileSystemObject三个对象我们可以看出asp木马的运行原理就是通过调用组件对象等完成的。
通过分析一些asp木马,我们看出主要是通过3个组件运行的,第一个是我们都知道的FSO, 需要FSO支持也就是"scripting.FileSystemObject"项的支持,那么有人会说,是不是删除这个组件就可以了呀 ,不可以的,因为现在很多程序都是要用到FSO这个组件的,所以是觉得不能限制的,不然正常的程序也运行不了,现在网上有很多教程,告诉别人删除或限制使用,这些方法都很极端,我不推荐大家使用,我们再说另外几个组件"shell.application"、"Wscript.SHELL"等危险组件 ,一般的木马都是要使用这几个组件的 ,即使你把fso组件限制的话,你不去限制别的组件的的话,一样不能起到效果的,对于fso组件之外的其他的几个组件,我们平时是不太用的,所以我们可以直接在注册表中的HKEY_CLASSES_ROOT中找到
找到"shell.application"、"Wscript.SHELL"等危险的脚本对象(因为它们都是用于创建脚本命令通道的)进行改名或删除,也就是限制系统对“脚本SHELL”的创建,ASP木马也就成为无本之木、无米之炊,运行不起来了。如果我们自己要使用的话,那么我们就不要删除直接改下名字,如果是改名,要改得复杂一点,不要让别人猜到了,我们在要用的程序里面直接把调用的名字改成我们刚才修改的名字就可以了。
对组件进行限制之后,我们还应该对服务器的权限进行严格的设置,这里我就不说了,由于篇幅问题,等下不知道要写多久了,大家可以参考网上的一些安全权限设置, 我们对权限和组件等等设置完了之后,基本上就能防止asp木马的危害了。
另外有一点应该注意,如果确实发现木马了,查杀完之后,应该将具有管理权限的各类帐号都进行修改。包括论坛的帐号、数据库帐号以及服务器操作系统帐号、FTP 帐号等,如果我们做到了这个几点话,我们的服务器基本上是安全了,呵呵,为什么说是基本的呢,因为这个世界上根本就没有安全的服务器了,只不过我们刚才说到的设置只是能够防范大部分asp木马的的侵害,不排除一些别的因素,比如说提限。说白了防范asp木马就是要限制组件,设置严格的权限和保证asp程序的安全
我们下面说下怎么样查杀asp木马了,我根据自己的一些经验说几种方法
1. 时间比较法
按时间顺序找到最近被改动的asp文件 ,打开看下,是不是木马呢,什么,看不懂代码, 那你就把不是你自己放的asp文件,名字看一眼就看的出的。比如说diy.ap.dm6.asp,angel.asp.shell.asp什么的文件,可疑的asp文件不是你自己创建的删除,或直接访问下看下是不是木马就可以了
2. 查找关键字,asp木马都是有关键字的,也就像病毒的特征码,我们用windows自带的搜索功能就能查找到 ,查找包含内容为关键字的所有文件就可以了,找到以后看下就可以了,有时候能查找到一些asp的大文件,如果是虚拟主机的话,一般是数据库文件改成asp的了,如果是一句话木马的关键字就小心了,如果是大型木马的关键字,咱们访问一下看看,我不赞成把数据库改成asp的,至于为什么,大家都知道吧。
我整理了一些特征码,现在给大家
gxgl
lcx
<script RUNAT=SERVER LANGUAGE=JAVAscript>eval(Request.form(’#’)+’’)</script>
输入马的内容
session("b")
request("kker")
非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序
传至服务器已有虚拟目录
警告:对非法使用此程序可能带来的任何不良后果责任自负!请勿用于非法用途!!!
<%execute request("value")%>
ccopus
<%execute(request("#"))%>
<script language="vbscript" runat=server>if reques(#")<>"" then execute(request("#"))</script>
("cmd.exe /c "&request.form("cmd")).
("cmd.exe /c "&request("cmd")).
("cmd.exe /c "&request("c")).
这些都是关键字了,全部是我从木马里面一个一个提取出来的,如果有这些特征的话,一般都是木马 ,不过大家最好打开看一下,不排除特殊情况。如果你的网站里,有类似代码:<iframe src="***.com" ></iframe> 估计可能是被加入的恶意连接,或着被挂马了,好狠毒,那么请在关键词中搜索iframe src,
3. 大家也可以用明小子的asp木马扫描的这个小工具拉,把我的关键字放进去,扫描一下,挺方便的,呵呵
4. 在网站结构清楚的情况下,浏览目录法能快速确定木马,在不该出现的地方出现的文件,管他是不是木马都可以删,比如说dvbbs下的 upfile这些文件夹里是不应该出现asp文件的,我们一发现就删除就是了 ,不过要求管理员对自己的网站目录结构熟
5. 有一种方法可以试下,就是做好备份,一旦发现有人入侵,马上还原,这样什么木马也不怕了,不过要注意的是,把保证备份文件是安全的 ,要是备份文件里也有木马,让就没搞一样的
6. 用asp木马追捕的文件,查杀,网上有下载的,另外我们常用的杀毒软件也有这样的功能,我推荐大家采用卡巴斯机,效果非常好,几乎能查杀如今所有流行的asp木马
上面只是简单的介绍了一下,asp木马的一些查杀方法,当然这些只是亡养补牢了,我们最好对服务器系统进行严格的权限限制,让黑客即使是上传了木马也没有什么用,这里权限的限制我就不多说了等下不知道要写多少,网上的资料也很全面的,大家可以自己去查找西。而且现在说来说去,asp木马的隐藏方法确实是很高明,asp木马代码加密,图片合并,文件时间修改,还有要命的系统漏洞利用等等这对于要百分之百查杀asp木马的查杀,几乎不可能,我们只有堵住木马上传的源头 ,asp程序尽量用最新版本,网站中的上传途径自己应该特别注意,对于不需要脚本运行的文件夹在iis里面设置,执行许可为无,还有就是管理员要求有良好的安全意识,不然的话,谈不上安全了,并且我们设置了权限之后, 传了也是白传。