Telnet协议分析详解

基本原理
Telnet 协议简介
Telnet 是一个简单的远程终端协议 。用户用 Telnet 就可种子其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址) 。在终端使用者的电脑上使用telnet 程序,用它连接到服务器 。终端使用者可以在 telnet 程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样 。可以在本地就能控制服务器 。
Telnet 客户进程和服务器进程一般只属于用户应用程序,终端用户通过键盘输入的数据送给操作系统内核的终端驱动进程,由终端驱动进程把用户的输入送到 Telnet 客户进程,Telnet 客户进程把收到的数据传送给 TCP,由 TCP 负责在客户端和服务器端建立 TCP 连接,数据就通过 TCP 连接送到了服务器端,服务器的 TCP 层将收到的数据送到相应的应用层Telnet 服务器进程 。
Telnet 协商实例分析
Telnet 选项协商
telnet 进行连接的双方首先进行选项协商 。协商 Telnet 工作的一些环境、工作方式等 。
对于任何给定的选项,连接的任何一方都可以发送下面 4 种请求的任意一个 。
(1) WILL :发送方本身将激活选项
(2) DO :发送方想叫接收方激活选项
(3) WON
’T: 发送方本身禁止选项
( 4) DON’T :发送方想让接收方去去禁止选项
选项协商需要 3 个字节:一个 IAC 字节,接着一个字节是 WILL、DO、 WON’T 或 DON’T这 4 个中的一个,最后一个ID字节指明要激活或禁止的选项 。
协商中的终端类型、终端类型速率等的协商、需要附加的信息,比如终端类型和协商需要附加字符来表明终端的类型,终端的速率需要附加数字来表明终端的速率,这样需要进一步附加数字或字符串的协商,要用子协商来定义 。
任务描述与任务要求
任务描述
(1) 用 Wire shark 捕获网络中的数据流量,观察 Telnet 分组格式 。
(2) 观察、分析 Telnet 的请求和响应分组内容 。
(3) 分析 Telnet 整个协商过程 。
任务要求
(1) 掌握 Telnet 协议的原理,理解 Telnet 协议的协商过程 。
(2) 步骤明确、图表清楚 。
(3) 对图中说明部分要用红色圆或红色线标明,并进行详细文字说明 。
实验步骤
实验环境
宿主机 Windows 8 企业版 64 bit
Telnet 服务端 Windows XP
宿主机安装 Wiresahrk ,均开启 Telnet 服务
【Telnet协议分析详解】虚拟机网卡选择桥接
Telnet 服务的建立
开启虚拟机和 Wireshark
虚拟机获得的 IP 地址为: 192.168.199.134
网卡 MAC地址 :08:00:27:a0:9f:f8
宿主机 IP 地址是 192.168.199.154
网卡 MAC地址 :00:26:4d:a1:59:de
客户端主机启动 cmd键入命令,输入 Telnet 命令,建立连接 。
协议分析
1、建立连接 (TCP三次握手 )
elnet 客户端开始工作 , 首先是与虚拟机中的服务端程序建立 TCP连接 , 从抓取的数据包来看 , 首先关于本次分析的数据包是典型的 TCP三次握手 , 如图所示 :


主机发送一个连接请求到虚拟机 , 第一个 TCP包的格式如图所示 :

Telnet协议分析详解

文章插图


其中以太网 v2 头是由数据链路层加上去的 :
1-6bytes 是目的地址 , 也即虚拟机的网卡 MAC,
7-12bytes 是源地址 , 也即宿主机 MAC.
13-14(0x0800) 是上层协议 , 这里是 IP
第二段是 ipv4 的报文 , 网际协议 IP 是工作在网络层 , 也就是数据链路层的上层 ,上图数据区选中部分就是 ipv4 数据 , 其格式为 :
Telnet协议分析详解

文章插图


可以非常清楚的看到 IPv4 报文格式在实际中式如何表现出来的 .
值得注意的是 ,IPv4 报文中的源地址和目的地址是 ip 地址 , 版本号TCP是 6, 标志字段是 010 就是禁止下层分段 , 且是完整的报文第三段是 TCP报文 , 从上面两个可以知道 , 这个TCP包被层层包装 , 经过下面一层就相应的包装一层 , 第三段是经过传输层的数
据 ,TCP报文的格式为 :
Telnet协议分析详解

文章插图


这里说明了TCP的源端口52456也就是宿主机建立连接开出来的端口 , 目的端口23显然是 telnet 服务默认端口. Acknowledgment number确认序号 4bytes, 为 0, 因为还是第一个握手包 . Header Length 头长度 32 字节 , 滑动窗口大小 8192 字节 (8MB), 校验和 , 紧急指针为 0. Options 选项 12 字节 , 其中包含最大传输单元 MTU默认是 1460bytes.