Empire:LupinOne
项目地址:https://download.vulnhub.com/empire/01-Empire-Lupin-One.zip
是一个打包好的镜像文件
注意:导入 vmx 时一定要选择我已移动,否则没网
使用 Nmap 扫描出开放服务及操作系统版本

弱口令
SSH
访问 80 端口只有一张图片,查看页面源代码找到注释

访问 /robots.txt 拿到线索

访问 /~myfiles 回显 404,页面源代码有注释

扫描目录找到一个 /~secret,得到如下信息
用户名为 icex64
存在一个隐藏的 SSH 私钥文件

继续 FUZZ 这个目录找到 .mysecret.txt 文件,看文件内容应该是密钥

AI 识别出了是 Base58 编码,解码拿到私钥

改为权限结果连不上,系统判定这不是 SSH 私钥文件

使用 ssh2john 转换格式准备爆破
1 | ssh2john id_rsa > john_id |
最后爆破出密码为 P@55w0rd!

成功连接

提权
环境变量劫持
检查权限发现我们可以运行一个用户的 Python 程序

查看文件内容,发现导入了一个 webbrowser

在用户家目录中没有发现这个文件,所以大概率就是在 Python 3.9 目录里面
找到后发现权限是其他人可修改

改源代码为反弹 Shell
1 | import socket,subprocess,os |

成功连上
1 | sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py |

继续检查权限发现可以运行 pip

当你执行 sudo pip install /path/to/directory 时,pip 会::
- 将整个目录复制到一个临时构建目录(如
/tmp/pip-req-build-xxxxx)
- 将整个目录复制到一个临时构建目录(如
- 切换到该构建目录,执行
python setup.py egg_info命令,生成.egg-info元数据目录
- 切换到该构建目录,执行
- 如果
egg_info成功,再执行python setup.py install进行实际的编译和安装
- 如果
关键在于第一步:运行 setup.py egg_info,本质上就是 python setup.py egg_info,会完整执行 setup.py
1 | TF=$(mktemp -d) # 创建临时目录 |
