測試TCP三次握手時無意間發現了一個問題:發現Telnet建立之后,Telnet Data報文中竟然可以看到交互包容內容信息。為了確認此問題,我重新操作了一遍,并記錄了操作過程。
如上圖,SW1作為Telnet服務器,提供Telnet服務,IP地址為10.1.1.1(vlan1),SW6作為Telnet客戶端,IP地址為10.1.1.2(vlan1)。
測試一:Telnet賬號密碼交互是否加密
為了確認賬號密碼的交互報文,在SW1上創建3個賬號,分別為h3c,admin和root。可以看出,這幾個都是使用頻率比較高的默認賬號,一般是不建議使用的。如果業務網絡中仍在使用,建議刪除相關賬號并創建新賬號,避免被不法分子攻擊破解。
同時,為了驗證交互的密碼確實是密碼信息,賬號配置中交叉配置密碼,避免賬號密碼相同。
telnet server enable
interface Vlan-interface1
ip address 10.1.1.1 255.255.255.0
line vty 0 63
authentication-mode scheme
local-user root class manage
password simple h3c
service-type telnet
authorization-attribute user-role network-operator
local-user h3c class manage
password simple admin
service-type telnet
authorization-attribute user-role network-operator
local-user admin class manage
password simple root
service-type telnet
authorization-attribute user-role network-operator
然后開啟抓包,隨后在SW6開始測試登陸操作。
測試完賬號登錄之后,可選導出抓包文件和啟動wireshark,本次啟動wireshark直接查看報文。
報文截圖信息如下。開始是服務器返回的登陸提示信息。
接下來輸入賬號密碼,同時也可以看出,賬號密碼是一個字符一個字符進行轉送的,所以密碼不顯示也不影響輸入。接下來是第一個登陸的賬號:root/h3c
提示輸入密碼,接下來就是見證奇跡的時刻。
然后登陸成功,進入用戶視圖。
同理,其他兩個賬號登陸過程如下:
可見所有的賬號密碼信息一覽無余,如果網絡被監聽,只用在抓包文件中篩選Telnet即可找到相關交互報文,通過login:和Password:字段即可找到相應賬號信息,風險還是比較大的。
測試二:Telnet交互內容是否可見
測試完登陸,再測試一下命令操作:
輸入命令和前面一樣,是一個字符一個字符上傳的;而返回命令則是盡可能多的整段返回的。
由此可見Telnet安全系數確實低一些,如果物理層面也不安全,那業務層面對于有些網絡基礎的工程師來說幾乎透明。接下來再測試一下SSH交互過程。
測試三:SSH登陸報文交互情況
在設備上開啟SSH服務,并給賬號增加對應登陸方式。
ssh server enable
local-user root class manage
service-type ssh
local-user h3c class manage
service-type ssh
local-user admin class manage
service-type ssh
從交互報文來看,除了最開始明文交互了一下協議版本信息,之后交互的所有內容都是加密的。
當然,報文交換過程中,也攜帶了加密算法等信息。不過,可能要破解也非等閑之輩能破解出來的,安全系數相比Telnet可算是大大提高。