萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 健康知識

Windows Socket 端口重複綁定漏洞:隱藏、竊聽與中間人攻擊實戰

漏洞根源

Winsock 實現允許同一端口被多重綁定,且無權限區分:低權限使用者可重新綁定高權限服務(如 SYSTEM 權限啟動)的端口。核心原則是「指定最明確者優先」,導致惡意程式可攔截、轉發或竄改通訊。

四大攻擊場景

  1. 端口隱藏:木馬綁定合法端口,依封包格式判斷是否屬於自己,非本身封包轉發至 127.0.0.1 真實服務。
  2. 低權限竊聽高權限通訊:無需管理員權限即可監聽 Socket 通訊,繞過掛鉤、驅動等高門檻技術。
  3. 中間人攻擊:攔截 Telnet (port 23) 等服務,劫持已驗證的高權限會話,冒用身分發送特權命令。
  4. Web 伺服器內容竄改:低權限入侵者偽裝伺服器回應,植入惡意內容或竊取電子商務資料。

影響範圍

Microsoft 內建服務 Telnet、FTP、HTTP (IIS) 皆受影響,包含 Win2K SP3。第三方服務亦多存在此缺陷。若攻擊者已取得低權限存取且目標啟用相關服務,即可嘗試利用。

防禦對策

開發 Socket 伺服器應用時,綁定前呼叫 setsockopt 指定 SO_EXCLUSIVEADDRUSE,要求獨佔端口,禁止重複綁定。範例程式碼展示如何正確設定。

驗證程式碼片段 (C)

// 關鍵設定:獨佔端口
setsockopt(s, SOL_SOCKET, SO_EXCLUSIVEADDRUSE, (char *)&val, sizeof(val));
// 若設定 SO_REUSEADDR 則會成功重複綁定,產生漏洞

附件包含完整的 Telnet 竊聽示範程式,可在 Guest 權限下運作,演示封包轉發、內容分析與會話劫持邏輯。

copyright © 萬盛學電腦網 all rights reserved