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
該去復習藍隊知識備戰護網了,還需要保持學業期末成績不掛科,之后再進行專升本的學習,真的是突然發覺時間不夠用了,來年再見此期紅隊打靶更新吧!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20747.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20747.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20747.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【云原生】Kubernetes----POD控制器

目錄 引言 一、Pod控制器概述 二、Pod控制器的種類 (一)ReplicaSet (二)Deployment (三)StatefulSet (四)DaemonSet (五)Job 三、使用POD控制器 &a…

【Seafile】Seafile容器版文件刪除后存儲空間不釋放問題解決

Seafile是一款非常優秀的網盤系統,我們可以根據官方文檔,在本地虛擬機研究Seafile免費版的安裝和使用,安裝建議采用使用docker容器的方式。 不過在使用過程中,剛接觸的小伙伴可能會遇到這樣的問題: 刪除網盤里面的文…

數據賦能(106)——方法論:描述模式與AI——批量處理

在一系列相似的主題內容進行編寫時,可以采用批處理的方式。主要步驟如下: 1、確定主題內容模式。如:各個主題的概述中,包括如下內容模式項目:工作主要目的、工作重要性、工作核心內容、工作本質 2、確定模式的各項內…

C++設計模式-狀態模式

文章目錄 28. 狀態模式 運行在VS2022,x86,Debug下。 28. 狀態模式 狀態模式讓一個對象的行為隨著內部狀態的改變而改變,而該對象也像換了類一樣。應用:如在游戲開發中,游戲有不同場景,如主菜單、開始、戰斗…

在leafet上畫圓、多邊形、線、矩形

在leaflet上畫圓、多邊形、線、矩形 <template><div id"map" class"map"></div> </template><script> import L from leaflet; export default {data () {return {myGroup: ,};},mounted () {this.initMaps()this.huizhiro…

Houdini的PythonScript基本使用

前言 Houdini內置了Python腳本和相應的編輯器, 很多時候想靈活的制作各種Houdini工具, 基本是必須用到 Python。Houdini官方的python提供了非常完善的接口, 比如可以創建各種節點&#xff0c;連接各種節點&#xff0c;遍歷節點各種數據&#xff0c;遍歷節點參數等等。 Houdin…

Spring中Bean的生命周期詳解

目錄 Bean的定義和作用Bean的生命周期概述Bean實例化階段依賴注入階段初始化階段Bean的使用銷毀階段完整的Bean生命周期流程示例代碼總結 Bean的定義和作用 在Spring框架中&#xff0c;Bean是指由Spring IoC容器管理的Java對象。Bean是構建Spring應用程序的基本單元&#xf…

word避免畫質畫質模糊方法

問題描述&#xff1a; ??近期寫文檔時會高頻率貼圖&#xff0c;粘圖過程中發現Word會自動壓縮圖片畫質&#xff0c;而且壓縮得很嚴重&#xff0c;下面是一幅圖被壓縮前后的畫質對比 &#xff08;圖片壓縮前&#xff09; &#xff08;圖片壓縮后&#xff09; 解決方案&#x…

基于JSP的九宮格日志網站

你好呀&#xff0c;我是學長貓哥&#xff01;如果有需求可以文末加我。 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;JSP技術 工具&#xff1a;瀏覽器/服務器&#xff08;B/S&#xff09;結構 系統展示 首頁 管理員功能模塊 用戶功能模塊 摘要 本…

GPT-4o VS GPT-3.5 完勝

前言&#xff1a; 最近&#xff0c;GPT-4o已經限時免費開放了&#xff0c;試了一下&#xff0c;然后&#xff0c;說我的時間到了&#xff0c;然后&#xff0c;有給我轉到3.5&#xff0c;正好遇到一個問題做一下對吧&#xff0c;感覺4O完勝啊。3.5還是很好胡謅&#xff0c;也就…

[Algorithm][動態規劃][子序列問題][最長定差子序列][最長的斐波那契子序列的長度]詳細講解

目錄 1.最長定差子序列1.題目鏈接2.算法原理詳解3.代碼實現 2.最長的斐波那契子序列的長度1.題目鏈接2.算法原理詳解3.代碼實現 1.最長定差子序列 1.題目鏈接 最長定差子序列 2.算法原理詳解 思路&#xff1a; 確定狀態表示 -> dp[i]的含義 以i位置元素為結尾的所有子序列…

Python知識點3---條件判斷語句

提前說一點&#xff1a;如果你是專注于Python開發&#xff0c;那么本系列知識點只是帶你入個門再詳細的開發點就要去看其他資料了&#xff0c;而如果你和作者一樣只是操作其他技術的Python API那就足夠了。 Python的條件判斷語句和其他的語言有些不一樣&#xff0c;它只有if語…

【從加載數據庫驅動包,理解java SPI】

SPI&#xff08;Service Provider Interface&#xff09; 從1.6引入&#xff0c;基于ClassLoader 來加載并發現服務的機制 對于msyql驅動 引入依賴 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><v…

11.2 選擇排序

目錄 11.2 選擇排序 11.2.1 算法特性 11.2 選擇排序 選擇排序&#xff08;selection sort&#xff09;的工作原理非常簡單&#xff1a;開啟一個循環&#xff0c;每輪從未排序區間選擇最小的元素&#xff0c;將其放到已排序區間的末尾。 設數組的長度為 &#x1d45b;…

華東師范大學研究團隊《Ecology Letters 》揭示植物如何改變其物候以響應全球變化

自工業革命以來&#xff0c;人類活動導致多種環境因子同時發生變化&#xff0c;包括氣候變暖、降水模式改變、氮沉降增加和大氣CO2升高。這些變化預計會影響植物生命周期事件的季節時序—植物物候&#xff08;Nature Reviews Earth & Environment | 傅伯杰院士團隊發文闡述…

[C][棧幀]詳細講解

目錄 1.棧幀1.進程地址空間2.棧幀說明 2.認識相關寄存器3.認識相關匯編命令4.過程理解5.棧幀總結6.補充 1.棧幀 1.進程地址空間 .進程地址空間 2.棧幀說明 調用函數&#xff0c;形成棧幀函數返回&#xff0c;釋放棧幀局部變量是存放在棧區上的棧區內存的使用習慣是&#xff…

BPTT算法詳解:深入探究循環神經網絡(RNN)中的梯度計算【原理理解】

引言 在深度學習領域中&#xff0c;我們經常處理的是獨立同分布&#xff08;i.i.d&#xff09;的數據&#xff0c;比如圖像分類、文本生成等任務&#xff0c;其中每個樣本之間相互獨立。然而&#xff0c;在現實生活中&#xff0c;許多數據具有時序結構&#xff0c;例如語言模型…

什么是PLAB?

接上文PLAB---》 可以看到和TLAB很像&#xff0c;PLAB即 Promotion Local Allocation Buffers。用在年輕代對象晉升到老年代時。 在多線程并行執行YGC時&#xff0c;可能有很多對象需要晉升到老年代&#xff0c;此時老年代的指針就"熱"起來了&#xff0c;于是搞了個…

Google Cloudbuild yaml file 中 entrypoint 和 args 的寫法

編寫cloudbuild.yaml 時有幾個關鍵參數 entrypoint 和 args 的基本介紹 id: 顯示在 cloud build logs 里的item 名字 name: docker 鏡像名字 - 下面的命令會在這個鏡像的1個容器instance 內執行 entrypoint: 執行的命令入口 &#xff0c; 只能有1個對象 args&#xff1a; 命名…

函數的創建和調用

自學python如何成為大佬(目錄):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 提到函數&#xff0c;大家會想到數學函數吧&#xff0c;函數是數學最重要的一個模塊&#xff0c;貫穿整個數學學習過程。在Python中&#xff0c;函數…