Vulnhub中的Lupinone
# 前言
新的一周,感谢师傅们的支持鼓励,感谢大佬们的讲解,另外,久坐无益,起来活动活动。继续卷起来!
# 信息收集
很意外,这回也没有改网卡。于是思路回归到扫描IP上。
nmap扫描一下端口。
发现有22,80两个端口,进去看看。
发现是个图片。联想到之前的图片隐写,用binwalk -e 进行拆分,在折腾了一圈之后发现是我想多了。
binwalk解压出来两个文件,分别是29,29.zlib。
29乱码,用hexdump -c 29.zlib查看29.zlib文件发现有个78 da 开头的文件。
利用py解码发现也行不通。
思路断了,于是重新梳理一下现有的线索,目前已知IP和端口,应该扫描一下后台试试。
存在robots.txt,那还是要看看的。
发现一个disallow,路径是/~myfiles,拼接上发现:
哈???
顺手查查源代码。
你能做到,继续尝试。???嗯???嗯????好像哪里不太对。问了大佬,大佬说fuzz一下。
ffuf -w /usr/share/wfuzz/wordlist/general/common.txt -u http://192.168.117.159/~FUZZ
其中,-w是指定使用的字典,-u是url,为什么会有~呢?因为前面的目录是~myfile,FUZZ是用来暴破的位置。
扫完发现一个secret,拼接上是http://192.168.117.159/~secret
它说啊,它要创建ssh私钥文件,这个文件被藏起来了,解开之后的密码用于认证。你最好的朋友icex64。谁最好的朋友叫这名啊,还x64,咋不x86呢?
既然是个文件,在经过不断尝试之后,发现确实存在一个.txt的文件,打开发现是加密的。
ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-mdeium.txt -u http://192.168.117.159/~secret/.FUZZ.txt
url拼上之后是http://192.168.117.159/~secret/.mysecret.txt
访问之后发现这段加密的方式是base58。 //我也是第一次听说
echo '要解码的字符' | base58 --decode
# 渗透测试
使用vim 把这一串复制到一个新建的文档里并命名为key。
利用kali自带的python脚本转换成keyhash。
python2 /usr/share/john/ssh2john.py key > keyhash
瞅一眼里面是什么样子。 //单纯好奇,反正也看不懂。
john keyhash --wordlist=/usr/share/wordlists/fasttrack.txt
利用john工具算一下,得到密码为P@55w0rd!。 //就是那个passphrase
遇到一个小坑,在使用key进行连接时,始终出现error in libcrypto,想了想应该是key文件出现了问题,检查之后发现复制的时候结尾处增加了许多空格,删除之后就连接上了。
# 水平越权
照例查一下id,pwd,sudo -l,发现存在python3.9 和heist.py两个不需要密码的文件。查看heist.py之后发现调用了webbrowser。
同时在目录中发现了其它有趣的文件。
它说重点在secret文件里。查看一下文件发现没有权限。
那目标就很明显了,拿下arsene的权限。没思路,于是回到heist.py上。哦,对,icex64的flag在目录下。
利用find 命令查找webbrowser相关的文件。
在文件中添加代码。
os.system("/bin/bash")
sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py
执行heist.py文件之后发现越权成功。
那刚才看不了的文件自然要看一看。
是个密码,还挺难记。不是,我都越权了我还要什么密码????
# 提权
事到如今,还差root权限没有拿到。不能放弃哦!照例查看一下有没有不需要密码可执行的操作。
pip应该都不陌生了,pip3 -m install 用来安装的。那接下来的思路是:在当前路径下创建setup.py文件,里面写入想运行的python脚本,如反弹shell,然后利用pip install以root权限执行。
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > setup.py
又一个坑,习惯是用vim 写一个py,但是执行之后发现报错,在大佬的提示下发现利用echo的方式写入文件可以执行。看来编程功力还是需要提高。
# 总结
简直是没有尝试过的“船新思路”,一开始以为利用密钥进行ssh连接就可以不需要密码,另外又巩固了一下fuzz目录的操作,但是最重要的两个点还是在水平越权和提权上面,一来是调用的py文件增加os.system("/bin/bash"),另一个是写入新文件进行提权。总之,感谢大佬指导,未来一定成为大佬,超越大佬,卷死大佬!哼!