Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Windows Server 2003 提權實戰:從 WebShell 到 ASPX 後門利用 ASPNET 帳戶提升權限

編輯:Windows 2003 系統技巧

滲透測試中,取得 WebShell 後常面臨權限不足 (IUSR_* 屬於 Guests 群組) 無法執行系統指令。Windows Server 2003 預設安裝 .NET Framework,ASP.NET 執行身分為 ASPNET 帳戶 (屬於 Users 群組),權限顯著高於 IUSR。本文實戰記錄利用 ASPX 後門切換執行身分達成提權。

環境與限制

  • 目標:Windows Server 2003 + IIS 6.0
  • WebShell:ASP 型 (執行身分 IUSR_*,Guests 群組,幾乎無權限)。
  • 限制:
    上傳檔案大小 < 200 KB (無法上傳 cmd.exe/大型工具)。
    WSCRIPT.Shell 元件被禁用 (註冊表/元件服務)。
    Serv-U 本地溢出失敗 (DEP/ASLR/補丁)。

關鍵發現:ASP.NET 執行身分差異

項目ASP (傳統)ASP.NET (Managed)
執行身分IUSR_ (或匿名帳戶)ASPNET (本機使用者帳戶)
群組隸屬GuestsUsers
典型權限極低 (無法讀寫系統目錄、無法執行指令)標準使用者權限 (可讀大部分系統目錄、執行 cmd.exe、網路存取)
副檔名.asp, .asa, .cdx.aspx, .ashx, .asmx, .ashx

提權步驟

  1. 確認 IIS 6.0 已對應 .aspx 擴充名至 aspnet_isapi.dll (預設已對應)。
  2. 上傳 ASPX 型 WebShell (如 cmd.aspx、AntSword.aspx、Godzilla.aspx),大小通常 < 50 KB,符合上傳限制。
  3. 瀏覽器存取 https://target/cmd.aspx,介面顯示執行身分為 ASPNET。
  4. 執行 net user、whoami、net localgroup users 驗證權限。
  5. 後續可:
    上傳更大型工具 (透過 ASPX 分塊上傳/下載)。
    建立反向 Shell (PowerShell/Netcat)。
    嘗試本地提權漏洞 (如 MS11-046、MS16-032、PrintNightmare 等)。
    導出 SAM/NTDS.dit (需更高權限,再配合 Mimikatz/NTDSUtil)。

防禦與緩解

  • 移除/對應 .aspx:若不需 ASP.NET,在 IIS 管理員 →「Web 服務擴充」→ 禁止「ASP.NET v2.0.50727」;或刪除副檔名對應。
  • 降低 ASPNET 權限:將 ASPNET 從 Users 移除、加入 Guests 或自訂低權限群組;修改 machine.config `` 指定自訂低權限帳戶。
  • 啟用 .NET 信任層級:在 web.config 設定 `` 限制程式碼存取安全性 (CAS)。
  • 應用程式集區隔離:IIS 6.0 工作者處理序隔離模式下,為每個網站建立獨立應用程式集區,指定專用低權限身分識別。
  • 檔案上傳驗證:驗證副檔名、MIME、內容特徵碼;上傳目錄設定「執行權限: 無」;防火牆/WAF 攔截可疑請求。

核心觀念

此非漏洞,而是**預設設定差異**導致的權限落差。管理員常關注 IUSR_* 權限卻忽略 ASPNET。整體防禦需遵循**最小權限原則**、**多層防護**、**定期滲透測試驗證**。

理解 ASP 與 ASP.NET 執行身分差異,是 Windows Server 2003/IIS 6.0 環境提權與防禦的關鍵知識點。

Copyright © Windows教程網 All Rights Reserved