背景
Windows NT 4.0 / 2000 因市場佔有率高、架構缺陷早期暴露,成為早期駭客首選目標。雖已停止支援,但理解其漏洞原理有助於掌握漏洞挖掘與防禦演進邏輯。
五大經典漏洞詳解
1. Unicode 目錄遍歷漏洞 (MS00-078 / CVE-2000-0884)
- 影響: IIS 4.0/5.0 (中文/繁體版特別嚴重)。
- 原理: IIS 解碼 UTF-8 編碼時存在邏輯缺陷,攻擊者構造雙重編碼或非標準 Unicode 序列 (如
%c0%af 代表 /, %c1%9c 代表 \),繞過路徑檢查,訪問 Web 根目錄外任意文件/執行命令。
- 危害: 在 IUSR_machinename 權限下 (默認屬於 Everyone/Users) 讀/寫/執行同邏輯磁盤任意文件,可獲取系統信息、植入後門、格式化硬盤。
- 檢測: IE 訪問
https://target/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir 若返回目錄列表即存在漏洞。
- 修補: 安裝 MS00-078 補丁,升級 IIS 至 5.0 SP2+,配置 URLScan 過濾可疑編碼。
2. .ida/.idq ISAPI 緩衝區溢出 (MS01-033 / Code Red 蠕蟲利用)
- 組件: idq.dll (索引服務擴展) 處理 .ida/.idq 請求時,未校驗 URL 長度導致棧溢出。
- 危害: 遠程代碼執行 (SYSTEM 權限),Code Red 蠕蟲由此在 2001 年全球感染 35 萬+ 主機。
- 修補: 安裝補丁、卸載索引服務或映射 .ida/.idq 到 404 處理程序。
3. IIS CGI 文件名解碼錯誤 (MS01-026)
- 原理: IIS 處理 CGI 請求時,對文件名解碼邏輯缺陷,允許通過特殊編碼繞過執行權限檢查,執行任意可執行文件。
- 修補: 安裝補丁、禁用不必要的 CGI 擴展映射 (.exe, .pl 等)。
4. MSADCS RDS 數據工廠漏洞 (MS99-025 / CVE-1999-1011)
- 組件: RDS (Remote Data Service) / msadcs.dll,允許未經授權的用戶通過 ADO 執行任意 SQL 命令 (包括 xp_cmdshell)。
- 危害: 直接獲取數據庫權限,進而控制操作系統。
- 修補: 禁用 RDS、移除 msadcs.dll、安裝 MDAC 2.5+ 並應用補丁、限制數據庫權限 (禁止 xp_cmdshell)。
5. FrontPage Server Extensions (FPSE) & .Printer 漏洞
- FPSE: 多個版本存在目錄遍歷、緩衝區溢出、權限提升漏洞 (MS00-057, MS01-035, MS03-051 等)。
- .Printer (MS01-023): msw3prt.dll 處理 .printer ISAPI 請求時緩衝區溢出,可遠程執行代碼。
- 修補: 卸載 FPSE (若不使用)、安裝對應補丁、URLScan 過濾 .printer 請求。
統一防禦策略
- 最小化安裝: 僅安裝必要服務 (僅 WWW 服務),移除 FTP、SMTP、NNTP、FPSE、索引服務、RDS 等。
- 補丁管理: 部署 WSUS/SMS 自動分發所有關鍵補丁 (SP4 + 後續 Rollup)。
- URLScan / IIS Lockdown: 微軟免費工具,限制 HTTP 動詞、擴展名、長度、編碼,有效緩解 0-day。
- 權限收斂: 匿名用戶僅讀 Web 目錄,禁用寫/執行;應用程序池隔離 (IIS 6.0+)。
- 網絡層隔離: 防火牆僅開放 80/443,管理端口 (RDP 3389, SSH 22) 僅限管理網段訪問。
這些經典漏洞雖已成歷史,但「輸入驗證缺失、邊界檢查不足、最小權限原則違背」的核心教訓在現代 Web 安全 (SQLi, XSS, RCE, SSRF) 中依然普遍存在。