RDP协议详细解析(三)

4 系统初始连接模块:
当通道申请各部分通过后,开始系统登录的初始连接。从此数据包开始,所以虚拟通道层以上的网络数据都需要加密,详细的加密功能实现请参见加密模块。登录的网络信息结构如下:
内容
字节数
(字节反存 )
加密层及以下
XX
XX
空闲字节
4
0x00000000
自动登录标志
4
正常: 0x33,自动: 0x28
域名长度
2
若空为 0,有值则乘 2
用户名长度
2
若空为 0,有值则乘 2
密码长度
2
若空为 0,有值则乘 2
登录程序长度
2
若空为 0,有值则乘 2
登录路径长度
2
若空为 0,有值则乘 2
域名值
域名长度 +2
2字节反存 1字符,最后为 2字节为 0x0000
用户名值
用户名长度 +2
2字节反存 1字符,最后为 2字节为 0x0000
密码字符值
密码长度 +2
2字节反存 1字符,最后为 2字节为 0x0000
登录程序名称
登录程序长度 +2
2字节反存 1字符,最后为 2字节为 0x0000
登录路径值
登录路径长度 +2
2字节反存 1字符,最后为 2字节为 0x0000
5 图形连接模块:
在图形数据发送之前,服务器需要对此功能模块验证,验证内容是所有与图形相关的信息,包括鼠标设置、键盘输入、字体类型、画图命令格式、图形显示的各种类型。
根据已破解的信息显示, RDESKTOP原来并没有正确的赋值,因为它的返回值是没有固定的,对于服务器发送来的信息没有处理,而服务器在其关于图形方面的参数设置询问没有得到正确的回答时,则以固定的服务器端的参数进行设置。
5-1) 连接过程说明:服务器端首先发送关于图形方面的基本参数设置,客户端应该对这些设置进行反馈。此后 rdesktop的处理是顺序发送同步信息,两个控制信息包,一个输入信息包,两个字体信息包;同时顺序接收一个同步信息包,两控制信息包,一个未知信息包;但 redsktop并没有对接 2收的信息包进行处理。
5-2)基本参数设 2置信息包结构:
内容
字节数
(字节反存 )
加密层及以下
XX
XX
层后数据长度
2
XX
数据类型标志
2
11 00,表示是图形信息连接确认
基本通道号
2
ea 03,固定
基本通道号
2
ea 03,固定 (share)
未知数据 1
2
01 00
ASCII信息长度
2
XX
基本参数长度
2
XX
ASCII信息
长度值 +1
52 44 50 00r->RDP”, s->MSTSC
参数信息
2
r->0b 00s->0d
空位
2
3000
详细各组参数
组数
内容 XX
5-3) 详细参数信息组类别:
每个类型的数据前 2字节为类型,然后是长度,数据。以接收到优先作例介绍。
类型值
说明
01r
通用类型 (general)
02r
位图类型 (bitmap)
03r
命令 (order)
04
位图缓存 (bitmap cache)
05
控制 (control)
07
活动 (active)
08r
指针 (pointer)
09r
共享 (share)
0ar
颜色缓存 (color cache)
0c
未知
0dr
未知
0e
未知
10
未知
12r
未知
14r
未知
16r
未知
40
未知
00r
未知
5-3-1) 通用类型 (general->01)
内容
字节数
(字节反存 )
系统主类型
2
01 00OS major type
系统次类型
2
03 00OS minor type
协议版本号
2
02 00protocol version
空数据 1
2
00 00
压缩类型
2
00 00不压缩
空数据 2
2
1d 04
更新属性
2
00 00
共享属性
2
00 00
压缩级别
2
00 00
空数据 3
2
01 01
5-3-2) 位图类型 (bitmap->02)
内容
字节数
(字节反存 )
最佳颜色深度
2
协商值
1颜色深度
2
01 00
2颜色深度
2
01 00
3颜色深度
2
01 00
桌面宽度
2
width
桌面高度
2
height
空位 1
2
00 00
允许调整大小
2
01 00
位图压缩
2
01 00
未知数据 1
2
00 00
未知数据 2
2
01 00
空位 2
2
00 00
5-3-3) 命令 (order->03)
内容
字节数
(字节反存 )
Terminal desc1
16
0
Terminal desc2
4
10 42 0f 00
缓存 X间隔
2
01 00
缓存 Y间隔
2
14 00
未知数据 1
2
00 00
最大命令级别
2
01 00
字体数目
2
00 00
容量标志
2
22 00
命令支持格式
32
另见
文本容量标志
2
a1 06
未知数据 2
6
00 00 40 42 0f 00
桌面缓存大小
4
40 42 0f 00
未知数据 3
4
01 00 00 00
未知数据 4
4
00 00 00 00
命令支持格式说明:共 32个标志,只对已知标志进行说明。
字节位置, 0-31
值含义, 1代表支持, 0代表不支持
0
Dest blt
1
Pat blt
2
Screen blt
3
Required for memblt
8
Line1
9
Line2
10
Rect
11
Desktop save
13
Memblt
14
Triblt
22
Polyline
27
Text2
5-3-4) 位图缓存 (bitmap cache->04)
内容
字节数
(字节反存 )
未使用数据 1
24
0
Entries
2
58 02
Max cell size
2
00 01
Entries
2
2c 01
Max cell size
2
00 04
Entries
2
06 01
Max cell size
2
00 10
5-3-5) 控制 (control->05)
内容
字节数
(字节反存 )
Control capability
2
00 00
Remote detach
2
00 00
Control interest
2
02 00
Detach interest
2
02 00
5-3-6) 活动 (activer->07)
内容
字节数
(字节反存 )
Help key
2
00 00
Help index key
2
00 00
Extended help key
2
00 00
Window active
2
00 00
5-3-7) 指针 (pointer->08)
内容
字节数
(字节反存 )
Color pointer
2
01 00
Cache size
2
19 00
未知数据 1
2
19 00
5-3-8) 共享 (share->09)
内容
字节数
(字节反存 )
基本通道号
2
ea 03
未知数据 1
2
7d e1
5-3-9) 颜色缓存 (color cache->0a)
内容
字节数
(字节反存 )
缓存大小
2
06 00
未知数据 1
2
7d e1
5-3-10) 未知类型 ->d 收到:
内容
字节数
(字节反存 )
未知数据 1
12
35 00 00 00 a1 06 00 00  40 42 0f 00
未知数据 2
12
40 42 0f 00  44 e6 0a ba  93 53 19 ba
未知数据 3
12
08 60 03 e1  6a 05 1a ba  4c e6 0a ba
未知数据 4
12
4c a4 7d e1  08 a0 7d e1  01 00 00 00
未知数据 5
12
08 a4 7d e1  00 00 00 00  44 e6 0a ba
未知数据 6
12
54 f2 19 ba  08 a0 7d e1  38 e6 0a ba
未知数据 7
12
00 00 00 00  08 00 0a 00  01 00 19 00
5-3-11) 未知类型 ->12 收到:
内容
字节数
(字节反存 )
未知数据 1
2
01 00
未知数据 2
2
00 00
5-3-12) 未知类型 ->14 收到:
内容
字节数
(字节反存 )
未知数据 1
2
02 00
未知数据 2
2
00 00
5-3-13) 未知类型 ->16 收到:
内容
字节数
(字节反存 )
未知数据 1
12
01 00 00 00  6e 01 00 00  01 00 00 00
未知数据 2
12
d0 07 40 bf  01 b0 83 bf  00 00 00 00
未知数据 3
12
a4 e6 0a ba  5c db 4f 80  e6 01 00 00

此博文原地址为:http://blog.chinaunix.net/u/2244/showart_2154207.html

猜你喜欢

转载自qimo601.iteye.com/blog/614655
RDP