VulnHub-Empire:LupinOne
VulnHub-Empire: LupinOne
Level: Easy-Medium
信息收集
nmap
开放22、80端口,同时robots.txt
中提示有个名为/~myfiles
的目录
假的404页面
查看源码发现提示信息”Your can do it, keep trying.”
ffuf
通过fuzz发现了另外一个目录~secret
筛选一下有用的信息
疑似用户名: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 |
发现了.mysecret.txt
直接看不像是private key应该是编码过了,试了几种Base发现是base58 解码点这
解码后得到sshkey
John
利用ssh2john获取sshkey的哈希值
1 | /usr/share/john/ssh2john.py sshkey > hash |
再用John破解得到密码为P@55w0rd!
1 | john --wordlist=/usr/share/wordlists/fasttrack.txt hash |
通过已知用户icex64连接ssh,获得一个flag
提权
sudo -l
发现用户有权以arsene身份运行heist.py且免密
查看webbrowser.py为任意用户可读写执行,利用python库劫持来利用该文件
Python库劫持
Python库劫持的方法后续会再写一篇文章来详细学习一下
这里因为heist.py调用了webbrowser.py且该文件任意用户可写,直接在该文件中调用/bin/bash
现在可以直接通过heist.py来切换为arsene用户
1 | sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py |
利用pip来Getshell
简单看看arsene用户目录下,其中note.txt就是先前网页上看到的提示信息,其他没啥有用的
sudo -l
发现用户有权以 root 身份执行pip且免密
在GTFOBins上直接就有pip提权的方法
1 | TF=$(mktemp -d) |
这里直接利用以上三条命令就可获得root权限
root flag在**/root**目录下
end