当前位置:
文档之家› telnet协议简单分析-beta+4.9
telnet协议简单分析-beta+4.9
关键信息帧及其数据结构
Telnet 协议中涉及到的主要帧类型主要有命令帧和数据帧两种。命令帧的主 要功能就是实现终端与服务器的交流对话,帧的信息内容不显示在终端上面。命 令帧每一行信息代表一个命令,每个命令用三个字节存储。数据帧,则主要用到 的是 Telnet 的字符界面,一般由服务器发送过来,在终端上面显示,同时用户在 终端输入的数据,也以数据帧的格式传输到服务器。数据帧每一行都以 Data: 关键字开头。 第四帧:
6
<
6
送 telnet 数据:让终端用户选择 bbs 还是 bb5
Telnet
Command: Do Suppress Go Ahead
7
> Command: Will Binary Transmission
7
终端向服务器请求禁止 GA
并请求开始传输
8
< This is an ACK to the segment in frame: 7
31
32
<
32
33
<
33
-3-
34
>
34
35
>
35
36
< 输入帐号 oass 的第三个字母:s
36
37
<
37
38
>
38
39
<
39
输入帐号 oass 的第四个字母:s
40
<
40
41
>
41
42
>
42
43
<
43
输完帐号之后,按下回车键,回车换行
44
<
44
45
>
45
46
<
46
服务器给终端返回:请输入密码:
- 10 -
Command: Will Negotiate About Window Size //由 Telnet 客户端发送来的建议协商窗口的尺寸 Suboption Begin: Negotiate About Window Size //协商窗口的尺寸 Width:80 Height:25 Command: Suboption End //释放 TCP 连接
Telnet 协议的对话语句命令...................................................................... - 10 关键信息帧及其数据结构 ................................................................................. - 11 补充说明 ............................................................................................................ - 13 telnet 协议安全分析 .......................................................................................... - 13 -
89
90
<
90
服务器向终端发送 bbs 字符界面的数据
91
<
91
92
> This is an ACK to the segment in frame: 91
92
93
>
93
94
<
94
释放 TCP 连接的四次握手
95
<
95
96
>
96
重构通信协议
简单来说,telnet 协议可以用以下的方式来表示:
-6-
Client
Server
Transport the data
1.客户端发送数据 b; 2.服务器端:返回一个确认信息,告诉终端他已经收到了终端发来的数据; 3.服务器端:返回界面显示数据 b; 4.客户端发送数据 b; 2.服务器端:返回一个确认信息,告诉终端他已经收到了终端发来的数据;
-8-
5.服务器端:返回界面显示数据 b; 6.客户端开始通信; 7.客户端发送数据 b; 8.服务器端:返回一个确认信息,告诉终端他已经收到了终端发来的数据; 9.服务器端:返回界面显示数据 b; 10.数据输入完成。
第五帧:
如上图所示两个关键帧的截图,是 telnet 协议的命令帧,在 telnet 协议当中,终 端与服务器之间的握手对话等交流活动就是通过这些命令帧来进行的了。分析他 们的帧数据结构如下:
- 11 -
字节 1-3N
内容以及意义 内容:视命令的不同而不同 意义:telnet 协议用 3 个字节表示一个命令,如上面两个图的关键桢中, ff fb 01 表示 will echo;ff fb 01 表示 will suppress Go Ahead;ff fd 00 表示 Do binary Transmission;ff fd 01 表示 Do echo;(更多内容可参考 RFC 文 档)
-9-
5.客户端发送数据 n; 6.服务器端:返回一个确认信息,告诉终端他已经收到了终端发来的数据; 7.服务器端:返回界面显示数据*; 8.数据输入完成。
Telnet 协议的对话语句命令
在 Telnet 协议中,终端和服务器的交流,是通过一些对话来实现的,本次登录 Telnet 协议中的对话命令整理如下: Command: Will Echo Command: Will Suppress Go Ahead Command: Do Binary Transmission //服务器向终端发出开始请求 Command: Do Echo //答应服务器的请求 Command: Do Suppress Go Ahead //终端向服务器请求禁止 GA Command: Will Binary Transmission //并请求开始传输 Data: b //bbs 第一个字母 b 发送到服务器 Data: b //服务器处理完后把 b 返回给终端显示 //其他字母的传输过程同字母 b 的传输过程。 服务器给终端返回:请输入密码: Data: l //用户在终端键盘输入密码第一位 l Data: * //传输到服务器后,服务器给终端返回¡ *¡,并显示在终端上面。
-1-
分析过程
以登录逸仙时空的 BBS 为例,在成功登录进去 BBS 之后关闭,过程中共抓取 96 数据包,这 96 个数据包的简要情况一览如下:
172.18.60.1 方向
简要说明
bbs.sysu.edu.cn (202.116.64.6)
1
>
1
2
<
TCP 建立连接的三次握手
2
3
>
3
Telnet
47
>
47
48
>
48
用户在终端键盘输入密码第一位 l,传输到
49
<
49
服务器后,服务器给终端返回¡ *¡,并显示
50
<
50
在终端上面。
51
>
51
52
>
52
53
<
53
密码第二位,同 48-51
54
<
54
55
>
55
56
>
56
57
<
57
密码第三位,同 48-51
58
<
58
59
>
59
60
> 密码第四位,同 48-51
87
-5-
Telnet
Suboption Begin: Negotiate About Window
Size
88
> Width:80
88
Height:25
Command: Suboption End 协商窗口的尺寸
89
< This is an ACK to the segment in frame: 88
>
79
80
>
80
81
< 输完密码,用户按下回车键,回车换行
81
82
<
82
83
<
83
84
> 服务器向终端发送 bbs 界面的数据
84
85
<
85
Telnet
Command: Will Negotiate About Window
86
> Size
86
由 Telnet 客户端发送来的建议协商窗口的
尺寸
87
< This is an ACK to the segment in frame: 86
Request connect Response the connect
Connect succeed
Server
Command: Will Echo Command: Do Binary Transmission Command: Will Suppress Go Ahead
Command: Do Echo Choose bbs or bb5 model
Client Request the Keyword Data: l Acknowledgement
Data: * Data: n Acknowledgement
Data: * ¡¡
Data: \r\n
Server
Transport the Keyword
1.服务器端:请求发送密码信息; 2.客户端发送密码数据 l; 3.服务器端:返回一个确认信息,告诉终端他已经收到了终端发来的数据; 4.服务器端:返回界面显示数据*;
Command: Do Suppress Go Ahead Command: Will Binary Transmission
Start transport the data
1.客户端请求连接; 2.服务器端:返回一个确认信息,告诉终端他已经收到了终端发来的数据; 3.客户端:连接成功; 4.服务器端:通知即将开始通信; 5.服务器端:通知即将禁止继续进行; 6.服务器端:通知实行二进制传输; 7.客户端开始通信; 8.服务器端:返回让客户端选择模式 bbs 或 bb5 的信息;
中山大学软件学院 05 嵌入式软件与系统
SIGN HERE
计算机网络之
Telnet 协议分析
项目导师: 赵淦森 小组成员:
李启梁 05384024(组长) 黎颖欣 05384058 吴 静 05384149 张琨禹 05384161 张 通 05384159
制作日期:2008 年 4 月 8 日
目录
分析过程 .............................................................................................................. - 2 重构通信协议 ...................................................................................................... - 6 -
-7-
9. 客户端:通知即将禁止继续进行; 10.服务器端:通知实行二进制传输; 11.开始可以进行正式的数据传输。
Client Data: b Acknowledgement Data: b Data: b Acknowledgement Data: b Data: s Acknowledgement Data: s Data:\r\n
Command: Will Echo
4
< Command: Will Suppress Go Ahead
4
Command: Do Binary Transmission 服务器向终端发出开始请求
Telnet
5
> Command: Do Echo
5
答应服务器的请求
接收到终端的响应命令后,服务器向终端发
13
< This is an ACK to the segment in frame: 12
13
Telnet
14
<
Data: b
14
//服务器处理完后把 b 返回给终端显示
15
> This is an ACK to the segment in frame: 14
15
16
>
16
17
<
17
18
< 同 12-15,内容是 bbs 的第三个字母 s
8
Telnet
9
>
Data: b
9
//bbs 第一个字母 b 发送到服务器
10
< This is an ACK to the segment in frame: 9
10
-2-
Telnet
11
<
Data: b
11
//服务器处理完后把 b 返回给终端显示
Telnet
12
>
Data: b
12
//bbs 第二个字母 b 发送到服务器
60
61
<
61
62
<
62
-4-
63
>
63
64
>
64
65
<
65
密码第五位,同 48-51
66
<
66
67
>
67
68
>
68
69
<
69
密码第六位,同 48-51
70
<
70
71
>
71
72
>
72
73
<
73
密码第七位,同 48-51
74
<
74
75
>
75
76
>
76
77
<
77
密码第八位,同 48-51
78
<
78
79
18
19
>
19
20
>
20
21
< 输完 bbs 后,按下回车
21
22
<
22
23
<
23
服务器用两个数据包把登录界面返回到终
24
>
24
端显示,每个数据包终端都会向服务器发送
25
<
25
确认信号
26
>
26
27
>
27
28
<
Βιβλιοθήκη Baidu
28
输入帐号 oass 的第一个字母:o
29
<
29
30
>
30
31
> 输入帐号 oass 的第二个字母:a