⑴ 【原創】MySQL常見提權姿勢總結
在深入探索 MySQL 提權策略時,總結了一些常見姿勢,以便於進一步理解並實操這些安全實踐。
**操作**
MySQL 提權中的一項關鍵操作是調整 `secure-file-priv` 設置。通常,這涉及到修改允許用戶讀寫文件的許可權路徑,比如將 `secure-file-priv` 設置為允許遠程連接的伺服器上的特定目錄,從而為提權操作創造條件。
**開啟遠程連接**
MySQL 提權的另一核心是確保遠程連接功能的啟用。通過調整全局變數 `general_log`,可以開啟日誌記錄功能,以便於記錄關鍵操作和潛在的提權嘗試。設置日誌路徑和內容,如 `set global general_log_file='C://phpStudy//PHPTutorial//WWW//shell.php'`,並執行 `select '';` 來寫入一句話,確保日誌文件被正確生成。
**mof 提權**
mof 提權依賴於一個特殊的操作,即修改系統文件 `nullevt.mof`,使其在特定時間自動執行命令。該文件每分鍾執行一次,由 `And TargetInstance.Second = 5` 控制,確保在第五秒執行命令,從而實現自動執行 cmd 操作。添加特定的 mof 代碼,分別用於添加用戶和將用戶添加到管理員組,是實現這一目標的關鍵步驟。
**udf 提權**
udf 提權涉及創建自定義函數,並將特定 DLL 文件整合至 MySQL 環境。步驟包括創建目錄、寫入 DLL 文件、創建自定義函數等。這需要對 MySQL 版本和目錄結構有深入理解,確保 DLL 文件在正確的目錄下,如 MySQL 安裝目錄的 lib\plugin 文件夾。實現過程包括編寫或獲取特定的 DLL 文件代碼,並通過 SQL 語句將其整合至資料庫環境。
**利用 msf**
利用 Metasploit Framework (msf) 工具集,可以輕松實現 MySQL 相關的提權攻擊。通過執行特定的 msf 命令,如 `use auxiliary/scanner/mysql/mysql_login`、`use exploit/multi/mysql/mysql_udf_payload`、`use exploit/windows/mysql/mysql_mof`,可以嘗試登錄、執行提權操作,或利用特定的漏洞進行攻擊。
**文件寫入**
文件寫入技術是實現提權的一種直接方法,涉及使用 SQL 語句將特定內容寫入到目標系統的文件系統中。例如,`select '' into outfile 'C:\\phpStudy\\PHPTutorial\\WWW\\1.php'` 可以用於寫入包含惡意代碼的文件,從而實現進一步的控制和利用。
**os-shell**
os-shell 功能允許在目標系統上執行命令,前提條件是需要有寫許可權和對網站絕對路徑的訪問許可權。通過 SQLmap 工具,結合 `--os-shell` 參數,可以實現對目標系統的操作,如 `sqlmap -u 192.168.12.17/sql/Less-... --os-shell`。在具備正確配置和路徑信息的情況下,可以成功執行命令,例如 `ipconfig`,以驗證許可權提升的成果。
以上策略和方法提供了對 MySQL 提權操作的基本理解,重要的是在實際應用時,務必遵循安全最佳實踐,避免對系統造成潛在的風險。
⑵ mysql UDF提權踩坑經驗分享
UDF許可權提升在網路安全領域已非新概念,但在最近的實戰演練中,我遇到了一些之前未留意的挑戰,現分享這些經驗。
首先,版本問題至關重要。盡管許多人文章中提到MySQL 5.1,但如今這個版本的用戶非常稀少。因此,本文主要針對5.1以上的MySQL版本討論。
MySQL通常從安裝目錄下的lib/plugin導入UDF,這個路徑默認不存在,因此需要許可權創建。UDF.dll文件在SQLMap工具中已內置,但需注意版本對應,因為32位與64位指的是MySQL的體系結構,而非操作系統。錯誤選擇可能導致導入失敗,通過命令`mysql -V`可以檢查你的資料庫位數。
比如,我所使用的資料庫是32位,所以導入時務必選擇對應32位的DLL。無法直接上傳或復制文件時,可以採用hex(load_file('udf路徑'))將文件轉換為16進制數據,然後通過`select 0x16進制數據 into mp file '絕對路徑'`寫入指定目錄。
在SQLMap的udf.dll中,執行命令的函數是`sys_eval`。導入DLL文件中的函數步驟如下:
create function sys_eval returns string soname 'udf文件名'
執行這條命令後,你就能成功利用UDF進行許可權提升操作了。
⑶ MYSQL提權(linux)
select @@global.secure_file_priv;
查看MySQL伺服器的文件讀寫許可權
如果是NULL就是完全禁止
udf提權用到的so文件(linux)在kali下默認集成,路徑為 /usr/share/sqlmap/udf/mysql/linux/64(32)
或者 searchsploit mysql udf
把對應的內容編譯出來
mysql創建函數命令