UNIX 信任關係機制
傳統 UNIX r 命令族(rlogin、rsh、rcp、rexec)基於 **IP 地址信任模型**:
/etc/hosts.equiv(系統級):列出受信主機,允許其用戶無密碼登錄同名賬號。
~/.rhosts(用戶級):格式 主機名 用戶名,允許指定遠程用戶無密碼以本地用戶身份登錄。
- 危險配置:
hosts.equiv 出現 + 或 .rhosts 出現 ++ → **信任全網任意主機**,極度危險。
IP Spoofing 攻擊鏈
- 攻擊者偵察目標信任關係(掃描 513/514/512 端口,嘗試 rlogin)。
- 預測 TCP 初始序列號 (ISN) —— 早期 TCP 實現 ISN 可預測。
- 發送偽造源 IP(受信主機)的 SYN → 目標回複 SYN-ACK 到受信主機(被攻擊者忽略或被 DoS 沉默)。
- 攻擊者盲發 ACK 完成三次握手(需精準預測序列號)。
- 發送
rsh 命令(如 echo "+ +" > ~/.rhosts)植入永久後門。
現代環境下的殘留風險
- 舊版 UNIX/Linux/網絡設備仍可能啟用 r 服務。
- 內網橫向移動中,攻擊者利用主機間互信關係(如 .rhosts、SSH 信任鑰匙、Kerberos 委派)實現無密碼跳轉,**本質同構**。
- TCP ISN 隨機化 (RFC 6528) 已大幅提高盲偽造難度,但**內網旁路嗅探**可獲取真實序列號繞過。
防御措施
- 全面禁用 r 服務:
/etc/inetd.conf 註釋 login/shell/exec;防火牆封鎖 512/513/514 端口。
- 清理信任文件:刪除
hosts.equiv、.rhosts 或嚴格限制條目。
- 啟用 SSH 替代:密鑰認證 + 禁用密碼登錄 + 限制來源 IP。
- 入口/出口過濾 (BCP38):邊界路由器丟棄源 IP 非本網段的封包,防止內部發起欺騙攻擊。
- 部署 IPS/NDR 監測:識別 ARP 欺騙、TCP 序列號異常、r 服務連接嘗試。
信任不應建立在脆弱的 IP 地址之上,強認證與零信任架構是根治之道。