嘗試在 telnet 中執行原始 ftp 命令時,vsftp 伺服器返回 500 Illegal PORT 命令
目前,我正在嘗試從 telnet 客戶端執行 ftp 命令。我用
USER
,PASS
,成功了PASV
,LIST
當嘗試PORT
vsftp 伺服器時拋出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 作為攻擊的一部分。