整理 10 個 IIS 管理員最常遇到的安全疑難雜症,提供具體指令與設定步驟,可直接套用於生產環境。
虛擬目錄屬性 → 「應用程式保護」設為 低 (IIS 處理序)。
⚠ 極度危險:一旦 ASP 被植入木馬,駭客直接取得 SYSTEM 權限。生產環境嚴禁使用,僅供特殊測試環境參考。
cacls %systemroot%\system32\scrrun.dll /e /d guests regsvr32 /u /s scrrun.dll
cacls %systemroot%\system32\shell32.dll /e /d guests regsvr32 /u /s shell32.dll
原理: 移除 Guests 群組讀取/執行權限 + 反註冊元件,雙重封殺。若網站確需上傳功能,請改用獨立元件或 .NET 元件替代。
sce10chs.exe (Script Encoder) 安裝。screnc.exe (命令列工具)。screnc /l vbscript source.asp destination.aspdestination.asp 中 `<% ... %>` 內容變為亂碼,瀏覽器正常執行。限制: 無法加密中文註解/字串;僅支援 VBScript;安全性屬「混淆」非真加密,可被逆向還原。
iislockd.exe /q /c /t:c:\urlscan
無安裝介面,直接解壓核心檔案至指定目錄,適合自動化部署。
cscript c:\inetpub\adminscripts\adsutil.vbs set w3svc/UseHostName True iisreset
設定後 IIS 回應標頭改用主機名稱而非內網 IP,阻斷資訊洩露。
cscript c:\inetpub\adminscripts\synciwam.vbs -v
同步 IWAM_機器名 帳號在 COM+ 應用程式中的密碼,修復 90% 以上的 500 錯誤。
匯入以下登錄檔 (或手動建立鍵值):
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] "SynAttackProtect"=dword:00000002 "TcpMaxHalfOpen"=dword:00000064 "TcpMaxHalfOpenRetried"=dword:00000050 "TcpMaxConnectResponseRetransmissions"=dword:00000001 "TcpMaxDataRetransmissions"=dword:00000003 "TCPMaxPortsExhausted"=dword:00000005 "DisableIPSourceRouting"=dword:00000002 "TcpTimedWaitDelay"=dword:0000001e
關鍵值說明:
SynAttackProtect=2:啟用高強度 SYN 攻擊防護 (Win2000 必須設 1,設 2 可能藍屏)
TcpMaxHalfOpen=100:半開連線上限
TcpTimedWaitDelay=30:縮短 TIME_WAIT 至 30 秒,加速連接埠回收
安裝 URLScan (見第 4 點),在 urlscan.ini 中設定 DenyExtensions=.mdb,從根源阻擋靜態檔案洩露。
核心原則:預設拒絕,按需授權。關鍵目錄權限建議:
| 目錄 | 帳號 | 權限 | 繼承 |
|---|---|---|---|
| 整顆磁碟 | SYSTEM, Administrator | 完全控制 | ✓ |
| \Program Files\Common Files | Everyone | 讀取/執行, 列出資料夾 | ✓ |
| \Inetpub\wwwroot | IUSR_機器名 | 讀取/執行, 列出資料夾, 讀取 | ✓ |
| \Winnt\System32 | 除 inetsrv、centsrv 外所有子目錄 | 移除繼承 → 複製 | ✗ |
| \Winnt | 除特定系統目錄外 | 移除繼承 → 複製 | ✗ |
| \Winnt | Everyone | 讀取/執行, 列出資料夾, 讀取 | ✓ |
| \Winnt\Temp | Everyone | 修改 | ✓ |
⚠ 操作前請完整備份系統,錯誤權限可能導致系統無法開機。
iisreset /stop%SYSTEMROOT%\system32\dllcache 下同名檔案W3SVC.DLL (Web)、FTPSVC2.DLL (FTP)、SMTPSVC.DLL (SMTP)Microsoft-IIS/5.0 替換為任意字串 (長度需一致)iisreset /start替代方案: URLScan 可直接設定 RemoveServerHeader=1,無需修改系統檔案,更安全易維護。
IIS 安全無終點,唯有「最小權限、及時修補、日誌審計、纏深防禦」四大原則貫徹始終。上述 10 點 FAQ 涵蓋權限、元件、網路、應用層面,建議逐項落實並定期複盤。