靶场搭建
靶场下载地址:Empire ~ VulnHub
下载下来是虚拟机压缩文件,直接用Vmvare导出就行
打开后把网络模式设置为NAT模式(桥接模式也可以)
开启虚拟机
看到靶机ip为:192.168.109.129
渗透测试
先扫描一下靶机开启了那些端口和服务
nmap -sS -p 0-65535 -Pn -O 192.168.109.129
发现开放了80端口,存在WEB,开放了22端口,开放了SSH服务
先访问一下WEB
查看网页源码
发现中间件为Apache 2.4.48
先扫描一下网站敏感目录
发现存在robots.txt
发现存在目录/~myfiles
查看网页源码
这提示我们继续尝试,证明方向对了,存在敏感目录
再访问一下刚才扫描到的其他敏感目录看看
发现是apache使用文档,没什么用
扩大一下敏感目录的字典,看看还能搜出来什么,发现什么也没找到,想了想之前找到的/~myfiles目录存在一个很奇怪的符号~,可能所有路径之前都存在~符号,fuzz试一下(这里如果还是fuzz不出来,可以试着用kali内自带的/usr/share/wordlists/rockyou.txt字典,这个字典很全)
发现新目录/~secret
上面提示他把ssh的密钥文件藏在了这里
查看网页源码
没有找到,他说藏在这里说明在/~secret这个路径下,而且是一个文件,所以后缀可能为.txt/.pub我们一个一个fuzz试试
还是没有找到,继续换思路,由于私钥文件一般放在.ssh文件夹下,所以按照“.FUZZ”的思路枚举
找到/~secret/.mysecret.txt文件
能看出这是经过加密或者编码后的,但是我们不知道是什么编码,只能一个一个试
试出来是base58编码
将密钥复制出来保存到文件中
利用密钥登录SSH
发现登录失败,还是需要密码,所以我们需要用密钥文件爆破出密码,这里利用SSH2john工具(kali中自带)
他前面提示了要用fasttrack来爆破,这是kali中自带的一个字典,在/usr/share/wordlists/目录下
爆破出密码为P@55w0rd!
登录
还是登录失败
看了一下网上的文章,说是在登陆前需要给文件修改权限为600,否则权限太大导致登陆失败
试了一下,成功了
当前目录下存在一个user.txt文件,查看获得一个flag
在到别的目录下查看,发现一个python文件和一个提示
提示说这个python文件可以破坏他的账户
文件中引入了人一个webbrowser的包,输出了一句话,打开了靶场作者的官网
提权
sudo -l 查看特权命令
发现可以以arsene用户免密执行python3.9 和heist文件
还发现带有nc工具
想要把连接命令写入
heist文件发现没有权限
文件内引入了webbrowser包,在python3.9目录下找到webbrowser.py文件
并且发现对webbrowser.py文件有写入权限,所以我们将命令写入,直接执行/bin/bash命令,不用nc弹shell了,用nc有些麻烦。
很奇怪的是卸载main函数内,执行成功后不起作用
把命令换个地方写,就执行成功了
现在拿到了arsene用户权限
还需要进一步提权到root才行
sudo -l 查看特权命令
发现可以免密执行pip
在执行pip install时会调用setup.py,可以在本地创建恶意setup.py文件来达到任意命令执行的效果。
TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF
提权成功
成功过关