Proving Grounds Play : DC-2 Walkthrough

 Proving Grounds Play : DC-2 Walkthrough


Foothold :

  • 80 網站是一個 WordPress,透過 wpscan 爬出使用者帳號
  • wordpress 網站告知你使用 cewl 去產生密碼檔
  • SSH 爆破出一名使用者的憑證,後續 SSH 登入但是是限制的 rbash
  • 使用 help 發現可以執行 vi,直接用 vi 編輯 local.txt 獲得第一階段的 flag

PE :

  • 參考 GTFO 發現 vi 可以跳脫 shell,依據方式輸入後成功跳脫
  • 跳脫後呼叫 /bin/bash,然後自行重新定義 PATH 並呼叫
  • 依據系統的 flag 提示成功切換使用者( 使用者的密碼透過 WordPress 爆破出來 )
  • sudo -l 發現 git 可以使用,參考 GTFO 標準利用後成功 root


第一步 Rustscan,└─$ rustscan -a 192.168.230.194 --scripts none --ulimit 5000 | tee rustscan



snmp check



nmap



whatweb



add DC-2 to hosts file and whatweb again --> WordPress 4.7.10



└─$ wpscan --url http://dc-2 -e vp --plugins-detection mixed --api-token <API_TOKEN>



wpscan check user,wpscan --url http://dc-2 --enumerate u

User List : admin、jerry、tom



編輯使用者名單與快速密碼破解檔嘗試 7744 SSH 暴力破解

└─$ hydra -L ./usernames.txt -P ./fasttrack.txt ssh://192.168.230.194 -s 7744 -V



Burp Suite and 快速密碼檔破解 wp-admin



gobuster



都破解不了,開網頁看看結果在 http://dc-2/index.php/flag/ 告訴你要用 cewl



做一個 cewl.txt 的檔案,看來僅有 165 筆



hydra 先測試 SSH,└─$ hydra -L ./usernames.txt -P ./cewl.txt ssh://192.168.230.194 -s 7744 -V

破解出 tom:parturient


SSH 進去了,但甚麼指令都沒有用,看得到 flag 但讀不了



使用了 -t "bash --noprofile" & -t "sh --noprofile" 都告知沒有 bash & sh 指令可以使用

那就先 help 看一下相關指令,看看甚麼可以查可以使用的指令



有 echo 那就使用 echo $PATH 看看載入哪個命令檔

發現是 /home/tom/usr/bin

接著 ls 看一下內容有提供那些指令



vi local.txt 得到第一段 flag




另外網頁的後半段很有意思



該路徑下有另外一個檔案是 flag3.txt,一樣 vi 看一下內容

可憐的 tom 老是追著 jerry 跑,也許他應該 su ......




測試了一番沒有 su 指令



後來在 GTFO 發現除了常用的 SUID、SUDO 等,在 vi 底下有個 shell

告訴我們可以透過 vi 產生互動式系統 shell 來突破受限環境



使用方式 (b),輸入 vi 後進入編輯畫面,然後輸入 :set shell=/bin/sh 再按 ENTER



接著輸入 :shell 再按 ENTER 後會跳回 command 介面


這時候就可以呼叫 /bin/bash

接著看一下現有的 $PATH,"echo $PATH" 是 /home/tom/usr/bin 有限制的 shell

直接重新定義 PATH

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"

然後載入 PATH,"echo $PATH"

測試原本不能用的 cat 這時候就可以用了,表示我們跳脫了原本限制的 shell

使用了自己定義的 shell



這時候再使用 su jerry (跟著 jerry 跑.....),輸入 whoami & id 確認現在已經成功切換到 jerry



PS : 使用 su jerry 的時候要輸入 jerry 的密碼,怎麼來的呢?

在密碼爆破的時候沒有查到 jerry 的密碼,原因是 jerry 不允許 ssh 登入所以查不到

但另外有透過 Wordpress 測試到 jerry:adipiscing 是有效的憑證

看來網頁上 Log in as one to see the next flag. If you can’t find it, log in as another.

那句話的意思有多層涵義



切換到 jerry 的 home 目錄,發現另外一個 flag4.txt 的檔案,內文顯示得有點機車如下

很高興看到你已經做到了這一步 - 但你還沒到家。

您仍然需要獲得最終標誌(唯一真正重要的標誌!!!)。

這裡沒有任何提示──你現在只能靠自己了。 :-)

繼續 - 離開這裡! !



開始 PE 吧,cat /etc/passwd,可以看到 tom 被限制的 rbash



cat /etc/crontab



sudo -l 可以使用 git



參考 GTFO,有好多種提權的方式



測試到第二種就成功 root

  • sudo git -p help config
    !/bin/sh


輸入 sudo git -p help config 會進入到 git 的說明頁面,接著輸入 !/bin/sh 就成功 root 了




留言

這個網誌中的熱門文章

Challenge 0 - Secura(2)

Challenge 0 - Secura(1)

Challenge 8 - Poseidon(0)