FTP (File Transfer Protocol) 歷經數十年演進,支援多用戶並發、上傳下載、遠端指令執行、虛擬目錄、權限控制,仍是檔案傳輸主流協定。但其協定特性 (雙通道) 與常見實作缺陷,構成顯著攻擊面。本文剖析 PORT/PASV 模式通道劫持、目錄遍歷、權限繞過等核心弱點,並給出防護建議。
一、FTP 雙通道機制與兩種傳輸模式
- 指令通道:Client ↔ Server TCP 21 (預設),傳送 FTP 指令與回應。
- 資料通道:每次傳輸 (LIST、RETR、STOR) 動態建立,模式決定發起方:
| 模式 | 指令流程 | 資料通道發起方 | 防火牆友善度 |
| PORT (主動模式) | Client 送 PORT h1,h2,h3,h4,p1,p2 告知 Server 其開放的資料埠 | Server 主動連向 Client (Source Port 20 → Client Port) | 差 — Client 端防火牆常阻擋入站連線 |
| PASV (被動模式) | Server 回 227 Entering Passive Mode (h1,h2,h3,h4,p1,p2) 告知其開放資料埠 | Client 主動連向 Server | 佳 — 僅需 Server 開放被動埠範圍 |
二、PORT 模式:Server 發起連線的隱性風險
PORT 模式常用於 Server 端有防火牆無法開放被動埠時。但 Server 主動發起外連 繞過自身防火牆入站規則,若資料通道被劫持 (TCP Session Hijacking),防火牆不會攔截此「合法外連」,導致資料外洩或注入惡意內容。此為協定架構限制,難以完美修復;建議僅允許 PASV 模式,封鎖 PORT 指令。
三、PASV 模式:被動埠劫持攻擊
PASV 模式下 Server 在預設範圍 (如 20000-21000) 隨機開放埠等待 Client 連線。若 Server 未驗證資料通道來源 IP 是否為已驗證的指令通道 Client,攻擊者可掃描開放埠並搶先連線劫持資料通道。
攻擊情境
- 合法 Client C (IP 12.12.12.12) 登入,Server S 開放埠 20000 等待資料連線。
- 攻擊者 H (IP 11.11.11.11) 掃描發現 20000 開放,立即發起連線搶佔。
- 若 S 未綁定來源 IP 驗證,H 成功劫持。若 C 下達
RETR secret.pdf,檔案將傳送給 H。
- H 可持續掃描/佔用被動埠,造成大面積傳輸劫持或拒絕服務。
修復對策
- 資料通道來源 IP 綁定驗證:Server 接受資料連線時,比對來源 IP 與指令通道 Client IP,不符即拒絕。現代 FTP 伺服器 (vsftpd、ProFTPD、FileZilla Server、Serv-U 新版) 均內建此保護。
- 縮小被動埠範圍、配合防火牆限制存取來源。
四、應用層實作缺陷:目錄遍歷與權限繞過
| 缺陷類型 | 典型表現 | 代表案例 | 影響 |
| 無目錄限制 (Anonymous/無認證) | 登入即見完整檔案系統,可讀寫任意路徑 | 早期 aftp、簡易 FTP Daemon | 全盤資料外洩、惡意程式植入 |
| 有認證但無 Chroot/Jail | 使用者可 CWD ../ 跳出家目錄 | xftpd (xfocus) | 跨用戶資料竊取、系統檔案讀取 |
| 路徑正規化缺陷 | CWD /home/user/../../etc、Unicode/雙重編碼繞過 | 舊版 SlimFTPd、Wu-FTPD | Directory Traversal Vulnerability (CVE 多枚) |
五、建置安全 FTP 服務的檢核清單
- 選擇成熟、持續更新的 FTP 伺服器軟體 (vsftpd、ProFTPD、FileZilla Server、Serv-U Enterprise、IIS FTP 7.5+)。
- 強制啟用 PASV 模式,禁用 PORT;設定被動埠範圍 (如 50000-51000) 並在防火牆對應開放。
- 啟用資料通道 IP 綁定驗證 (現代軟體預設開啟,確認配置)。
- 強制 Chroot/Jail:每用戶/群組鎖定於家目錄,絕對路徑不可逃逸。
- 最小權限 ACL:唯讀目錄僅授 LIST/READ;上傳目錄授 WRITE/APPEND,嚴禁 EXECUTE。
- 啟用 TLS/SSL (FTPS):加密指令與資料通道,防竊聽、防中間人。
- 強制強密碼策略、帳號鎖定、IP 白名單 (管理帳號)。
- 完整審計日誌:記錄登入、指令、檔案操作、錯誤,定期分析異常。
- 上線前滲透測試:掃描被動埠劫持、目錄遍歷、匿名登入、暴力破解;發布測試版收集回饋。
💡 總結:FTP 安全不僅在軟體選型,更在「協定弱點補強 (PASV IP 綁定) + 應用層隔離 + 傳輸加密 + 審計」的纵深部署。若非必要,建議改用 SFTP (SSH File Transfer Protocol) 或 HTTPS WebDAV,單一加密通道、無協定雙通道複雜度、原生強認證,架構上更安全。