Skip to content

Latest commit

 

History

History
177 lines (91 loc) · 6.09 KB

File metadata and controls

177 lines (91 loc) · 6.09 KB

Pickle Rick

前情提要

由於這一題的需求比較不像是一般拿 user.txtroot.txt 那樣的 Pentesting 類型,所以這題我額外寫了一段題目前情提要,以下是題目說明

This Rick and Morty themed challenge requires you to exploit a webserver to find 3 ingredients that will help Rick make his potion to transform himself back into a human from a pickle.

Deploy the virtual machine on this task and explore the web application: MACHINE_IP

You can also access the web app using the following link: https://MACHINE_IP.p.thmlabs.com (this will update when the machine has fully started)

總而言之,Rick and Morty (和前面那題一樣也是一個梗) 中的 Rick 因為一些原因變成酸黃瓜,需要我們找 3 個原料讓他恢復回人類,然後題目明確表示了一個網址 (代表有網頁服務可以打且應該是重點)

滲透過程

首先拿到機器 IP 10.10.191.33,先用 ping 確認機器活著

ping 10.10.191.33

接著使用 nmap 掃有開哪些 port

nmap -v -sV -p- --min-rate 5000 10.10.191.33

可以看到基本上只有 port 22 (ssh) 和 80 (http)

順便也把網頁打開看看

基本上也就是題目敘述,沒甚麼特別的

基本確認了有網頁服務之後,嘗試使用 gobuster 掃描有哪些子目錄

gobuster dir -u 10.10.191.33 -w /usr/share/seclists/Discovery/Web-Content/common.txt

可以看到,除了最基本的 index.html 之外,也看到了 /assets/robots.txt endpoint

/assets/ 中,可以看到一些檔案,但是仔細檢查過沒有特別的東西

而在 robots.txt 中,可以看到一個 Wubbalubbadubdub 的字串,看起來毫無意義

而目前看起來完全沒有有用的東西,因此我繼續進行 recon

而在 recon 的過程中,在網頁首頁 (/) 的網頁原始碼中發現了看起來疑似是使用者名稱的東西

得到一使用者名稱為 R1ckRul3s,不過不知道用在哪裡

根據上一題的經驗,可以用 hydra 搭配字典檔來破解 ssh 密碼,因此我假設這是這台機器的 ssh 帳號 (別忘了我們有 ssh 服務開著),並嘗試使用此工具進行破解,但發現這台機器 ssh 竟然使用 pubkey 而非 password 的方式來驗證,因此這條路線行不通

hydra -l R1ckRul3s -P ~/Desktop/temp/rockyou.txt ssh://10.10.191.33

後來一直找不到突破口,因此去翻了一下其他人的 writeup,發現是因為接下來步驟的網頁 endpoint login.php 不在 gobuster 工具搭配的 common.txt 字典檔裡面,而改用 dirsearch 工具就能找到

以下是 dirsearch 工具的掃描結果

python ./dirsearch/dirsearch.py --url http://10.10.191.3

因此我們也找到了登入頁面 login.php

因為這裡我們沒有密碼,因此我在這邊的想法是是不是使用 sqlmap 之類的工具來做 sql injection,但似乎找不出可以 injection 的部分

sqlmap -u http://10.10.191.33/login.php -a -v --data="username=R1ckRul3s&password=a&sub=Login"

而後我也查詢有關 hydra 破解 http 的相關資訊 [1] [2],也確實查到了有辦法達成,以下是我爆破的 payload

hydra -l R1ckRul3s -P ~/Desktop/temp/rockyou.txt 10.10.191.33 http-post-form "/login/php:username=R1ckRul3s&password=^PASS^&sub=Login:Invalid username or password."

而在爆破的同時我也參考前面的 writeup 看說我的方向是否正確,而發現原來前面找到的 /robots.txt 中看起來像是無意義字串的東西其實就是密碼

因此我們得到密碼為 Wubbalubbadubdub

登入成功後,進到頁面 portal.php,而得到一個輸入框,看起來能打指令

輸入指令 id,確認目前身分

輸入指令 ls -al,查看目前目錄有什麼東西

可以看到有奇怪文件 Sup3rS3cretPickl3Ingred.txtclue.txt,嘗試進行讀取

cat Sup3rS3cretPickl3Ingred.txt

可以發現輸入有做黑名單的 waf,推測應該是 cat 指令,因此使用一些特殊方法來繞過

c''at Sup3rS3cretPickl3Ingred.txt

得到我們第一個原料 mr. meeseek hair

而接下來看 clue.txt

c''at clue.txt

看起來是要我們在其他路徑找原料

經過一番查找後,在 /home/rick 目錄下找到神秘文件 second ingredients

查看內容,要注意因為檔案中有空白的關係,所以需要雙引號包起來

c''at "/home/rick/second ingredients"

第二個原料是 1 jerry tear

既然第二個原料在 user 目錄下,想必第三個原料是在 root 下,但 root 目錄只有 root 才能看阿,所以想必這邊需要進行提權

而參考了前面說的那篇 writeup,發現雖然用 id 來看我們沒有 sudo 權限,但使用指令 sudo -l 發現我們能在完全不用密碼的情況下執行任何指令,因此我們也算是有 sudo 權限可以使用

為了確認我們確實有獲得 root 身分,輸入指令 sudo id

我們確實拿到 root 身分

因此我們能查看 /root 資料夾的內容

sudo ls -al /root

看到第三個原料的檔案 3rd.txt

取得內容

sudo c''at /root/3rd.txt

第三個原料就是 fleeb juice

至此我們已經拿到這台機器的所有權限

總結

  • 原料 1: mr. meeseek hair
  • 原料 2: 1 jerry tear
  • 原料 3: fleeb juice