从报文交互看Telnet协议的安全系数

测试TCP三次握手时无意间发现了一个问题:发现Telnet建立之后,Telnet Data报文中竟然可以看到交互包容内容信息 。为了确认此问题,我重新操作了一遍,并记录了操作过程 。

从报文交互看Telnet协议的安全系数

文章插图
 
如上图,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
【从报文交互看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开始测试登陆操作 。
从报文交互看Telnet协议的安全系数

文章插图
 

从报文交互看Telnet协议的安全系数

文章插图
 
测试完账号登录之后,可选导出抓包文件和启动wireshark,本次启动wireshark直接查看报文 。
从报文交互看Telnet协议的安全系数

文章插图
 
报文截图信息如下 。开始是服务器返回的登陆提示信息 。
从报文交互看Telnet协议的安全系数

文章插图
 

从报文交互看Telnet协议的安全系数

文章插图
 
接下来输入账号密码,同时也可以看出,账号密码是一个字符一个字符进行转送的,所以密码不显示也不影响输入 。接下来是第一个登陆的账号:root/h3c
从报文交互看Telnet协议的安全系数

文章插图
 

从报文交互看Telnet协议的安全系数

文章插图
 

从报文交互看Telnet协议的安全系数

文章插图
 

从报文交互看Telnet协议的安全系数

文章插图
 

从报文交互看Telnet协议的安全系数

文章插图
 
提示输入密码,接下来就是见证奇迹的时刻 。
从报文交互看Telnet协议的安全系数

文章插图
 

从报文交互看Telnet协议的安全系数

文章插图
 

从报文交互看Telnet协议的安全系数

文章插图
 
然后登陆成功,进入用户视图 。
从报文交互看Telnet协议的安全系数

文章插图
 
同理,其他两个账号登陆过程如下:
从报文交互看Telnet协议的安全系数

文章插图
 
可见所有的账号密码信息一览无余,如果网络被监听,只用在抓包文件中筛选Telnet即可找到相关交互报文,通过login:和Password:字段即可找到相应账号信息,风险还是比较大的 。
测试二:Telnet交互内容是否可见测试完登陆,再测试一下命令操作:
从报文交互看Telnet协议的安全系数

文章插图
 
输入命令和前面一样,是一个字符一个字符上传的;而返回命令则是尽可能多的整段返回的 。
从报文交互看Telnet协议的安全系数

文章插图
 
由此可见Telnet安全系数确实低一些,如果物理层面也不安全,那业务层面对于有些网络基础的工程师来说几乎透明 。接下来再测试一下SSH交互过程 。
测试三:SSH登陆报文交互情况在设备上开启SSH服务,并给账号增加对应登陆方式 。


推荐阅读