CS KAIROS · LEARNING LIBRARY

M04-03 · FTP 列舉

先記住一句:FTP 能讓你查到服務與檔案線索;能登入、能列目錄、能下載、能上傳,要各自確認。

FTP 是做什麼的?

FTP(File Transfer Protocol,檔案傳輸協定)讓電腦向伺服器上傳、下載檔案。

想像一個文件領取櫃檯:先確認櫃檯有開,再出示身分、查看目錄,最後申請領取某份文件。這幾步各有條件。

FTP 列舉就是整理服務回應、登入方式,以及該身分能看到的目錄與檔案資訊。常用工具是 FTP 用戶端;它把你的操作轉成協定命令。

為什麼登入成功,列目錄卻可能卡住?

FTP 通常使用兩種連線: - 控制連線:傳送登入、操作命令與回覆;伺服器常用 TCP 21。 - 資料連線:傳送目錄清單或檔案內容,另外建立。

資料連線有兩種常見方式: - 主動模式:用戶端提供接收位置,由伺服器發起資料連線。 - 被動模式:伺服器提供接收位置,由用戶端發起資料連線。

因此,登入成功但目錄沒有顯示時,可以先查資料連線、防火牆與模式設定,再核對權限。TCP 20 是傳統主動模式常見的伺服器資料埠,並非所有 FTP 資料傳輸都用它。被動模式使用另外協商的埠;EPSV 是延伸被動模式命令。 FTP 規格|延伸模式

網頁補充:控制與資料分工

這是兩種連線的分工,不是權限高低。

  • 控制連線

    用戶端 → 伺服器常用 TCP 21;交換命令與回覆。

  • 資料連線

    傳目錄或檔案;主動由伺服器發起,被動由用戶端發起。

匿名登入代表什麼?

匿名 FTP 通常以 anonymous 這類身分,提供管理者指定的公開資料。

如果伺服器接受匿名登入,能確認的是「這次匿名登入獲准」。接著仍要分開檢查: - 能列出哪個目錄? - 能下載哪個檔案? - 能否上傳、覆寫或刪除?

公開下載可能是原本的服務用途。風險要對照預期政策,例如是否曝光內部檔案,或意外開放寫入。 FTP 安全考量

用一個合成案例串起來

以下是假想的授權實驗室紀錄,這裡沒有執行查詢。目標、測試身分、操作與檔案都已事先約定: - 連到 FTP 服務:收到 220 歡迎回應。 - 使用測試身分登入:收到 230 登入成功。 - 列出指定目錄:看見 readme.txt、report.txt。 - 下載 readme.txt:傳輸完成,取得預先準備的測試內容。 - 下載 report.txt:收到 550。 - 上傳或刪除:本次未測試。

列出名稱,就是這裡的列舉結果。FTP 的 LIST 用於取得清單、RETR 用於下載、STOR 用於上傳;用戶端畫面上的指令名稱可能不同。

紀錄可以寫成:這個測試身分成功登入並列出兩個檔名;readme.txt 下載完成,report.txt 的下載請求收到 550。上傳與刪除權限留待另行驗證。

550 表示要求的檔案操作未完成,可能涉及檔案不存在或存取條件;配合完整回應、指定路徑與伺服器日誌定位。425 則提示資料連線無法開啟。歡迎訊息中的產品或版本文字也先當線索,再與管理端資料核對。 命令與回覆碼

網頁補充:同一身分,分開記每種操作

沿用上方合成案例;尚未測試的操作保留待確認。

  • 列目錄

    看見 readme.txt 與 report.txt。

  • 下載 readme.txt

    完成傳輸並核對測試內容。

  • 下載 report.txt

    收到550,原因由路徑、回應與日誌定位。

  • 上傳/刪除

    本例未測試,需在另行約定的範圍驗證。

防護與證據怎麼做?

防護先從用途出發:只開放需要的身分與目錄,將讀取和寫入權限分開,限制不必要的匿名存取,並觀察登入失敗、檔案操作與異常傳輸。

傳統 FTP 的帳密與資料可能以明文傳輸。需要保護傳輸時,可採: - FTPS:FTP 加上 TLS;除了控制連線,也要確認資料連線的保護設定。 - SFTP:透過 SSH 提供檔案傳輸,是另一種協定。

使用加密連線後,檔案權限仍依伺服器政策判定。 FTP over TLS|OpenSSH SFTP

每次記下時間、目標、使用身分、連線模式、指定路徑、操作與完整回應。練習使用授權環境及合成檔案;密碼另行妥善保管,公開紀錄只留去識別的證據。

小檢核

你成功登入 FTP,也列出了 report.txt,但下載時收到 550。請用兩三句話說明:目前確認了什麼?要判斷下載失敗原因與上傳權限,還需要哪些證據?

這是待回答的教材檢核;網站不會自動送出答案或更新理解狀態。下一個核心是 M04-04 SMB 列舉。

概念 Q&A

待補:收到相關問題後,會整理為匿名教學版。