本文旨在幫助網絡管理員與安全人員了解 IIS MetaBase 配置文件可能被利用植入後門的技術原理,屬於「知己知彼」類防禦性文檔,嚴禁用於非法入侵活動。
%SystemRoot%\system32\inetsrv\MetaBase.binSchema:系統默認配置,極度敏感,管理工具不提供修改接口。LM:包含 W3SVC(HTTP)、MSFTPSVC(FTP)、SMTPSVC(SMTP)等服務配置。重點關注 LM/W3SVC/ 下的 HTTP 服務配置。| 配置項 | 路徑示例 | 功能 | 後門利用點 |
|---|---|---|---|
| InProcessIsapiApps | LM/W3SVC/InProcessIsapiApps | 進程內運行的 ISAPI DLL 列表,繼承 inetinfo.exe 的 Local System 權限 | 將惡意 ISAPI 路徑加入此列表,實現 System 權限執行 |
| ScriptMaps | 各虛擬目錄下 | 腳本映射,將特定擴展名請求交給指定 ISAPI 處理 | 創建隱藏虛擬目錄映射惡意擴展名,請求不存在的文件即可觸發 |
| CreateProcessAsUser | 目錄級別 | 設為 0 時,該目錄應用程序繼承 inetinfo.exe System 權限 | 配合寫入權限上傳 EXE 並執行 |
| AccessWrite / AccessExecute | 目錄級別 | 控制 WebDAV 寫入與腳本執行權限 | 開啟後可上傳並執行惡意 ISAPI/EXE |
.tom)的 ScriptMaps 映射,指向攻擊者控制的 ISAPI DLL。InProcessIsapiApps 列表。.tom 文件(文件無需真實存在),即可在服務器上以 Local System 權限執行攻擊者代碼。在 MetaBase 中創建鍵名包含 0x08(Backspace)字符,導致 adsutil.vbs enum 輸出時視覺上覆蓋斜槿,極難被發現:
# adsutil.vbs enum /p /w3svc/1/root [/w3svc/1/root/_vti_bin] [/w3svc/1/root] ← 實際為 /w3svc/1/root + 0x08 + evildir,顯示被「刪除」一字符
使用 _vti_script、_vti_bin 等 FrontPage 擴展常用鍵名,且不設置 KeyType,在「Internet 服務管理器」中不可見。
系統默認包含 \WINNT\System32\msw3prt.dll(.printer 映射),可替換為惡意 DLL 路徑,減少新增條目暴露風險。
利用 HTTP 請求注入 0x0D 0x0A(CRLF)偽造訪問日志,掩蓋真實攻擊路徑。
' 獲取現有列表
current = GetObject("IIS://localhost/W3SVC/InProcessIsapiApps")
' 添加惡意路徑
current.Add "C:\WINNT\System32\inetsrv\evil.dll"
' 寫回
PutObject current
手工使用 adsutil.vbs 需注意:只能設置不能修改,必須保留原有值並追加新值,條目間以空格分隔。
編寫特殊 ISAPI 註冊為 .asp 解析器:正常請求轉發給原 asp.dll,僅在收到特定 POST 觸發條件時啟動後門代碼。日志中僅顯示正常 ASP 請求,審計極難發現。
賦予虛擬目錄 AccessWrite + AccessExecute 權限,需要時上傳 ISAPI 執行,用畢刪除。若上傳 EXE 並設置 CreateProcessAsUser=0 同樣可獲 System 權限。但權限變更在管理器中可見,隱蔽性較差。
adsutil.vbs enum /p /w3svc > metabase_backup.txt),對比異常新增鍵值。InProcessIsapiApps 列表變更,設置文件完整性監控(FIM)。ScriptMaps、AccessWrite、AccessExecute 權限,遵循最小權限原則。Log Parser 分析 httperr.log 異常請求,關聯 CRLF 注入嘗試。IIS MetaBase 靈活的配置結構為攻擊者提供了極具隱蔽性的後門植入面。管理員必須從配置審計、權限最小化、日志異常分析、文件完整性監控等多維度建立纵深防禦體系。