详谈利用系统漏洞及mysql提权

发布时间:2022-01-25 05:34:00 作者:Potato 阅读量:4069

Part1提权概述:

提权,顾名思义就是提升权限,当我们 getshell ⼀个⽹站之后,⼤部分情况下我们的权限是⾮常低的,这时就需要利⽤提权,让原本的低权限(如只允许列⽬录)→ ⾼权限(拥有修改⽂件的能⼒),权限提升后,对接下来的渗透有很⼤帮助

Part2提权的方式:

    1. 系统漏洞提权(Linux、Windows)
    1. 第三⽅软件/服务提权(数据库提权)
    1. 系统配置错误提权

1系统提权

Windows系统提权

Windows系统漏洞提权概述

  • 系统漏洞提权⼀般就是利⽤系统⾃身缺陷(⾃身漏洞),⽤来提升权限
  • 为了⽅便使⽤,windows和linux系统均有提权⽤的可执⾏⽂件(exp---互联⽹公开的)

系统漏洞提权常规流程

查看⽬标机补丁记录

  • ⽅法⼀ :在cmd中输⼊systeminfo查看补丁安装情况
  • ⽅法⼆:通过命令查询出哪些补丁没有安装

查找补丁对应的漏洞号

  • 使⽤在线查询⼯具:http://blog.neargle.com/win-powerup-exp-index/#

查找对应的提权EXP

windows中提权exp的格式为

使⽤EXP对⽬标机进⾏提权

  • 1.当getshell后,查看系统权限
  • 2.查看系统补丁

Linux系统提权

Linux系统提权概述

  • Linux安装好系统后⾥⾯⾃带的软件或内核存在的漏洞,⽐较流⾏的有 “脏⽜提权”
  • Linux内核提权跟Windows⼀样,都要下载对应漏洞的脚本进⾏提权

Linux提权的步骤

  • 1.进⾏基础信息收集

信息收集 -- 内核版本 --- 漏洞 --- 公开的exp

  • 3.使⽤exp,利⽤漏洞进⾏提权
    以脏⽜提权为例,进⾏提权 1、yum install -y gcc
    2、gcc -pthread dirty.c -o dirty -lcrypt
    3、chmod +x dirty
    4、./dirty 新设置的密码 \

2MySQL数据库提权

MySQL数据库提权概述

MySQL提权必要条件:获取MySQL数据库最⾼权限root的账号密码

获取⽅法:

1.查看数据库配置⽂件
关键字:config conn data sql inc database 等
2.下载mysql安装路径下的数据⽂件并破解
安装路径下的 data ⽬录中存放的是数据库的数据信息(表名,列名,内容)
root账号密码存储在mysql数据下的user表中
完整路径=安装路径+data+mysql+user.myd
3.进⾏暴⼒破解
Hydra、X-scan等

MySQL提权的三种⽅式

  • 1、udf提权
  • 2、mof提权
  • 3、启动项提权

⼀.MOF提权

MOF提权原理:

  • 利⽤了c:/windows/system32/wbem/mof/⽬录下的 nullevt.mof ⽂件
  • 该⽂件每分钟都会在⼀个特定的时间去执⾏⼀次的特性,通过写⼊cmd命令使其被带⼊执⾏

利⽤条件:

  • 1.Windows <= 2003
  • 对 c:/windows/system32/webm/mof ⽬录有读写权限
  • 可以实现写mof⽂件到相应⽬录,例如:数据库允许外联、有webshell、有可写的sql注⼊漏洞等情况

提权⽅法:

  • 1.在可写⽬录中上传mof⽂件
  • 2.执⾏ load_file 及 into dumpfile 把⽂件导出到正确的位置
select load_file('上传的mof⽂件路径') into dumpfile
'c:/windows/system32/wbem/mof/nullevt.mof'
  • 3.执⾏成功后,验证mof⽂件中的cmd命令是否执⾏

mof⽂件的内容:

MOF提权过程详解

1.上传mof脚本⽂件到可读写⽬录下

2.执⾏MySQL语句,将mof⽂件到出到指定的位置:c:/windows/system32/wbem/mof/nullevt.mof

3.查看命令是否执⾏成功
4.同样的⽅法修改mof⽂件再重复上次的步骤,可以将⽤户添加到管理员组

⼆、UDF提权

原理:

  • UDF(User Defined Function)⽤户⾃定义函数,⽀持⽤户⾃定义
  • 通过添加新的函数,对mysql服务器进⾏功能扩充,从⽽创建函数,将MYSQL账号转化为系统system权限
  • UDF提权是通过root权限导出udf.dll到系统⽬录下,可以通过udf.dll调⽤执⾏cmd

利⽤条件:

1.Windows 2000、XP、2003、2008
2.MySQL数据库版本
3.账号具有对MySQL的插⼊和删除权限
4.可以将udf.dll写⼊到相应⽬录的权限

UDF提权过程详解

1.收集必要信息
2.MySQL版本⾼于5.1,创建导出⽂件夹
  • /lib/plugin⽬录本身是不存在的,可以利⽤NTFS ADS流来创建⽂件夹
select 'xxx' into dumpfile 'MySQL⽬录\\lib::$INDEX_ALLOCATION’;
select '
xxx' into dumpfile 'MySQL⽬录\\lib\\plugin::$INDEX_ALLOCATION';
  • 也可以利⽤webshell直接在mysql安装路径下创建piugin⽬录
3.导⼊ udf.dll ⽂件

DLL⽂件的获取⽅法:
github ==== 现成;
linux、windows、64、32【mysql的数据库位数】
将 dll ⽂件上传到mysql的/lib/plugin⽬录下:

4.创建⾃定义函数
  • create function sys_eval returns string soname 'udf.dll';
  • 注意:需要创建.dll⽂件中存在的函数才可以,可以⽤⼗六进制编辑器打开.dll⽂件,可以看到右图标红的框中,这些函数是可以被创建的
5.执⾏语句
  • 创建⼀个⽤户,⽤户名为lmz 密码为 123.com 的账户
select sys_eval("net user lmz 123.com /add")
  • 将该⽤户提升为管理员权限
select sys_eval("net localgroup administrators lmz /add")
6.清除痕迹
drop function sys_eval;
delete from mysql.func where name="sys_eval";

注意:linux下udf提权⽅法⼀致,只不过导⼊dll⽂件的位置不太⼀ 样:如::::/usr/lib64/mysql/plugin/,其余过程⼀致

启动项提权

原理:

将⼀段 VBS脚本导⼊到开机启动项中,如果管理员重启了服务器,那么就会⾃动调⽤该脚本,并执⾏其中的⽤户添加及提权命令

利⽤条件:

  • 1.上传到⽬录必须具备可读写的权限
  • 2.调⽤的 cmd 也必须有⾜够的权限
  • 3.重启服务器可以利⽤⼀些可导致服务器蓝屏的EXP,或者DDoS拒绝服务

提权⽅式:

⽅法⼀:将VBS提权脚本上传到启动项⽬录下
条件:
  • C:\Documents and Settings\All Users\「开始」菜单\程序\启动 ⽬录存在可读写的权限
VBS提权脚本代码:
  • 将以上代码保存为 .vbs 后缀的⽂件上传到启动项⽬录中即可


Potato

专注渗透测试技术

全球最新网络攻击技术

支付宝打赏 微信打赏

我要评论

Catfish(鲶鱼) Blog V 4.7.3