首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 弱密碼提權攻擊剖析與防禦對策

     編輯:MySQL 資料庫相關知識

⚠️ 法律與道德聲明

本文僅供安全研究、防禦教學與授權滲透測試參考。未經書面授權對任何系統進行攻擊、植入後門、竊取資料均屬違法,嚴禁用於非法用途。請遵守當地法律法規與《網絡安全法》相關規定。

攻擊鏈復盤(僅供防禦視角分析)

  1. 弱密碼存取:攻擊者發現 MySQL root 空密碼或弱口令,且對外開放 3306 埠。
  2. 建立惡意資料表:在 test 資料庫建立單欄 cmd TEXT 資料表。
  3. 寫入 VBS 腳本片段:插入三行 INSERT,內容為建立 WScript.Shell 物件並執行 net user/net localgroup 指令新增管理員帳號。
  4. 導出為啟動項腳本:SELECT * FROM a INTO OUTFILE 'C:\\...\\Startup\\a.vbs',寫入所有使用者啟動資料夾。
  5. 觸發執行:誘導或等待伺服器重啟,VBS 無視窗執行完成提權。

核心利用條件

  • MySQL 服務帳號具備檔案系統寫入權限(通常為 SYSTEM 或 Administrators 成員)。
  • 擁有 FILE 權限(GRANT FILE ON *.* TO 'root'@'%')。
  • 目標 Windows 允許啟動資料夾腳本執行(預設開啟)。
  • 網路層可直連 3306 埠。

防禦對策清單

層面具體措施
帳號與認證強制複雜密碼、啟用 validate_password 元件、禁止 root 遠端登入(bind-address=127.0.0.1 或防火牆限制)、採用 SSH 隧道/VPN 存取。
最小權限應用布號移除 FILE、PROCESS、SUPER、SHUTDOWN 等高危權限;僅授予特定資料庫的 DML 權限。
檔案系統MySQL 服務帳號不可為 Administrator;資料目錄與 secure_file_priv 限定專用匯入匯出目錄,禁止寫入系統目錄、啟動資料夾。
網路隔離3306 埠不對公網開放;僅允許應用伺服器 IP 存取;生產環境強制 SSL 連線(require_secure_transport=ON)。
稽核與監控啟用審計日誌(MariaDB Audit Plugin / MySQL Enterprise Audit),警報異常 INTO OUTFILE、CREATE TABLE、GRANT FILE 等操作。
作業系統啟用 AppLocker/軟體限制原則封鎖啟動資料夾 .vbs/.bat/.ps1;定期修補 OS 漏洞;關閉不必要的服務。

應急處置建議

  1. 立即封鎖來源 IP、撤銷洩露帳號權限、強制輪換所有資料庫密碼。
  2. 檢查 mysql.user、mysql.db、mysql.tables_priv 是否被竄改;排查 INTO OUTFILE 產出的可疑檔案。
  3. 檢視 Windows 事件日誌(Security 4624/4688、Sysmon Event ID 1)追蹤惡意進程鏈。
  4. 若確認遭植入後門,建議重建資料庫實例而非嘗試清理,並從乾淨備份還原資料。

總結

此攻擊本質上是弱密碼 + 過度權限 + 檔案寫入濫用 + 作業系統啟動機制的組合拳。防禦核心在於「最小權限、網路隔離、強認證、審計可見」,單一防線失效時仍有纵深防護生效。

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