January 11, 2024 11:54 AM
Tags:fuzz,pip提权,ssh私钥
Owner:只惠摸鱼
使用arp-scan 和 namp扫描C段存活主机探测靶机ip:192.168.199.141,且80和22端口开放
扫描靶机开放端口,进行全面扫描,发现有一个似乎是一个目录。
访问一下80端口
根据扫到的信息访问一下,发现道路对了。那爆破一下目录
爆破一下目录,
御剑扫一下
发现一个apache的服务器帮助文档
再用dirb扫一下,发现两个新得页面
一个是jquery
一个无权限
没有其他发现了,那就还是那个~myfiles目录入手吧,开始扫这个有没有其他页面的
不管是御剑还是dirb都没有什么发现。
那试试查询一下跟这个格式相关的,因该有其他页面,进行一个暴力破解吧。
wfuzz扫描
访问一下,发现了第二个线索:一个可能是用户名icex64 ,另一个是还有隐藏文件,且是ssh私钥,还有破解密钥的方法提示:fasttrack(这是一个字典文件)
继续爆破出隐藏文件,猜测是.txt后缀的隐藏文件(在linux里隐藏文件一般是是.开头)
先试一下是不是不需要加.(发现没有什么东西)
再试试加. ,爆出了一个隐藏文件
wfuzz -c -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt --hc 404,403 http://192.168.199.141/~secret/.FUZZ.txt
访问一下,确实是加密过的密文。
分析一下密文,发现是base58加密
直接进行在线解密,找到了一堆ssh私钥。
破解私钥口令
将私钥保存到文件key中,修改权限(600,不能太高,不然可能无法登录)
使用ssh2john生成hash值
ssh2john key > key.hash
并使用工具john和字典fasttrack.txt来破解口令
john --wordlist=/usr/share/wordlists/fasttrack.txt key.hash
得到了密码,再结合之前猜测的用户名,登陆一下ssh
-i
参数用于指定用于身份验证的私钥文件,以替代默认的用户名/密码身份验证方式。)拿到了普通用户的flag
查找SUID文件或sudo(无需密码)的文件,发现有一个arsene用户的文件和运行python3,是不是可以直接提权到arsene用户。
发现有一个python文件,去看一下。有一个note信息说我们当前的用户可以执行这个文件,查看文件权限发现没有写入权限。
查看heist.py文件,发现程序导入了webbrowse。去python目录下看能不能对这个模块进行修改,让它返回一个shell。
查找webbrowser模块
查看文件权限,发现有写入权限
写入获取shell命令
切换shell
查询 sudo (无需密码)的文件,发现有pip
直接进行pip提权(搜一下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
提权成功!
TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF