当前位置:文档之家› Telnet协议分析

Telnet协议分析

Telnet 协议分析

Telnet 协议分析 (1)

基本原理 (1)

Telnet协议简介 (1)

Telnet协商实例分析 (1)

任务描述与任务要求 (2)

任务描述 (2)

任务要求 (2)

实验步骤 (2)

实验环境 (2)

Telnet服务的建立 (3)

协议分析 (3)

总结 (11)

基本原理

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服务的建立

开启虚拟机和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包的格式如图所示:

其中以太网v2头是由数据链路层加上去的:

1-6bytes是目的地址,也即虚拟机的网卡MAC,

7-12bytes是源地址,也即宿主机MAC.

13-14(0x0800)是上层协议,这里是IP

第二段是ipv4的报文,网际协议IP是工作在网络层,也就是数据链路层的上层,上图数据区选中部分就是ipv4数据,其格式为:

可以非常清楚的看到IPv4报文格式在实际中式如何表现出来的.

值得注意的是,IPv4报文中的源地址和目的地址是ip地址,版本号TCP是6,标志字段是010就是禁止下层分段,且是完整的报文

第三段是TCP报文,从上面两个可以知道,这个TCP包被层层包装,经过下面一层就相应的包装一层,第三段是经过传输层的数

据,TCP报文的格式为:

这里说明了TCP的源端口52456也就是宿主机建立连接开出来的端口,目的端口23显然是telnet服务默认端口.

Acknowledgment number确认序号4bytes,为0,因为还是第一个握手包.

Header Length头长度32字节,滑动窗口大小8192字节(8MB),校验和,紧急指针为0.

Options选项12字节,其中包含最大传输单元MTU默认是1460bytes.

第二个TCP数据包,它是一个来自虚拟机的应答,按照三次握手的原则,这个数据包中TCP报文确认序号应该等于上一个请求包中的同步序号+1

Pack1. Seq = 0xa1 21 e2 42 Ack = 0x00 00 00 00

Pack2. Seq = 0x97 0f 37 11 Ack = 0xa1 21 e2 43

显然如TCP规定的那样工作. Flags字段中也显示出两个包的标志位.第一个是SYN,第二个是SYN,ACK.

那么显然第三个包应该这样工作:

Pack1. Seq = 0xa1 21 e2 42 [Ack = 0x00 00 00 00]

Pack2. Seq = 0x97 0f 37 11 Ack = 0xa1 21 e2 43

Pack3. [Seq = 0xa1 21 e2 43] Ack = 0x97 0f 37 12

主机收到Pack2,取出其中Seq+1赋给Ack,然后给虚拟机做出应答.

总之,建立连接的步骤如下:

1.TCP连接的建立通过三次握手完成.

2.TCP连接建立从传输层出发,TCP报文包装一个IP报头后形成一个IPv4报文经过网络层,然后再包装一个以太网帧头形成一个Ethernet帧通过数据链路层.

相关主题