首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

RDP协议详细解析(2)

2012-06-29 
RDP协议详细解析(二)四、各连接模块说明:1 ISO连接模块:在客户端与服务器的网络套接口建立之后,需要首先建

RDP协议详细解析(二)
四、各连接模块说明:1 ISO连接模块:在客户端与服务器的网络套接口建立之后,需要首先建立RDP协议底层连接,得到连接确认后才能正常通信。具体实现如下:1) 连接过程说明:初始连接时,在网络套接口TCP连接建立之后中,客户端首先进行连接请求,当收到连接确认后表示网络连接层连接建立,随后开始传送RDP数据。2) 连接请求通信数据:

?

内容层内数据长度RDP包类型未知1 未知2 标志其它字节数11221不定值从下一字节开始计算0xd0或0xe0 0x0000另见0x00另见3) RDP包类型说明:0xe0:客户端连接请求0xd0:服务器确认连接??? 4) 未知数据2说明:????? 0x0000:客户端请求连接的值0x1234:服务器确认请求的值??? 5) 其它数据说明:?????? win2003客户端在请求时附带了如下字符—“Cookie: mstshash=Administrator0x0d0x0e”,目前不知其意。其中Administrator为自动登录名,当其长度超过12字节时,只保留前12字节,其它字符都固定不变。2 协议信息初始模块:当基本的RDP连接建立后,需要进行客户端与服务器的系统环境、RDP连接环境的信息交流与连接确认。2-1) 发送包结构:

?

内容字节数值ISO数据层及以下XXXX协议信息初始发送标志20x7f65其后数据长度30x82 0xlength第一部分未知数据704 00 04 00 01 01 ff第二部分未知数据XX三组协议参数第三部分未知数据XX四种连接参数2-1-1) 第一部分未知数据结构:

?

内容字节数值Calling domain20x0400Called domain20x0400未知数据20x0101标志10xff2-1-2) 第二部分未知数据结构:

?

内容字节数值协议适合参数2+4+7*(2+参数值占字节数) 标志,长度,8个参数值协议最小参数2+4+7*(2+参数值占字节数) 标志,长度,8个参数值协议最大参数2+4+7*(2+参数值占字节数) 标志,长度,8个参数值说明:3组参数标志都是0x30,8个参数值的标志都是0x20

?

含义适合值最小值最大值虚拟通道数0x22=340x010xffff用户数0x020x010xfc17=64535Token值0x000x010xffff优先数(priorities) 0x010x010x01遍及数(throughput) 0x000x000x00顶点数(height) 0x010x010x01网络逻辑数据包长度0xffff0x0420=10560xffff=65535版本号0x020x020x022-1-3) 第三部分未知数据结构:

?

内容字节数值本部分标志、数据长度40x04 0x82 0xlength1未知数据1 400 05 00 14 7c 00 01余下的数据长度20x8000|length2未知数据2 800 08 00 10 00 01 c0 00未知数据3 444 75 63 61 –“Duca”4组数据XX各功能模块连接信息2-1-3-1:基本信息

?

内容字节数值(反字节存储) 标志20xc001长度2这一组数据的长度Licence版本21,4,5;lincence标志升级未知数据1 20x0008窗口宽度、高度4宽度,高度未知数据2 40xca01,0xaa03 Keylayout40x00000409客户端系统组件数4419,2195,2462 客户端机器名322字节存储1个字符未知数据3 120x04,0x00,0x0c各四个字节未知数据4 64都是0 未知数据5 801 ca 01 00 00 00 00 00图形颜色位(最大值) 224,16,15,8 未知数据6(疑最小位) 207 00未知数据7 401 00 00 00基本信息返回值多少且固定,认为在具体连接时有更多返回信息。加密信息需要取回加密级别与密钥;通道信息则返回基本图形信息的通道号和其他虚拟通道号,需要另行申请。2-2-1-1) 基本信息

?

内容字节数值(字节反存) 标志20xc001本组信息长度20x0008(固定) 未知数据1 20x0004未知数据2 20x00082-2-1-2) 通道信息

?

内容字节数值(字节反存) 标志20xc003本组信息长度2XX需要单独开辟的通道数2若无需申请则不存在通道号组通道数*2 2个字节存放一个通道号空闲字节20x00002-2-1-3) 加密信息

?

内容字节数值标志20xc002本组信息长度2XX加密位长度41->40位,2->128位加密级别41->低,2->中,3->高服务器随机数长度4目前都是32字节RSA信息长度4从随机数结束开始服务器端随机数32XXRSA信息XXXX密钥信息的类型41->RDP4或0x80000002->X.509 2-2-1-3-1) RDP4类型密钥

?

内容字节数值未知数据1 801 00 00 00? 01 00 00 00公钥标志20x0006长度2length公钥信息RSA1标志452 53 41 31 --“RSA1”公钥模数+衬垫长度448 00 00 00->? =64+8未知数据2 800 02 00 00 3f 00 00 00公钥指数(exponent) 401 00 01 00公钥模数值(modulu) 64XX公钥衬垫值(pad) 800 00 00 00?? 00 00 00 00 公钥签名标志,长度40x0008? length(=0x48)签名模数值 64XX签名衬垫值800 00 00 00? 00 00 00 00 2-2-1-3-1-2) 公钥信息数字签名—X509类型密钥

?

内容字节数值证书个数4不少于2个无效证书XX若证书大于2个,都 被忽略,无效CA证书 XXXX服务器证书 XXXXPadding值16全是0 对于win2003操作系统,当授权组件被更改时,此处的密钥变为X509类型。对于客户端,只提取服务器证书部分的相关信息,以得到服务器随机数。由于对于密钥的处理是采用通用的加密算法与标准,因此在此不予深入的讨论。3 通道申请模块对于RDP连接,各种功能数据都是通过单独的虚拟通道传输的。初始连接后,在进一步的信息通信之前,需要开辟相应的通道。1) 过程说明客户端首先发送一个建立连接独立空间请求,再发送一个用户绑定请求,若服务器同意,将发送用户绑定确认,且含有需要申请的虚拟通道总数totalchannel。随后客户端申请虚拟通道。虚拟通道号从1001+2=1003开始到1001+totalchannel结束,每次申请都应返回一个申请结果。2) 建立连接独立空间请求结构:

?

内容ISO数据层以下请求标示高度值间距字节数XX122值XX0x040x00010x00013) 用户绑定请求结构:

?

内容ISO数据层以下请求标示字节数XX1值XX0x284) 用户绑定确认结构:

?

内容ISO数据层以下请求标志虚拟通道总数字节数XX22值XX0x2e00totalchannel5) 申请虚拟通道号结构

?

内容ISO数据层以下申请标志虚拟通道总数虚拟通道号字节数XX122值XX0x38totalchannelNum,6) 通道申请确认结:

?

内容ISO数据层以下确认标志通道总数申请通道申请通道字节数XX2222值XX0x3e00totallnumnum此博文原地址为:http://blog.chinaunix.net/u/2244/showart_2154206.html

热点排行