PG靶機 - Flu

一、初步偵察與服務識別

1.1 端口掃描

首先對目標主機 192.168.122.41 進行全端口掃描,以發現其上開放的網絡服務。

sudo nmap 192.168.122.41 -p- --min-rate=5000 -A


圖1: Nmap掃描結果,顯示開放22, 8090, 和 8091端口

掃描結果顯示,目標開放了三個端口:SSH (22)、HTTP (8090) 和另一個未知服務 (8091)。我們的攻擊重點將首先放在 8090 端口上運行的 Web 服務。

1.2 Web應用識別

我們優先訪問 http://192.168.122.41:8090 上的Web服務。通過檢查頁面頁腳的版權信息,可以明確識別出該應用為 Confluence,其版本號為 7.13.6


圖2: Web服務首頁,識別為Confluence 7.13.6

二、漏洞利用與初始訪問

2.1 歷史漏洞查詢

針對已識別的 Confluence 7.13.6 版本,我們進行公開漏洞庫查詢。很快,我們發現一個編號為 CVE-2022-26134 的遠程代碼執行(RCE)漏洞,該漏洞影響了多個Confluence 7.x 版本,包括目標正在使用的版本。


圖3: Confluence 歷史漏洞查詢結果

2.2 RCE漏洞利用

從 GitHub 上獲取針對 CVE-2022-26134 的公開漏洞利用腳本(EXP)。執行該腳本后,我們成功在目標服務器上獲得了反彈 shell,取得了對系統的初步訪問權限。


圖4: 成功利用EXP獲得反彈shell

檢查當前用戶身份和系統中的用戶列表,確認我們當前處于一個名為 confluence 的普通用戶權限下,這也是運行該Web服務的用戶。


圖5: 確認當前為普通用戶權限

三、本地信息收集與提權分析

3.1 發現可疑的備份腳本

獲得初始訪問權限后,我們在應用的根目錄下進行文件搜尋,試圖發現配置文件、憑證或其他可利用的信息。在此過程中,我們發現了一個名為 log-backup.sh 的shell腳本。


圖6: 在項目根目錄發現 log-backup.sh 腳本

從腳本名稱和內容推斷,其功能是將應用日志備份到 /root/logs 目錄下。值得注意的是,目標目錄位于 root 用戶的家目錄下,這意味著執行此腳本需要 root 權限。

3.2 提權路徑分析

檢查該腳本的文件權限,發現當前我們所處的 confluence 用戶對此腳本擁有寫入權限。


圖7: 檢查發現當前用戶對腳本有寫權限

基于以上兩點發現,一個清晰的提權路徑浮現出來:

  1. 腳本需要 root 權限才能成功執行。
  2. confluence 用戶可以修改該腳本內容。
  3. 這極有可能意味著系統存在一個以 root 身份運行的定時任務(Cron Job),用于周期性地執行此備份腳本。
3.3 驗證定時任務

為了驗證我們的猜想,我們將進程監控工具 pspy 上傳到目標服務器并執行。pspy 可以非侵入式地監控系統上的所有進程活動。很快,pspy 的輸出證實了我們的判斷:一個由 root 用戶啟動的定時任務每隔一段時間就會執行 log-backup.sh 腳本。


圖8: pspy監控到root權限的定時任務正在執行該腳本

四、利用定時任務實現權限提升

4.1 修改腳本并植入后門

既然提權路徑已經確認,我們便可以利用 confluence 用戶對腳本的寫權限,向其中植入提權命令。我們選擇的命令是為 /bin/bash 程序設置 SUID 位。當一個可執行文件被設置了 SUID 位后,任何用戶執行它時,都會臨時獲得該文件所有者(在這里是 root)的權限。

使用 echo 命令將提權代碼追加到腳本末尾:

echo 'chmod u+s /bin/bash' >> log-backup.sh
4.2 獲取Root權限

命令寫入后,我們只需等待下一次定時任務的觸發。當 root 用戶執行被我們修改過的 log-backup.sh 腳本時,我們的 chmod u+s /bin/bash 命令也會以 root 權限被執行。

稍等片刻后,我們執行 /bin/bash -p 命令(-p 參數用于在啟動bash時保持有效用戶ID,這是利用SUID的關鍵),成功獲得了一個 root 權限的 shell,完成了最終的提權。


圖9: 植入SUID后門,成功提權至root

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

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

相關文章

【Leetcode】隨筆

文章目錄題目一:路徑總和 II(LeetCode 113)題目分析:解題思路:示例代碼:代碼解析:題目二:顏色分類(LeetCode 75)題目分析:解題思路:示…

深入 FastMCP 源碼:認識 tool()、resource() 和 prompt() 裝飾器

在使用 FastMCP 開發 MCP 服務器時經常會用到 mcp.tool() 等裝飾器。雖然它們用起來很簡單,但當作黑匣子總讓人感覺"不得勁"。接下來我們將深入相關的源碼實現,別擔心,不會鉆沒有意義的“兔子洞”,你可以通過這篇文章了…

Spring Boot 2.0 升級至 3.5 JDK 1.8 升級至 17 全面指南

一、版本升級背景升級動機 Spring Boot 2.0 到 3.5 的重大更新(如Jakarta EE 9包路徑變更、GraalVM支持等)JDK 1.8 到 17 的語言特性升級(如sealed class、record等)安全性與性能優化需求升級目標 兼容性驗證依賴庫版本適配代碼兼…

級數學習筆記

級數學習筆記 一、數學基礎 1. 數項級數(Number Series) 數項級數是指形如: ∑(n1 to ∞) a? a? a? a? ...的無窮和。 1.1 收斂性判別法 比較判別法比值判別法根值判別法積分判別法萊布尼茨判別法(交錯級數) 2…

Linux811 YUM;SHELL:if else fi,for

vsftpdok [rootweb ~]# vim vsftpdok.sh 您在 /var/spool/mail/root 中有新郵件 [rootweb ~]# cat vsftpdok.sh rpm -ql vsftpd >/dev/null 2>&1 if [ $? -eq 0 ];then echo "OK" else yum install vsftpd -y if [ $? -eq 0 ];then echo "install o…

運維學習Day20——MariaDB數據庫管理

文章目錄MariaDB 數據庫管理介紹 MariaDB數據庫介紹數據庫種類關系數據庫MariaDB 介紹部署 MariaDB安裝 MariaDB加固 MariaDB連接 MariaDB配置 MariaDBMariaDB 中 SQL描述 SQL連接數據庫數據庫操作查詢數據庫列表使用數據庫創建數據庫刪除數據庫表操作環境準備查詢表查詢表列表…

itertools:迭代器函數

文章目錄一、合并和分解迭代器1、chain:首尾相接2、zip / zip_longest:對齊取數3、islice:切片4、tee:分裂二、轉換輸入1、map / starmap:函數映射三、生成新值1、count:生成連續整數2、repeat:…

【AI論文】序列標注任務廣義化研究(SFT廣義化):基于獎勵修正的強化學習視角

摘要:我們針對大語言模型(Large Language Model,LLM)的監督微調(Supervised Fine-Tuning,SFT)提出了一種簡單但具有理論依據的改進方法,以解決其與強化學習(Reinforcemen…

(已解決)Mac 終端上配置代理

說明:為了便于理解,本文描述略顯“抽象”與“潦草”,為了過審,僅供學習交流使用。🚀 簡潔流程版啟動工具 點擊圖標,復制它給出的終端命令將這段內容粘貼進你的配置文件中(~/.zshrc 或 ~/.bash_p…

Anti-Aliasing/Mip-NeRF/Zip-NeRF/multi-scale representation

前言 CSDN的文章寫太多,都不記得之前寫的有什么了,但習慣了在這里記錄,先寫上吧。關于multi-scale representation又是看著忘著,還是寫下點什么比較啊。時看時新,還是想吐槽自己看論文太不認真了。下面直接按照文章順序…

板塊三章節3——NFS 服務器

NFS 服務器 NFS 服務介紹 NFS 是Network File System的縮寫,即網絡文件系統,最早由Sun公司開發,**用來在UNIX&Linux系統間實現磁盤文件共享的一種方法。**它的主要功能是通過網絡讓不同的主機系統之間可以共享文件或目錄。NFS客戶端&…

數學建模——最大最小化模型

1.概念最大最小化模型(Maximin Model)是一種優化方法,旨在最大化最壞情況下的收益或最小化最壞情況下的損失。常見的現實問題有:求最大值的最小化問題最大風險的最低限度最小化最壞情況下的損失等2.一般數學模型 (找最大值里面最小…

【JAVA】使用系統音頻設置播放音頻

代碼直接可以運行 import javax.sound.sampled.*; import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets;public class SystemDefaultAudioPlayer {// 強制使用的通用音頻格式private st…

[CSP-J 2021] 小熊的果籃

題目 12代碼 #include <bits/stdc.h> using namespace std; const int N2e55; struct node{int pre,//上一個水果塊(對于水果就是上個水果)l,//塊開始的序號&#xff0c;左邊界 d,//塊類型&#xff0c;0/1id,//水果序號 r,//塊結束的序號&#xff0c;右邊界 next;//下一塊…

【C++】STL二叉搜索樹——map與set容器的基礎結構

目錄 前言 1.二叉搜索樹的概念 1.1基本結構 1.2性能分析 2.二叉搜索樹的實現 2.1創建 2.2插入 2.3查找與遍歷 2.4刪除 3.二叉搜索樹類代碼 前言 C中STL的map與set容器廣泛應用于實踐過程中&#xff0c;本文將詳細分析容器最基礎的二叉搜索樹結構&#xff0c;為后續map…

基于Spring Boot和SSE的實時消息推送系統

一、SSE技術深度解析 1.1 協議工作原理 #mermaid-svg-u7ZBlEsXcn68R5a8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-u7ZBlEsXcn68R5a8 .error-icon{fill:#552222;}#mermaid-svg-u7ZBlEsXcn68R5a8 .error-text{fi…

Day 40 訓練和測試的規范寫法

知識點回顧&#xff1a; 彩色和灰度圖片測試和訓練的規范寫法&#xff1a;封裝在函數中展平操作&#xff1a;除第一個維度batchsize外全部展平dropout操作&#xff1a;訓練階段隨機丟棄神經元&#xff0c;測試階段eval模式關閉dropout 作業&#xff1a;仔細學習下測試和訓練代…

分析代碼并回答問題

代碼 <template><div>Counter: {{ counter }}</div><div>Double Counter: {{ doubleCounter }}</div> </template><script setup lang"ts"> import { ref, computed } from "vue";const counter ref(0);const …

在macOS上掃描192.168.1.0/24子網的所有IP地址

在macOS上掃描192.168.1.0/24子網的所有IP地址&#xff0c;可以通過終端命令實現。以下是幾種常用方法&#xff1a; 使用ping命令循環掃描 打開終端執行以下腳本&#xff0c;會逐個ping測試192.168.1.1到192.168.1.254的地址&#xff0c;并過濾出有響應的IP&#xff1a; for i …

Java基礎05——類型轉換(本文為個人學習筆記,內容整理自嗶哩嗶哩UP主【遇見狂神說】的公開課程。 > 所有知識點歸屬原作者,僅作非商業用途分享)

Java基礎05——類型轉換 類型轉換 由于Java是強類型語言&#xff0c;所以要進行有些運算的時候&#xff0c;需要用到類型轉換。 如&#xff1a;byte(占1個字節)&#xff0c;short(占2個字節)&#xff0c;char(占2個字節)→int(4個字節)→long(占8個字節)→float(占4個字節)→do…