端口扫描
端口开放不多,这种情况思路比较固定,就是web拿到一些东西ssh连接 。
web渗透
robots下存在一个文件
前端注释有写一些提示符,但并没有什么有用信息。
到这里经过目录扫描,备份文件扫描等一系列尝试以后没有结果,猜测可能存在~file这样的形式,于是利用工具fuzz
这里可以看到扫到了一个secret这个目录,猜测是正确的
这里可以确定一个用户名,因为网站显然不存在什么内容管理系统,那么这个极有可能是系统用户,这里提示藏起来了ssh私钥。
到这里自己没想到怎么做了,去看wp原来是.file这样的组合形式,难怪自己扫不出来。其实这样做也是有原因的,一来常规目录扫描找不到这样的文件,而来这样的文件在linux中也是隐藏文件。所以后续遇到这种题可以从这个角度去考虑。
继续fuzz,如果没结果那么就添加几个后缀 ,和目录扫描一样的套路。
这里换了几个字典以后可以看到跑到了一个mysecret.txt
这里看不出来编码没关系,直接去谷歌一个编码识别器就好
可以尝试这个https://www.dcode.fr/cipher-identifier
判断是base58
这里直接用kali自带的base解密就好
echo '字符串' | base58 -d > 指定文件
这里因为是私钥所以我们的利用链是这样
我的理解是利用ssh -i参数可以利用私钥登录,但对于私钥的使用还需要有一个认证,这个认证就在私钥里面藏着,我们可以通过ssh2john这样的工具将私钥转换为hash值,然后去爆破。
在写wp时遇到坑了,建议不要使用linux的解码,因为从密文粘贴过来到解码好像涉及到了一个换行的问题,导致解码的私钥一直格式有问题,做题时候还是用其他工具来做把,不然一直提示load key error
漏洞利用
这里我们可以无密码运行另一个用户的脚本
而且这里提示我们要调试脚本。但是我们并没有写入的权限,怎么办呢?
这里需要敏锐的察觉到刚刚的py文件引入了一个包webbrowser,那么他的权限是怎么样的呢?
可写
且引入了os模块
直接追加一行代码使他运行时候切换到一个bash环境。
运行
这么做的原因我还不太清楚,这里是看别的wp。原理就是我们短暂切换用户去运行这个脚本,但运行过程中创造了一个bash环境。
提升权限
利用pip提权
总结
难度相对前面做的还是有的,不过还是比较常规可以接受的程度,少部分思路还是看了wp,通过这次学到了ssh私钥泄露还有加深了提权部分对一切可写权限的敏感。难度vulnhub给的medium但我觉得是简单到中等这个感觉