TELNET登入流程
- 終端使用者與遠端伺服器建立TCP連線,連接埠為23號
- 終端使用者進行遠端伺服器帳號密碼登入
- 遠端伺服器回應終端使用者
- 撤除連線
TELNET封包實戰 (Packet analysis in practice)
我使用WIRESHARK封包監聽軟體,這邊我們選網路介面乙太網路下去做監聽,終端機的部分輸入telnet ptt.cc,用telnet協定遠端登入台大ptt主機後,輸入假的帳號密碼。
輸入完後,便是發送完封包過去到台大的主機,接著我們停止監聽,在Display filter篩選我們要的封包協定,這邊打上telnet,我們要抓的是telnet封包。
紅色圈起來的部分是我們剛剛輸入telnet ptt.cc、輸入帳號密碼的整體運作過程,下面我會做分解解釋telnet連線過程。
DNS查詢 (DNS query)
圖五紅線方框內的第一是指終端機向中華電信Hinet 網域名稱系統(英文:Domain Name System,縮寫:DNS)主機發送查詢封包(standard query),傳送的內容即為ptt.cc,第二個封包就是從Hinet主機傳(IP位址:168.95.1.1)過來的回覆的封包,以上流程如同在終端機輸入nslookup ptt.cc。
TCP 三向交握 (Three-way Handshake)
在圖五的三個TCP封包,通常我們稱之為TCP連線的三向交握,英文叫做Thee-way handshake,是TCP建立虛擬連線的方式,其中SYN跟ACK控制位元,SYN (同步序號,Synchronize sequence numbers),每一個封包都有自己的序號(Sequence number),SYN是用來同步雙方連線,ACK (確認號,Acknowledgment field significant),Acknowledgment顧名思義就是對方承認雙方彼此間的連線, 一旦連線建立,則每次都需送出,完成TCP連線後就可以開始傳送資料。
TELNET封包傳送 (Packet Transmission)
前面建立TCP連線後,且輸入完帳號密碼,就可以向PTT主機丟TELNET封包,請求登入,主機那邊收到會回覆登入結果。
我們在送出去的封包按下右鍵,追蹤TCP串流,點進去會發現,送出去的帳號與密碼其實都沒經過加密。
結語
TELNET是一個很簡易協定的遠端連線,早期網管人員會用此協定進行伺服器遠端登入,但由上圖使用Wireshark封包監聽軟體可得知,其實TELNET傳送的個人資訊、帳號、密碼容易遭到監聽、竊取,隨著資訊安全意識的提高,許多新版的作業系統會將此服務關閉,或是關閉連接埠23。
進而取代之是Secure Shell(安全外殼協定,簡稱SSH)協定,利用金鑰匙交密達到秘密通訊,下篇我會講解其運作過程,記得連到PTT時不要再使用TELNET,不管是使用APP或是電腦,APP則可以勾選SSH協定。
參考
TCP 三向交握 (Three-way Handshake)
https://notfalse.net/7/three-way-handshake#SYN-Synchronize-sequence-numbers
Telnet Wikipedia
https://zh.wikipedia.org/wiki/Telnet
實戰封包分析:使用Wireshark