0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

靶场搭建
靶场下载地址:https://www.vulnhub.com/series/empire,507/
下载下来是虚拟机压缩文件,直接用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文件有写入权限,所以我们将shell命令写入。
很奇怪的是卸载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
提权成功
成功过关
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)