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

SQL Server 2000 SA 弱口令被破解:從資料庫滲透到系統最高權限的完整攻擊鏈

     編輯:關於SqlServer

攻擊前提

  • SA 帳號密碼為空或極弱(字典/暴力破解命中)
  • 攻擊者可網路連線至 SQL Server 連接埠(預設 1433)
  • xp_cmdshell 擴展預存程序未被移除/禁用(預設啟用)

攻擊步驟實錄

  1. 使用查詢分析器以 SA 身分登入
  2. 執行以下 T-SQL:
xp_cmdshell "net user hacker P@ssw0rd /add";
GO
xp_cmdshell "net localgroup administrators hacker /add";
GO

原理解析

  • xp_cmdshell 位於 master 資料庫,以 SQL Server 服務帳號權限執行 OS 命令
  • SQL Server 服務帳號若為本地系統或管理員,命令即具備最高權限
  • 攻擊者在幾秒內建立系統管理員帳號,完全控制伺服器

衝擊後果

  • 竊取/加密/刪除所有資料庫與檔案
  • 植入後門、勒索軟體、挖礦程式
  • 橫向移動攻擊內網其他主機
  • 清除事件日誌銷毀證據

防禦體系(纵深防禦)

層級措施優先度
帳號SA 必須設定 16+ 字元高強度密碼(大小寫+數位+特殊符號),安裝時即完成⭐⭐⭐⭐⭐
帳號重命名 SA 帳號,建立同名誘餌帳號觸發告警⭐⭐⭐⭐
網路防火牆限制 1433 僅允許應用伺服器 IP 存取⭐⭐⭐⭐⭐
功能移除 xp_cmdshell:EXEC sp_dropextendedproc 'xp_cmdshell'⭐⭐⭐⭐
功能或禁用:EXEC sp_configure 'xp_cmdshell', 0; RECONFIGURE⭐⭐⭐⭐
權限SQL 服務帳號使用最低權限網域帳號,非本地系統/管理員⭐⭐⭐⭐⭐
審計啟用登入失敗審計,異常登入即時告警⭐⭐⭐

緊急應變:發現 SA 被暴力破解後

  1. 立即修改 SA 密碼並重命名
  2. 檢查系統帳號異常新增:net user / lusrmgr.msc
  3. 掃描可疑排程任務、啟動項、服務
  4. 檢視 SQL 錯誤日誌與 Windows 安全日誌(事件 ID 4624/4625)
  5. 如確認失陷,建議重灌系統並從乾淨備份恢復

誤區澄清

「資料庫被攻破最多丟資料,怎麼可能拿到系統權限?」

錯誤。SQL Server 架構允許高權限資料庫操作透過 xp_cmdshell、CLR、OLE Automation 等橋樑直接觸達作業系統。資料庫安全即系統安全的關鍵防線。

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