vulnhub-DC:5渗透笔记
信息搜集
经过前面几个靶机的练习,已经轻车熟路了:
信息搜集一条龙,可知:
- IP为192.168.111.145
- 开放了80、111、47890三个端口
- 目录扫描到一点点可访问路径
接下来看看web服务:
并不是什么通用的cms,那么就只有先尝试从功能点入手了,翻一翻这里有哪些功能
我们发现contact功能点有留言功能,写点东西试试
提交后发现跳转了,并且网页底部的Copyright值从2019变成了2017
联想到我们在用dirsearch的时候,扫描到一个footer.php,看名字应该也是一个关于网页底部内容的文件,访问试试:
还真是,而且如果我们刷新,年份还会有变化:
如果有搭建博客经历的话,其实就能想到,这个footer.php应该是被包含在了thankyou.php里的,我们可以尝试以此为立足点展开利用
漏洞利用
文件包含漏洞
如果这里存在文件包含,我们可以用fuzz一下可能用于包含的参数
先试试get方法:
fuzz一手发现参数为file
再验证一下,包含/etc/passwd
试试:
确实是文件包含,那么这里想要getshell就有两种思路:
-
打php_filter_chain,但是filter链很长,会被GET传参限制,所以只能执行简单命令,但确实可以实现RCE:
-
包含日志文件写马,只要知道日志文件路径就能写,而我们已知中间件为Nginx,路径通常为
/var/log/nginx/access.log
,可以尝试一手
包含日志文件写马
ok直接抓包写一个phpinfo试试:
包含日志文件看看:
出现了phpinfo界面,成功
接下来可以写个一句话木马:
蚁剑连接试试:
连上了,接下来就是反弹shell了
获取交互式shell
nc反弹shell
成功连上了
依然是python获取pty:
我们当前的权限是www-data,接下来又是权限提升了
权限提升
先看看SUID权限的文件有没有什么可以利用的
还真有一个Screen 4.5.0的漏洞可用于权限提升
将脚本复制一份放到web目录:
看看脚本内容:
如图,脚本内容分三段,前两段会构造出单独的脚本文件,还有一段会执行利用命令
接下来打开http服务准备上传文件:
python2 -m SimpleHTTPServer 8000
在靶机上使用wget下载脚本文件到/tmp/目录,再赋予执行权限,即可运行提权脚本:
如图,提权成功,ez
接下来在/root目录拿到flag:
总结
本次渗透过程中,有如下漏洞或利用:
- web网页文件包含参数可控
- 利用文件包含漏洞,包含日志文件写马
- getshell后利用screen的版本漏洞实现suid提权