iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0

前幾篇我們接觸的服務——FTP、SMB、IRC、Java RMI——都是大家比較耳熟的東西。今天要介紹的 distcc 可能很多人沒聽過,但正因為如此,它更能說明一個重要的觀念:你不需要了解一個服務是做什麼的,只要它暴露在網路上、有已知漏洞,就可能被利用。
distcc 的漏洞(CVE-2004-2687)也是我們系列中年代最久遠的一個,2004 年就被揭露了,但在 Metasploitable2 上它依然存在,而且利用方式簡單到令人驚訝。

實作開始,這邊其實會發現我用 nmap -sV [靶機ip]會沒有看到3632這個port,這是正常的
https://ithelp.ithome.com.tw/upload/images/20260918/20183639oi9kuSHRzX.png
進入msfconsole,用search搜尋關鍵字
https://ithelp.ithome.com.tw/upload/images/20260918/20183639COa3WpGEDW.png
這邊設定payload,設定RHosts和Lhost,再來run,拿到shell。通常還要做提權。這邊其實可以停下來
https://ithelp.ithome.com.tw/upload/images/20260918/20183639gMDLWe6FDl.png


利用以下指令獲取資訊

whoami                    # 確認目前身份
id                        # 看所屬群組
uname -a                  # 核心版本(提權的關鍵資訊)
cat /etc/issue            # OS 版本
cat /etc/passwd           # 系統上有哪些使用者

https://ithelp.ithome.com.tw/upload/images/20260918/20183639gEqevylMg0.png

這是因為 distcc 拿到的 shell 不是完整的互動式 TTY

# 方法一:用 Python 生成 TTY
python -c 'import pty; pty.spawn("/bin/bash")'

# 方法二:如果 Python 沒反應,試 Python3
python3 -c 'import pty; pty.spawn("/bin/bash")'
su msfadmin
# 輸入密碼:msfadmin

# 進去之後
sudo su
# 密碼:msfadmin

https://ithelp.ithome.com.tw/upload/images/20260918/20183639rkPrlDppIc.png
最後拿到root結束


小結

distcc 這個漏洞展示了一種跟前面都不同的問題模式:不是程式碼被植入後門,不是輸入沒有被過濾,也不是反序列化的問題——而是這個服務從設計上就沒有考慮「不受信任的使用者可能會連進來」的情境。

從這篇我們學到的新東西:

  1. 不是每個漏洞都給你 root:distcc 拿到的是低權限帳號,接下來需要提權(今天有做到,之前沒有)
  2. 服務設計的安全假設:distcc 假設「連進來的都是自己人」,這個假設一旦不成立就完了

上一篇
Java RMI 遠端程式碼執行攻擊
下一篇
NFS 設定不當的資訊竊取與入侵
系列文
打靶機 30 天:從 Metasploitable2 到 3 的滲透測試學習筆記12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言