MySQL資料庫提權(一)

  • 2021 年 9 月 30 日
  • 筆記

一、獲取Mysql登錄帳號和密碼

1.資料庫提權需要知道資料庫的帳號密碼、以及它的配置文件,一般配置文件都在網站的根目錄下,這些配置文件命名有鮮明的特徵,如:conn、config、data、sql、common、inc等等

 

 

 

 

 

 

 

 

 以上這些文件都有包含連接資料庫的資訊,包括連接帳號,密碼,資料庫名等等,

2.如果在這些文件里找不到需要連接資料庫的資訊,可以到資料庫的安裝目錄下找,默認目錄為:C:\phpStudy2016\MySQL\data\mysql,在此目錄下找到user.myd文件,裡面記錄了登錄帳號和密碼

 

 3.通過暴力破解得到帳號和密碼,這個步驟比較麻煩一些,再有一個,Mysql默認不允許遠程連接,所以要暴力破解,只能通過腳本來進行破解,獲取帳號密碼,運行一個腳本文件,用弱口令加字典掃描,來破解資料庫用戶和密碼

 

 

 

 在頂端顯示已經將用戶名和密碼爆破出來,另外暴力破解還可以使用工具,如:hscan、Bruter、hydra(九頭蛇)等,但是這些工具的使用前提是資料庫開啟對外遠程連接,

登錄到mysql中,為root遠程訪問授予許可權,執行語句:

mysql>GRANT ALL PRIVILEGES ON *.* TO root@”%” IDENTIFIED BY “root”;

mysql>flush privileges;

 

通過遠程機訪問MySQL資料庫:

 

 

 

 telnet遠程連接已經可以看得到資料庫的版本資訊,

除了語句開啟遠程連接之外,還可以用大馬(php)腳本來開啟:

 

 

 

 開啟成功之後,再利用專業的資料庫連接工具,來遠程連接

比如Navicat for MySQL可視化工具

 

 另外用腳本的方式連接:

 

 可以選定某一個資料庫,在左上角導出,可以導出到本地,此過程也稱為托庫,

另外再使用Bruter工具,掛載字典來破解

 

 二、資料庫提權

1.UDF提權

需要注意的是,MySQL版本小於5.1,udf文件放在:C:\\WINDOWS\\udf.dll或者C:\\WINDOWS\\system32\\udf.dll,

MySQL等於5.1版本的時候,udf文件在:%mysql%\\plugin\\udf.dll ,用select @@plugin dir 查詢plugin文件路徑,默認的在C:/Program File/MySQL/MySQl Server5.1/lib/plugin/udf.dll,如果安裝了phpstudy,目錄可能就在C:\php\MySQL-5.1.50\lib\plugin\udf.dll,在以上的步驟中,已經將遠程連接打開,直接使用提權工具來連接

 

 看到目前的版本是5.5.53,大於5.1版本,提示將udf文件導入到lib\plugin目錄

使用菜刀工具連接到目標主機,

 

在phpstudy/MySQL/lib下創建plugin目錄,再回到MySQl提權工具導入udf.dll文件

 

 新建號好之後,回到MySQL提權工具

 

 發現導入失敗,原因之一可能是資料庫的配置文件中:secure_file_priv=””;

 

 設置為空後,退出重啟MySQL服務,再來工具導入

 

 發現可以導入成功,並且在真實目錄下也能看到udf.dll文件

 

 現在就可以在工具中執行資料庫命令:Create Function cmdshell returns string soname ‘udf.dll’;語句的意思是通過udf文件來創建一個cmdshell函數,執行創建後,就可以用它(cmdshell)來操作資料庫其他命令,

 

 2.執行”ver”命令:

 

 3.執行”net user”命令:

 

 4.遠程開啟3389埠,因為執行3389是一個函數,所以要先創建類似於cmdshell的3389()函數,

 

 

 

此時目標機是沒有開啟3389遠程埠,

 

執行3389()函數命令,

 

 

 

 再來看遠程桌面狀態

 

 已經開啟了3389埠,我們可以遠程連接到它的伺服器,進行後續操作,

以上UDF是在允許遠程連接的情況下進行,如果不允許遠程連接的情況下,可以運行腳本(kill.php)來輔助udf提權,之所以叫它kill,通殺所有的udf提權

 

 

 

 先將moonudf.dll文件導出

 

 

 

 成功導出,

5.如同提權工具類似,執行命令之前首先要創建執行該命令的命令執行函數

 

 執行後

 

 語句無報錯,說明創建成功,執行查看用戶命令:

 

 執行成功,也可以手工創建用戶(普通):

 

 此腳本最大的優點在於,如果對方的3306埠完全沒有開放,我們可以用菜刀將此腳本傳入對方主機,通過的方式web訪問腳本,創建函數,來做命令執行,遠程開放對方的某些埠,

綜上就是資料庫UDF提權的所有步驟。