从报文交互看Telnet协议的安全系数
测试TCP三次握手时无意间发现了一个问题:发现Telnet建立之后,Telnet Data报文中竟然可以看到交互包容内容信息。为了确认此问题,我重新操作了一遍,并记录了操作过程。
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/bac857349099cbefc318b1526156ba87.jpg)
如上图,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开始测试登陆操作。
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/e05d6afbc9e76e094e7f6b93963b796a.jpg)
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/b1ee0e0310c2998ccbaaa47dd988e827.jpg)
测试完账号登录之后,可选导出抓包文件和启动wireshark,本次启动wireshark直接查看报文。
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/cb7185102e6af3924ecf0a437e1eeb06.jpg)
报文截图信息如下。开始是服务器返回的登陆提示信息。
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/90a0faea3ef5ad88f42bf995fe46b318.jpg)
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/5bf19be80583d14c9b2ef15b33e6bdb0.jpg)
接下来输入账号密码,同时也可以看出,账号密码是一个字符一个字符进行转送的,所以密码不显示也不影响输入。接下来是第一个登陆的账号:root/h3c
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/d25fd57c3ca995c938577e99f39ca014.jpg)
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/ccfb8dbfba5eb6947a5658af87a5e333.jpg)
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/4f5430c80b103d05f51411cbfbe14bcb.jpg)
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/2ba2b0e9aed5c71bbcf784bba3bd57d8.jpg)
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/e47595dc6a9b86e340b82f5c4c78c87e.jpg)
提示输入密码,接下来就是见证奇迹的时刻。
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/a7a02fdc07874016782426b3e35c5e6a.jpg)
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/e54bc8ff09eb678871c7b1bc1b21f265.jpg)
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/c063aa9bea08e11b57c7e5bd006074a7.jpg)
然后登陆成功,进入用户视图。
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/7dbc6345d668b15e86fffdd1db24aa66.jpg)
同理,其他两个账号登陆过程如下:
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/bdcec2c908b06746e18b7ca40f623248.jpg)
可见所有的账号密码信息一览无余,如果网络被监听,只用在抓包文件中筛选Telnet即可找到相关交互报文,通过login:和Password:字段即可找到相应账号信息,风险还是比较大的。
测试二:Telnet交互内容是否可见
测试完登陆,再测试一下命令操作:
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/1ea21c0117252d8474d274b1655e5c8d.jpg)
输入命令和前面一样,是一个字符一个字符上传的;而返回命令则是尽可能多的整段返回的。
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/4a65fe2faa64d785adfb559340772b9c.jpg)
由此可见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协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/b338256bbfece94ccb239a363b0537f1.jpg)
从交互报文来看,除了最开始明文交互了一下协议版本信息,之后交互的所有内容都是加密的。
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/07f6fba3b3e5158f792f31eaaf5f51e3.jpg)
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/28880d708c93696e924c0f23b29781bc.jpg)
当然,报文交换过程中,也携带了加密算法等信息。不过,可能要破解也非等闲之辈能破解出来的,安全系数相比Telnet可算是大大提高。
![从报文交互看Telnet协议的安全系数](https://www.isolves.com/d/file/p/2020/07-18/1a755c60307845c9f0e572014823a2a3.jpg)