Ftp

嘗試在 telnet 中執行原始 ftp 命令時,vsftp 伺服器返回 500 Illegal PORT 命令

  • May 21, 2020

目前,我正在嘗試從 telnet 客戶端執行 ftp 命令。我用USER, PASS,成功了PASVLIST當嘗試PORTvsftp 伺服器時拋出500 Illegal PORT command。我遵循 RFC 959 中指定的語法

數據埠(埠)

該參數是用於數據連接的數據埠的 HOST-PORT 規範。使用者和伺服器數據埠都有預設值,一般情況下不需要此命令及其回复。如果使用此命令,則參數是 32 位 Internet 主機地址和 16 位 TCP 埠地址的串聯。該地址資訊被分成 8 位欄位,每個欄位的值以十進制數(以字元串表示)形式傳輸。欄位用逗號分隔。埠命令將是:

埠 h1,h2,h3,h4,p1,p2

其中 h1 是 Internet 主機地址的高 8 位。

我試圖檢查它是否是與使用命令的vsftpd配置文件相關的問題。ftp關閉被動模式後工作正常。那麼為什麼當我從 telnet 客戶端執行時會拋出錯誤?下面我附上telnet會話的螢幕截圖,以及nc我試圖監聽數據連接的會話。

在此處輸入圖像描述

在世界年輕的過去,翼龍還在天上飛,一台能夠連接到 IP 網路的電腦要花費 100,000 美元(而且那是真正的美元),而且這些機器的大多數係統管理員都在網上認識對方根據名字,決定將 65535 個 TCP 埠(或者是 65536)分成兩組,並使 Unix 核心將對 1024 以下埠的訪問限制為“root”。眾所周知的港口被分配在這個地區。

如果您看到來自此類埠的傳入連接,您可以信任它,因為您知道 Dick、John 或 Jane 不會允許他們的機器被黑客入侵。同樣,只有您機器上的受信任程序才能打開此類埠。

當然,現在您可以以大約 3 品脫啤酒(例如 Raspberry PI)或更少的價格購買一台電腦,這已不再適用。

所以來自 OP 的第一個問題是為什麼他會收到“無效埠”消息,那是因為守護程序反對埠號 100,這是一個保留埠。

評論中的後續問題是它為什麼反對。這裡的答案有點模糊。如果您要求系統發送 fifo 的內容,那麼您幾乎可以在任何時間發送任意字節序列。正如@AB 所指出的,這允許您使用 FTPD 作為攻擊的一部分。

引用自:https://unix.stackexchange.com/questions/587953