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

利用軟體限制原則 (SRP) 禁止 Web 目錄執行 exe/bat/com/shell 腳本:零成本阻斷提權鏈

編輯:關於伺服器

Web 目錄 (網站根目錄、上傳目錄、快取目錄) 絕不需要 執行 .exe、.bat、.cmd、.com、.ps1、.vbs、.js、.wsf 等可執行檔。攻擊者上傳 WebShell 後,常嘗試執行系統指令提權 (如 whoami, net user, powershell -enc)。利用 Windows 內建 軟體限制原則 (Software Restriction Policies, SRP),可在檔案系統層面強制阻斷,即便攻擊者拿到 SYSTEM 權限也無法繞過。

配置步驟 (Windows Server 2003/2008/2012/2016/2019 通用)

  1. Win + R → gpedit.msc → 「本機群組原則編輯器」。
  2. 展開:電腦設定 → Windows 設定 → 安全性設定 → 軟體限制原則。
  3. 若右側顯示「尚未定義軟體限制原則」→ 右鍵空白處 → 「建立新原則」。
  4. 展開「其他規則」 → 右鍵空白處 → 「新增路徑規則」。

關鍵規則配置 (逐條新增)

路徑安全性等級說明
D:\wwwroot\* (您的網站根目錄)不允許 (Disallowed)遞歸禁止該目錄及所有子目錄執行任何可執行程式碼
C:\Windows\Temp\*不允許系統臨時目錄,所有用戶可寫,高風險落地執行點
C:\Windows\Tasks\*不允許排程任務腳本落地目錄
%TEMP%\* / %TMP%\*不允許當前使用者臨時目錄
C:\inetpub\temp\appPools\*不允許IIS 應用程式池暫存目錄
⚠ 路徑務必以通配符 * 結尾,覆蓋所有子目錄與檔案。
安全性等級選「不允許」,而非「基本使用者」——「基本使用者」仍允許執行簽名程式,「不允許」直接阻斷 CreateProcess 系統調用,任何身分 (含 SYSTEM) 均無法執行。

進階:指定檔案類型擴充 (預設已涵蓋主流)

「軟體限制原則」→ 右鍵「指定的檔案類型」→ 確認/新增:.exe, .bat, .cmd, .com, .ps1, .vbs, .js, .jse, .wsf, .wsh, .msi, .msp, .scr, .pif, .application, .gadget 等。

驗證測試

  1. 在 D:\wwwroot\test 建立 test.bat 內容:@echo off & echo hello & pause。
  2. RDP 登入伺服器,雙擊執行 → 應彈出「Windows 無法開啟此程式,因為軟體限制原則...」錯誤視窗。
  3. 嘗試以 Administrator / SYSTEM (PsExec -s -i cmd) 執行 → 同樣被阻擋。

常見誤區與避坑

  • ❌ 規則設在「使用者設定」而非「電腦設定」 → 僅對互動登入用戶生效,Service/Scheduled Task 繞過。
  • ❌ 路徑未加 * → 僅封鎖該目錄直屬檔案,子目錄繞過。
  • ❌ 選「基本使用者」 → 簽名惡意碼仍可執行。
  • ✅ 配合 NTFS 權限:上傳目錄 移除「執行/遍歷」權限 (僅保留 讀取/寫入/列出資料夾內容),雙重保險。
  • ✅ 應用程式目錄 (bin/, App_Code/) 除外:若網站需動態編譯/載入組件,請勿對 bin\* 套用「不允許」,改用 NTFS 拒絕寫入保護。

補充:臨時目錄規則部署腳本 (批次部署多台伺服器)

@echo off
:: 建立 SRP 路徑規則需透過 secedit /import 或 PowerShell 操作註冊表
:: 此處提供註冊表直寫範例 (需重啟或 gpupdate 生效)
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{GUID1}" /v "ItemData" /t REG_SZ /d "D:\wwwroot\*" /f
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{GUID1}" /v "SaferFlags" /t REG_DWORD /d 0 /f  :: 0=Disallowed
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{GUID2}" /v "ItemData" /t REG_SZ /d "C:\Windows\Temp\*" /f
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{GUID2}" /v "SaferFlags" /t REG_DWORD /d 0 /f
gpupdate /force
核心邏輯:Web 目錄 = 唯讀/可寫但不可執行。SRP 從作業系統載入器層面斷絕執行鏈,是「免費、無效能損耗、繞過極難」的終極防線。
Copyright © Windows教程網 All Rights Reserved