攻擊通用網關介面 (CGI) 應用程式 - Shellshock
1. 發現點
Shellshock 係因為 Bash 對環境變數處理方式出錯
本應函數定義儲存到變數,但 Bash 執行錯誤地允許「函數後面嘅指令」被當成系統命令執行
適用於舊版 Bash(很多 Linux 主機在 CGI 程式執行時都會用到 Bash)
2. 測試Payload
如果系統有漏洞,會輸出:
否則只會印出
not vulnerable
3. 掃描路徑
使用 Gobuster、dirb、ffuf 等工具找 CGI endpoint:
找到如
/cgi-bin/access.cgi
4. 確認漏洞
用 curl 嘗試注入指令:
如果回傳
/etc/passwd
的內容,即確認漏洞存在
5. 利用取得反向 shell
開啟 listener:
發送 payload:
成功後獲得
www-data
權限 shell
5. 連鎖漏洞
當拿到 www-data
權限後,可以進行以下鏈式利用(pivot):
步驟
攻擊目標
工具/命令範例
本地提權
找可利用的 sudo 權限、SUID Binary、Kernel Exploit
sudo -l
、find / -perm -4000 -type f 2>/dev/null
檔案搜尋敏感資訊
找密碼、Token、私鑰
find / -type f -iname "*password*" 2>/dev/null
橫向移動
如果有多個用戶或內網目標,嘗試 SSH、RDP、Telnet
cat ~/.ssh/id_rsa
、ssh user@ip
讀 crontab
檢查是否有定時執行惡意可利用的腳本
cat /etc/crontab
檢查 NFS / SMB
有沒有掛載 NFS、開啟 SMB 可導致任意檔案存取
showmount -e <ip>
、smbclient -L //<ip>
內網掃描
利用目標主機繼續向內部網段滲透
使用 nmap
、ping
最后更新于
这有帮助吗?