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

駭客攻擊 SQL Server 十大經典手法與滲透測試對應檢查清單

     編輯:關於SqlServer

了解駭客如何攻破 SQL Server,才能建立有效防禦。本文整理十大經典攻擊向量,並對應滲透測試驗證重點,助你以攻擊者視角強化防禦。

1. 直接網際網路暴露

  • 手法: 掃描全網開放 TCP 1433/1434,直接連線嘗試弱密碼、已知漏洞利用 (如 SQL Slammer 蠕蟲利用 UDP 1434 緩衝區溢位)。
  • 後果: 勒索軟體植入、資料竊取、加密幣挖礦、拒絕服務。
  • 防禦: **嚴禁直接對 Internet 開放**,防火牆封鎖、VPN/堡壘機存取、雲端安全群組最小開放。

2. 自動化弱點掃描

  • 工具: QualysGuard (通用)、WebInspect (Web 應用)、NGSSquirrel for SQL Server (資料庫專用)、Nessus, OpenVAS。
  • 掃描目標: 缺失修補 (OS/SQL/IIS)、預設帳戶/密碼、錯誤配置 (xp_cmdshell 啟用、SA 權限過大)、SNMP 社群字串預設值。
  • 驗證: 定期排程認證掃描 (Credentiaed Scan) 取得最準確結果。

3. SQL Server 解析服務枚舉 (UDP 1434)

  • 手法: 向 UDP 1434 發送查詢封包,列舉所有具名實例、版本、埠號、叢集資訊。**即使實例隱藏埠號也會被發現**。
  • 工具: SQLPing v2.5 (Chip Andrews) - 必備偵察工具。
  • 衍生攻擊: 過長封包觸發 UDP 1434 緩衝區溢位 (CVE-2002-0649)。
  • 防禦: 防火牆封鎖 UDP 1434 (僅內網管理區段開放)、停用 SQL Browser 服務 (若不需具名實例發現)。

4. sa / 系統管理員帳號密碼破解

  • 現狀: 驚人比例的 sa **空密碼**或弱密碼 (sa, 123456, password)。
  • 工具: SQLPing (內建字典)、AppDetective, NGSSQLCrack (商用)、Hydra, Medusa (線上暴力破解)。
  • 防禦: 強制強密碼策略、啟用密碼到期/歷史、鎖定原則、禁用/重命名 sa、僅 Windows 驗證。

5. 公開漏洞利用代碼 (Exploit) 直接攻擊

  • 框架: Metasploit Framework (開源)、Canvas, Core Impact (商用)。
  • 流程: 掃描發現漏洞 (如 CVE-2008-5416 sp_replwritetovarbin 堆疊溢位) → 選擇 Exploit 模組 → 設定 Payload (Meterpreter/Reverse Shell) → 執行攻擊。
  • 威脅: 繞過防火牆、取得系統級命令執行、植入持久化後門。
  • 防禦: **及時修補** (WSUS/SCCM)、啟用 DEP/ASLR、應用程式白名單 (AppLocker)、最小權限服務帳戶。

6. SQL Injection (SQL 注入)

  • 成因: 前端應用未驗證/參數化使用者輸入,直接拼接 SQL 字串。
  • 利用: URL/表單注入 ' OR 1=1--, UNION SELECT, xp_cmdshell 等 → 繞過登入、竊取資料、執行系統指令。
  • 工具: SQLMap (自動化神器), Havij, Burp Suite Scanner, SQL Injector (SPI Dynamics)。
  • 防禦: **全面參數化查詢 (Prepared Statements)**、預存程序 (參數化)、ORM 正確使用、WAF 規則、最小權限資料庫帳戶。

7. Blind SQL Injection (盲注)

  • 特徵: 無錯誤回顯、無資料直接回顯,僅透過**布爾邏輯差異** (頁面內容變化) 或**時間延遲** (WAITFOR DELAY, BENCHMARK) 推斷資料。
  • 難度: 速度慢、需自動化工具 (SQLMap --technique=B/T)。
  • 防禦: 同 SQL Injection,統一錯誤頁面 (不洩露堆疊追蹤)、限制查詢執行時間、資料庫層面封鎖 WAITFOR/BENCHMARK (權限控制)。

8. 逆向工程尋找 0-day 漏洞

  • 手法: 反組譯 sqlservr.exe、擴展儲存程序 DLL、ODBC 驅動程式,分析記憶體損壞、整數溢位、Use-After-Free 等弱點。
  • 參考: 《Exploiting Software: How to Break Code》 (Greg Hoglund & Gary McGraw)。
  • 防禦: 無法完全防禦 0-day,**縮小攻擊面** (停用不用的擴展程序/功能)、部署 HIPS/EDR 偵測異常行為、訂閱廠商安全公告首日修補。

9. Google Hacking (搜尋引擎偵察)

  • 手法: 利用 Google 進階搜尋語法發現公開洩露的資訊:
    • inurl:"id=" intext:"SQL syntax" (尋找潛在注入點)
    • filetype:config "connectionString" "password=" (洩露設定檔)
    • site:target.com "Incorrect syntax near" (錯誤訊息洩露)
  • 資源: Google Hacking Database (GHDB) - Johnny Long 維護。
  • 防禦: 關閉自定義錯誤頁面 (生產環境 customErrors mode="RemoteOnly")、禁止目錄列表、敏感檔案 robots.txt 封鎖/驗證保護、定期 site: 自查。

10. 原始碼審計發現硬編碼憑證

  • 場景: 開發人員為圖方便將連線字串 (含 sa 密碼) 硬編碼在 ASP/ASPX/.config/Java/DLL 中。
  • 發現: 手工程式碼審查、Git 歷史搜尋 (git log -p --all -S 'password')、Google Hacking、開源專案洩露。
  • 防禦: **密碼外部化** (Key Vault, 環境變數, 加密設定檔)、CI/CD 管道整合密掃工具 (GitLeaks, TruffleHog)、代碼審查強制檢查、輪換所有曾洩露密碼**。

滲透測試驗證清單 (藍隊視角)

檢查項目驗證方法通過標準
網路層隔離Nmap 掃描外網 IPTCP 1433/1434/UDP 1434 全部關閉
修補狀態MBSA / WSUS 報告 / Nessus 認證掃描無 Critical/High 缺失修補
sa 帳號狀態登入檢查 / SQLPing已重命名、強密碼、停用、僅 Windows 驗證
服務帳戶權限services.msc / EM 檢視一般網域使用者,非 Administrator
xp_cmdshell / OLE AutomationEXEC sp_configure 'xp_cmdshell'值為 0 (停用)
錯誤訊息洩露故意觸發錯誤 / Web 掃描生產環境顯示通用錯誤頁,無堆疊/SQL 片段
資料庫帳戶最小權限審查 sys.database_permissions應用帳戶無 db_owner/sysadmin,僅必要 GRANT
稽核啟用EM 安全性分頁 / 錯誤記錄失敗登入稽核啟用,日誌定期審閱
備份加密異地檢查備份作業 / 還原測試備份檔加密,異地離線備份存在且可還原
「既然駭客在做這些事,你也需要實施同樣的攻擊來檢驗系統的安全實力。這是理所當然的。」
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved