虛擬主機環境下,IIS安全直接關係數百用戶業務安危。本文針對滲透測試與應急響應中的高頻場景,提供十大加固技術的具體實施命令與原理解析,助力構建纵深防禦體系。
誤區: 將虛擬目錄「應用程序保護」設為「低(IIS進程內)」會使ASP運行在IWAM_用戶上下文,權限較高。
正確做法: 設置為「高(隔離)」,每個應用程序獨立運行於dllhost.exe進程,配合應用程序池身份使用最小權限帳號(如Network Service或自定義低權限帳號)。
cacls %systemroot%\system32\scrrun.dll /e /d guests regsvr32 scrrun.dll /u /s
cacls %systemroot%\system32\shell32.dll /e /d guests regsvr32 shell32.dll /u /s
原理: 通過ACL拒絕guests組訪問核心組件,並註銷組件使其不可用。副作用: 合法應用若依賴這些組件將失效,需評估業務影響或改用Scripting.FileSystemObject替代方案。
sce10chs.exe 安裝,生成 screnc.exescrenc -l vbscript source.asp destination.asp<script language="VBScript.Encode"> 區塊為加密密文限制: 僅支持VBScript,不支持中文編碼,安全性屬「混淆」級別,不可視為絕對保護。
iislockd.exe /q /c /t:c:\urlscan
解壓出獨立 UrlScan 目錄,包含 UrlScan.dll、UrlScan.ini,可單獨部署至無Lockdown環境。
cscript c:\inetpub\adminscripts\adsutil.vbs set w3svc/UseHostName True iisreset
啟用後,響應頭 Content-Location 將顯示主機名而非內網IP。
cscript c:\inetpub\adminscripts\synciwam.vbs -v
同步 IWAM_<機器名> 帳號在COM+應用程序與Metabase中的密碼,修復因密碼不一致導致的進程啟動失敗。
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/2003建議值)TcpMaxHalfOpen=100:半連接佇列上限,超過觸發保護TcpTimedWaitDelay=30:縮短TIME_WAIT至30秒,加速端口復用DisableIPSourceRouting=2:丟棄所有源路由包,防路由欺騙修改後需重啟系統生效。建議先在測試環境驗證業務影響。
部署 UrlScan,在 UrlScan.ini 中配置:
[DenyExtensions] .mdb .ldb .mde .asa .inc
同時設置 VerifyNormalization=1、AllowHighBitCharacters=0、AllowDotInPath=0 防雙編碼/異常路徑繞過。
| 路徑 | 帳號/組 | 權限 | 繼承 |
|---|---|---|---|
| 整個系統盤 | System, Administrators | 完全控制 | ✓ |
| \Program Files\Common Files | Everyone | 讀取/執行, 列出目錄, 讀取 | ✓ |
| \Inetpub\wwwroot | IUSR_機器名 | 讀取/執行, 列出目錄, 讀取 | ✓ |
| \Winnt\System32 | 除inetsrv、com外所有目錄 | 移除繼承 → 複製權限 → 僅保留System/Admin | ✗ |
| \Winnt | 除特定目錄外所有 | 移除繼承 → 複製 → 僅保留System/Admin | ✗ |
| \Winnt | Everyone | 讀取/執行, 列出目錄, 讀取 | ✓ |
| \Winnt\Temp | Everyone | 修改 | ✓ |
核心原則: 最小權限、移除不必要的繼承、隔離Web目錄與系統目錄。
iisreset /stop%SYSTEMROOT%\system32\dllcache 下對應DLL緩存W3SVC.DLL (Web) / FTPSVC2.DLL (FTP) / SMTPSVC.DLL (SMTP)Microsoft-IIS/5.0 替換為自定義字符串(長度一致)telnet IP 80 → HEAD / HTTP/1.0警告: 修改系統DLL屬非官方支持操作,可能導致補丁安裝失敗、服務不穩定。生產環境建議使用URLScan RemoveServerHeader=1 或反向代理(Nginx/IIS ARR)重寫Server頭。
安全不是產品,是持續的過程。將這十大加固納入標準化部署模板,配合定期滲透測試與應急預案演練,才能在攻防博弈中保持主動。
Windows Server 2003 DHCP 伺服器資料庫遷移三步驟完整教學 (netsh 匯出/匯入)
Nginx + PHP-FPM 檔案上傳失效完整排查指南:從 client_max_body_size 到 php.ini 核心參數
服務器性能評測體系迷霧:TPC-C、SPEC、SAP SD、Linpack、HPCC 指標深度解讀與選型指南
硬 RAID vs 軟 RAID 深度對比:性能、穩定、兼容、安全、成本五大維度決策指南
Windows 2000 Server 架設 AD 整合 DNS 伺服器:自動註冊、轉發器與用戶端加域實作
Windows Server 2003 取消遠程桌面自動鎖屏:關閉屏保一鍵解決