Prime1 - 提权的另一种解法,彻底搞懂OpenSSL解密渗透提权,超强思路版。

本文主要是介绍Prime1 - 提权的另一种解法,彻底搞懂OpenSSL解密渗透提权,超强思路版。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

提权枚举

现在我们直接从低权限用户开始;我们先按照提权步骤,简单的系统枚举

虽然我们知道可以利用系统版本低进行内核提权,内核提权虽然比较快比较方便,但也比较暴力,缺点非常明显;很容易导致系统服务中断,或者不稳定

  • 打比赛除外,你打比赛只要拿到flag得分都行

image-20240601231010996

列出账号具有的权限

执行enc,可以用root权限执行,不需要密码

image-20240601231301368

ENC探索与查找

image-20240601231426308

使用strings是否能看一下enc的内容;同样是没有权限的

image-20240601231632059

使用file enc
enc: executable, regular file, no read permission

他说这是个可执行的不可读权限文件

我们运行enc,需要密码;尝试了password.txt与user.txt都不行image-20240601232213214

  • 新的知识点openssl

此处应该是另一种思路寻找enc的泄露密码;根据经验,存放密码应该是系统备份的位置

我们这个权限应该是有很多报错的,将报错扔掉

find / -name '*back*' 2>/dev/null

后来我实验发现删不删报错都一样,应该是系统不支持的问题,因为页面一闪而过,我们对结果数据进行排序

,再做个less分屏显示;貌似没多大卵用;

我们在搜集过程中要么用backup要么用pass,为什么不用password,因为后边他写的是wd还是word就不清楚;如果我们搜bak就太多了

find / -name '*backup*' 2>/dev/null | sort | less

搜集一下信息吧;

/opt/backup
/opt/backup/server_database/backup_pass

/var/backups

image-20240601233252265

image-20240601233350693

将这个三个地方都看一下;嗯,试了下/var/backups,有passwd的备份,但是没有权限去读,shadow也是相同,sudo下看能不能cp到/tmp目录下;不行,再看其他文件有无信息;

你的密码为了enc,backup_password;然后祝福我们

image-20240601234112410

找的过程非常顺利,主要是怎么搜索,查找的时候用引号将关键词,用的backup查找,也可以用pass,避免信息洪水,把错误信息扔掉,还有排序,less使用

ENC破解

运行enc,输出了good;image-20240601234853850

有两个文件貌似无权显示,加个sudo再尝试下;

好的,这样就出来了

image-20240601235133845

cat;一个像base64,一个说我们是ippsec的粉丝,将ippsec字符串转成md5哈希形式,用它获得真实自己

image-20240601235216525

md5格式生成

echo -n 'ippsec' |md5sum

-n 不输出尾随换行符

都是固定格式,不会就自己查资料,要么是–help

要么是man 命令

image-20240602000015099

如果不用n;看一下;这个结果完全是不一样的

一定要知道,如果只是视觉上来看,或者文本标异的话那就不需要;如果设计到字节级操作,那就要考虑到

image-20240602000052873

美化下md5生成的值,echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1}'

awk是个文本编辑器,-F 是指定靠什么字符进行分割,第一第二分别是$1、$2、…

366a74cb3c959de17d61db30591c39d1

image-20240602000638553

openssl破解语句

看红队笔记才知道给的编码是openssl加密解码的,通过key.txt解出enc.txt的内容;后来才了解到,openssl解密后跟enc,怪不得这个思路没走,现在知道就得记住了

enc与openssl是捆绑的,

解密是-d 因为里面有base64编码,

我们还要解64编码-a 64位,

-k 指定上一步生成的md5


构造Cipher数据

这个是假如我们不知道base64编码(因为编码有很多,下次可能就是不认识的编码)解决的方法

openssl --help将编码复制到文件里进行整理

image-20240602002304784

我们用awk全局替换所有空格替换成回车键进行打印

  • gsub 替换
  • wc -l 行计数
  • uniqc 取唯一
awk '{gsub(/ /,"\n");print}'   cipher | sort | uniq | wc -l

整理完之后就可以把这些重定向到cipher里面

awk '{gsub(/ /,"\n");print}' cipher | sort | uniq > ciphers

cat

image-20240602004020030

这个做完之后掉头继续做openssl破解语句,看openssl enc --help说明-k怎么使用

image-20240602004557419

那我们还需要对md5进行echo值进行修改,那我们直接在输出修改语句吧

od 是linux系统命令,用man去查,

转储文件以8进制

image-20240602004924485

  • -A是根 不需要指定任何类型那就是n
  • -t x1
echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1}' | od -A n -t x1

image-20240602005553963

多了一个字符0a,再对oa去掉

tr -d 去掉任何换行符

echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1}' | tr -d '\n' | od -A n -t x1

image-20240602005812718

那现在还要进行修剪,

echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1}' | tr -d '\n' | od -A n -t x1 | tr -d '\n' | tr -d ' '

image-20240602010012159

这个才是我们需要的,指定给key的

3336366137346362336339353964653137643631646233303539316333396431

for循环成功执行

们可以构造bash脚本,写一个for循环,将CipherTypes中的每一行替换为上述命令中的-cipher,bash脚本如下:

for cipher in $(cat ciphers);do echo 'nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=' | openssl enc -d -a -$cipher -k 3336366137346362336339353964653137643631646233303539316333396431;done

image-20240602011705311

密码为tribute_to_ippsec,很可能就是saket的ssh密码

image-20240602011859307

直接进入了ssh;提高交互性

python -c 'import pty;pty.spawn("/bin/bash")'

提权

给了提示信息,他说可以让我们执行此文件

/home/victor/undefeated_victor

image-20240602012133055

如果你能打败我,那就在你面前挑战我;/challenge: 未找到

那我们就写入内容

image-20240602012432567

那我们继续执行/bin/bash追加到challenge

对文件加执行权限,再次运行提示的程序,可以看到提权成功

这个靶机openssl思路也是解决了

eated_victor

如果你能打败我,那就在你面前挑战我;/challenge: 未找到

那我们就写入内容

那我们继续执行/bin/bash追加到challenge

对文件加执行权限,再次运行提示的程序,可以看到提权成功

这个靶机openssl思路也是解决了

image-20240602012721851
目前红队打靶就就更新到这里吧,要去忙其他的事情了,记录下红队视频的记录
https://www.bilibili.com/video/BV1ue4y1S7Zm?t=2.6
该去复习蓝队知识备战护网了,还需要保持学业期末成绩不挂科,之后再进行专升本的学习,真的是突然发觉时间不够用了,来年再见此期红队打靶更新吧!!!

这篇关于Prime1 - 提权的另一种解法,彻底搞懂OpenSSL解密渗透提权,超强思路版。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1023727

相关文章

Windwos +vs 2022 编译openssl 1.0.2 库

一 前言 先说 结论,编译64位报错,查了一圈没找到解决方案,最后换了32位的。 使用qt访问web接口,因为是https,没有openssl库会报错 QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());if (reply){if (reply->error() == QNetworkReply::NoError

ScrollView 往上滑动,里面的一个View停在某个位置的思路

1.scrollView的contentoffset 为view的左上角,减去此时scrollView的左上角 2.而且还不需要让那个红色的view removeFromSuperView ,直接self.view AddSubView 就会自动从原来的那个View脱离开来 3.以后遇到问题的思路。当发现UIView很许多奇特的效果的时候,思考它是不是在不断的改变父控件。 #pragma m

49-1 内网渗透 - Bypass UAC介绍

一、Bypass UAC         用户账户控制(UAC)是Windows操作系统的一种安全机制,旨在防止未经授权的应用程序自动安装并防止非授权修改系统设置。它确保应用程序和任务通常在非管理员账户的安全上下文中运行,除非明确需要管理员权限,用户才会被提示确认。         对于非RID 500的管理员用户(除了内置的Administrator账户),当他们登录时,系统会为其分配两个访

Go 三色标记法:一种高效的垃圾回收策略

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO系列: 记录博主学习GO语言的笔

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇Kerberos委派安全RBCD资源Operators组成员HTLMRelay结合

基于资源的约束委派(RBCD)是在Windows Server 2012中新加入的功能,与传统的约束委派相比,它不再需要域管理员权限去设置相关属性。RBCD把设置委派的权限赋予了机器自身,既机器自己可以决定谁可以被委派来控制我。也就是说机器自身可以直接在自己账户上配置msDS-AllowedToActOnBehalfOfOtherIdentity属性来设置RBCD。 所以核心就是谁或什么权限能修改

LSSS算法实现,基于eigen和pbc密码库【一文搞懂LSSS,原理+代码】

文章目录 一. LSSS简介1.1 概述1.2 线性秘密分享方案(LSSS)与 Shamir的秘密分享方案对比LSSS1.2.1 Shamir的秘密分享方案1.2.2 线性秘密分享方案(LSSS)1.2.3 主要区别 二. 基于矩阵的LSSS加解密原理分析2.1 LSSS矩阵构造2.1.1 定义2.1.2 规则 12.1.3 规则 22.1.4 规则 32.1.5 形成线性共享矩阵M 2.

嵌入式linux系统中LCD屏驱动实现思路分析

在 Linux 下 LCD 的使用更加广泛,在搭配 QT 这样的 GUI 库下可以制作出非常精美的 UI 界面。接下来就来学习一下如何在 Linux 下驱动 LCD 屏幕。                           第一:Framebuffer设备简介       先来回顾一下裸机的时候 LCD 驱动是怎么编写的,裸机 LCD 驱动编写流程如下: ①、初始化 I.MX6U

2025秋招NLP算法面试真题(二)-史上最全Transformer面试题:灵魂20问帮你彻底搞定Transformer

简单介绍 之前的20个问题的文章在这里: https://zhuanlan.zhihu.com/p/148656446 其实这20个问题不是让大家背答案,而是为了帮助大家梳理 transformer的相关知识点,所以你注意看会发现我的问题也是有某种顺序的。 本文涉及到的代码可以在这里找到: https://github.com/DA-southampton/NLP_ability 问题

力扣刷题 杨辉三角(使用c++ vector解法)

杨辉三角 题目描述示例1示例2提示:代码 题目描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例1 输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例2 输入: numRows = 1

【论文复现|智能算法改进】一种基于多策略改进的鲸鱼算法

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 SCI二区|鲸鱼优化算法(WOA)原理及实现【附完整Matlab代码】 2.改进点 混沌反向学习策略 将混沌映射和反向学习策略结合,形成混沌反向学习方法,通过该方 法生成鲸鱼算法的初始种群。混沌序列采用 Tent 混沌映射: x i + 1 = { δ x i 0 < x i < 0.5