Skip to content

Latest commit

 

History

History
203 lines (115 loc) · 6.15 KB

File metadata and controls

203 lines (115 loc) · 6.15 KB

Cyborg

取得 initial shell

首先拿到 ip 10.10.194.168,並確認機器已上線

ping 10.10.194.168

使用 nmap 工具,掃瞄有哪些服務開啟

nmap -v 10.10.194.168

nmap -v -sV -p- -sC --min-rate 5000 10.10.194.168

可以看到,只有開了 ssh 及 http 服務,而版本上應該是沒有漏洞

22      ssh     openssh 7.2
80      http    apache 2.4.18

既然有 http 服務,那可以用瀏覽器打開看一下,但可以發現出現的是 apache 的預設畫面

接著使用 dirsearch 及 gobuster 工具掃瞄有哪些特殊的目錄

dirsearch --url http://10.10.194.168/

gobuster dir -u http://10.10.194.168/ -w /usr/share/seclists/Discovery/Web-Content/common.txt

可以看到發現了以下三個子路徑,而其中的 index.html 是前面看到的 apache 預設頁面

/admin/
/etc/
/index.html

/admin 頁面中,可以看到似乎是一個自我介紹的網頁,而其中大部分的連結是沒有用的,但可以發現到索引列中的 AdminsArchive 下拉選單中的 Download 有實際作用

點選 Admins 後會進到 /admin/admin.html 的路徑,裡面是一段對話,但字太多我懶得看

而點選 Download 按鈕後,會下載一個 archive.tar 檔案,稍後來看看

而在剛才發現的另一個路徑 /etc/ 中,可以看到似乎是一個檔案伺服器的頁面,裡面有一個資料夾 squid

點進去資料夾後,發現有兩個檔案 passwdsquid.conf

squid.conf 裡面有一些設定,但是看起來沒什麼意思

passwd 看起來有意思多了,似乎是密碼的 hash

下載後,嘗試使用 john 進行密碼破解,破解出使用者 music_archive 的密碼為 squidward

john --wordlist=~/Desktop/temp/rockyou.txt passwd

原先我猜測是給 ssh 的使用者登入使用,但經嘗試發現似乎不是用在這邊

回去發前面發現的 archive.tar,發現在 home/field/dev/final_archive/ 目錄下有一個 README 的檔案,閱讀後發現他提示這是一個 Borg Backup 的 repository,並好心的附了官網的連結

稍微翻了一下後,發現主要有兩章比較相關。首先第一個是 Passphrase notes 這部分,說明了一個 backup 可以使用密碼加密,而剛剛得到的密碼很有可能就是用在這邊

而另一個比較有用的章節是 Restoring a backup,告訴說如何復原一個 backup,而這邊我使用的是 extract 的方法

首先使用 borg list 列出當前 repository 的名稱,這邊輸入前面發現的密碼

borg list home/field/dev/final_archive/

接著對該 repository 讀取裡面的檔案目錄,這邊由於檔案較多故僅列出關鍵部分

borg list home/field/dev/final_archive/::music_archive

可以發現裡面沒有 .ssh 這一個可能放有 id_rsa 密鑰的資料夾,但另外發現了兩個奇怪檔案 note.txtsecret.txt

使用 borg extract 萃取這兩個檔案出來

borg extract home/field/dev/final_archive/::music_archive home/alex/Documents/note.txt

內容如下

Wow I'm awful at remembering Passwords so I've taken my Friends advice and noting them down!

alex:S3cretP@s3

borg extract home/field/dev/final_archive/::music_archive home/alex/Desktop/secret.txt

內容如下

shoutout to all the people who have gotten to this stage whoop whoop!"

可以看到我們找到了可能是 ssh 密碼的東西,嘗試登入

使用者名稱: alex

密碼: S3cretP@s3

成功登入,得到身分 alex

userflag 在家目錄的 user.txt

flag{1_hop3_y0u_ke3p_th3_arch1v3s_saf3}

提權

從前面登入後檢查 id 的部分可以看到,當前使用者似乎有 sudo 身分,可以嘗試先檢查有哪些 sudo 指令可用

sudo -l

可以看到只能對 /etc/mp3backups/backup.sh 這個檔案做 sudo 的動作,或許可以修改該檔案並作為提權的跳板?

看起來是不行,因此只好乖乖任命看一下裡面的內容,所不定裡面有可以利用的漏洞,下面是該檔案的刪減內容,這邊僅保留有用的部分

#!/bin/bash

# ...省略...

while getopts c: flag
do
        case "${flag}" in 
                c) command=${OPTARG};;
        esac
done

# ...省略...

cmd=$($command)
echo $cmd

這個腳本的用途是做 mp3 檔案的備份,但是可以發現到該腳本提供了指令的功能,因此我們可以利用這個功能執行提權過的指令,達到提權效果,指令如下

sudo /etc/mp3backups/backup.sh -c /bin/bash

可以看到,雖然可以成功進行提權,執行命令,但是可以發現有個小問題是需要退出 shell 之後才能看到結果,很不方便,因此這邊我想到一個解決方法是將提權過的指令結果輸出到一個檔案中,並搭配 watch 進行定時查看,這樣即可得到即時輸出的效果,具體作法如下

首先先創建一個檔案 record.txt

使用 watch 指令,監看這個檔案的內容

watch -n 1 "cat record.txt"

在執行提權指令的過程中,將輸出倒到檔案中

即可發現這樣的效果

rootflag 在 /root/root.txt

flag{Than5s_f0r_play1ng_H0p£_y0u_enJ053d}

至此,已取得這台機器的完整權限,並成功有了一個提權過並能方便運用的 shell