四、各连接模块说明:
1 ISO连接模块:
在客户端与服务器的网络套接口建立之后,需要首先建立RDP协议底层连接,得到连接确认后才能正常通信。具体实现如下:
1) 连接过程说明:
初始连接时,在网络套接口TCP连接建立之后中,客户端首先进行连接请求,当收到连接确认后表示网络连接层连接建立,随后开始传送RDP数据。
2) 连接请求通信数据:
内容
层内数据长度
RDP包类型
未知1
未知2
标志
其它
字节数
1
1
2
2
1
不定
从下一字节开始计算
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数据层及以下
XX
XX
协议信息初始发送标志
2
0x7f65
其后数据长度
3
0x82 0xlength
第一部分未知数据
7
04 00 04 00 01 01 ff
第二部分未知数据
XX
三组协议参数
第三部分未知数据
XX
四种连接参数
2-1-1) 第一部分未知数据结构:
内容
字节数
Calling domain
2
0x0400
Called domain
2
0x0400
未知数据
2
0x0101
标志
1
0xff
2-1-2) 第二部分未知数据结构:
内容
字节数
协议适合参数
2+4+7*(2+参数值占字节数)
标志,长度,8个参数值
协议最小参数
2+4+7*(2+参数值占字节数)
标志,长度,8个参数值
协议最大参数
2+4+7*(2+参数值占字节数)
标志,长度,8个参数值
说明:3组参数标志都是0x30,8个参数值的标志都是0x20
含义
适合值
最小值
最大值
虚拟通道数
0x22=34
0x01
0xffff
用户数
0x02
0x01
0xfc17=64535
Token值
0x00
0x01
0xffff
优先数(priorities)
0x01
0x01
0x01
遍及数(throughput)
0x00
0x00
0x00
顶点数(height)
0x01
0x01
0x01
网络逻辑数据包长度
0xffff
0x0420=1056
0xffff=65535
版本号
0x02
0x02
0x02
2-1-3) 第三部分未知数据结构:
内容
字节数
本部分标志、数据长度
4
0x04 0x82 0xlength1
未知数据1
4
00 05 00 14 7c 00 01
余下的数据长度
2
0x8000|length2
未知数据2
8
00 08 00 10 00 01 c0 00
未知数据3
4
44 75 63 61 –“Duca”
4组数据
XX
各功能模块连接信息
2-1-3-1:基本信息
内容
字节数
值(反字节存储)
标志
2
0xc001
长度
2
这一组数据的长度
Licence版本
2
1,4,5;lincence标志升级
未知数据1
2
0x0008
窗口宽度、高度
4
宽度,高度
未知数据2
4
0xca01,0xaa03
Keylayout
4
0x00000409
客户端系统组件数
4
419,2195,2462
客户端机器名
32
2字节存储1个字符
未知数据3
12
0x04,0x00,0x0c各四个字节
未知数据4
64
都是0
未知数据5
8
01 ca 01 00 00 00 00 00
图形颜色位(最大值)
2
24,16,15,8
未知数据6(疑最小位)
2
07 00
未知数据7
4
01 00 00 00
基本信息返回值多少且固定,认为在具体连接时有更多返回信息。加密信息需要取回加密级别与密钥;通道信息则返回基本图形信息的通道号和其他虚拟通道号,需要另行申请。
2-2-1-1) 基本信息
内容
字节数
值(字节反存)
标志
2
0xc001
本组信息长度
2
0x0008(固定)
未知数据1
2
0x0004
未知数据2
2
0x0008
2-2-1-2) 通道信息
内容
字节数
值(字节反存)
标志
2
0xc003
本组信息长度
2
XX
需要单独开辟的通道数
2
若无需申请则不存在
通道号组
通道数*2
2个字节存放一个通道号
空闲字节
2
0x0000
2-2-1-3) 加密信息
内容
字节数
标志
2
0xc002
本组信息长度
2
XX
加密位长度
4
1->40位,2->128位
加密级别
4
1->低,2->中,3->高
服务器随机数长度
4
目前都是32字节
RSA信息长度
4
从随机数结束开始
服务器端随机数
32
XX
RSA信息
XX
XX
密钥信息的类型
4
1->RDP4或0x80000002->X.509
2-2-1-3-1) RDP4类型密钥
内容
字节数
未知数据1
8
01 00 00 00  01 00 00 00
公钥标志
2
0x0006
长度
2
length公钥信息
RSA1标志
4
52 53 41 31 --“RSA1”
公钥模数+衬垫长度
4
48 00 00 00->  =64+8
未知数据2
8
00 02 00 00 3f 00 00 00
公钥指数(exponent)
4
01 00 01 00
公钥模数值(modulu)
64
XX
公钥衬垫值(pad)
8
00 00 00 00   00 00 00 00
公钥签名标志,长度
4
0x0008  length(=0x48)
签名模数值
64
XX
签名衬垫值
8
00 00 00 00  00 00 00 00
2-2-1-3-1-2) 公钥信息数字签名—X509类型密钥
内容
字节数
证书个数
4
不少于2个
无效证书
XX
若证书大于2个,都 被忽略,无效
CA证书
XX
XX
服务器证书
XX
XX
Padding值
16
全是0
对于win2003操作系统,当授权组件被更改时,此处的密钥变为X509类型。对于客户端,只提取服务器证书部分的相关信息,以得到服务器随机数。由于对于密钥的处理是采用通用的加密算法与标准,因此在此不予深入的讨论。
3 通道申请模块
对于RDP连接,各种功能数据都是通过单独的虚拟通道传输的。初始连接后,在进一步的信息通信之前,需要开辟相应的通道。
1) 过程说明
客户端首先发送一个建立连接独立空间请求,再发送一个用户绑定请求,若服务器同意,将发送用户绑定确认,且含有需要申请的虚拟通道总数totalchannel。随后客户端申请虚拟通道。虚拟通道号从1001+2=1003开始到1001+totalchannel结束,每次申请都应返回一个申请结果。
2) 建立连接独立空间请求结构:
内容
ISO数据层以下
请求标示
高度值
间距
字节数
XX
1
2
2
XX
0x04
0x0001
0x0001
3) 用户绑定请求结构:
内容
ISO数据层以下
请求标示
字节数
XX
1
XX
0x28
4) 用户绑定确认结构:
内容
ISO数据层以下
请求标志
虚拟通道总数
字节数
XX
2
2
XX
0x2e00
totalchannel
5) 申请虚拟通道号结构
内容
ISO数据层以下
申请标志
虚拟通道总数
虚拟通道号
字节数
XX
1
2
2
XX
0x38
totalchannel
Num,
6) 通道申请确认结:
内容
ISO数据层以下
确认标志
通道总数
申请通道
申请通道
字节数
XX
2
2
2
2
XX
0x3e00
totall
num
num
此博文原地址为:http://blog.chinaunix.net/u/2244/showart_2154206.html

RDP协议详细解析(二)相关推荐

  1. RDP协议详细解析(一)

    RDP协议详细解析   一 前言 二 概述 三 同络层次 四 各连接模块说明 五 各功能模块说明 六 rdpwin结构.数据流说明 七 总结 一.前言 windows从NT开始提供终端服务,它是微软买 ...

  2. 3389 远程桌面 Mstsc RDP协议详细解析 (上)

    转载:https://lcx.cc/post/936/ 下半部分在这里 这是前一段时间想模拟(3389 远程桌面 Mstsc.exe RDP 协议)做一个蜜罐系统,用来记录各种各样的攻击资料,甚至自己 ...

  3. 3389 远程桌面 Mstsc RDP协议详细解析 (下)

    转载:https://lcx.cc/post/937/ 由于太长了,所以分成了两部分,这是下半部分,上半部分在这里 6-1) 连接过程说明 包序号 接收发送 字符 含义 1 R InDr 设备初始连接 ...

  4. RDP协议详细解析(五)

    五.各功能模块说明: 任务标志说明:适用于所有非图形通道数据. 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 00 00 03 00 传输中 传输开始 ...

  5. RDP协议详细解析(四)

    6打印机映射连接模块: RDP协议当前提供映射5个设备,在我们破解过程中并没有区分出他们的区别,在此视为单一处理.打印机的连接在系统登录前完成,以配置操作系统信息. 6-1) 连接过程说明 包序号 接 ...

  6. RDP协议详细解析(三)

    4 系统初始连接模块: 当通道申请各部分通过后,开始系统登录的初始连接.从此数据包开始,所以虚拟通道层以上的网络数据都需要加密,详细的加密功能实现请参见加密模块.登录的网络信息结构如下: 内容 字节数 ...

  7. 蓝牙IBEACON协议详细解析

    蓝牙IBEACON协议详细解析 先看一个不太清楚的图片,这个是nordic官方提供的解析的文档. 先看顶上的三个字节,flags length type,这三个是固定的,因为ibeacon长度是固定, ...

  8. FCoE协议详细解析

    详细解析FCoE协议 FCoE标准是博科首先提出来的.FCoE是由包括Brocade.IBM, HP,EMC, NetApp, Cisco, Emulex, Broadcom, Intel, Nuov ...

  9. Matter协议特性解析(二) 分身(Multiple Fabiric)和权限控制

    聚焦:芯产品,芯市场,芯资讯 今天和大家聊的,是Matter协议如何让一个设备,可以归属多个不同的网络,为了好理解,我叫设备分身:以及同一个网络的权限控制逻辑: 本文一共630字体,阅读时间预计6分钟 ...

最新文章

  1. 会议报名丨CSSNLP 2020 第一届中国自然语言处理学生研讨会开放注册
  2. elasticsearch报错expected <block end>, but found BlockMappingStart解决方法
  3. 利用Aspose.Word控件实现Word文档的操作
  4. Java垃圾收集机制
  5. windows2003安全设置
  6. TCP/IP数据包结构详解
  7. 《Nmap渗透测试指南》—第6章6.6节源端口欺骗
  8. linux文件符数据,linux – 如何监视文件描述符以获得新数据的可用性?
  9. 解决word错误提示宏错误提示和模板错误提示
  10. Android Hessian 通信
  11. Excel 复制粘贴筛选出来的数据行
  12. isbn号码 (java实现)
  13. 微分方程求通解推导-----专升本
  14. 爬虫玩得好,牢饭吃到饱?这3条底线千万不能碰!
  15. 蠕虫病毒 incaseformat 在国内肆虐,可导致用户数据丢失
  16. ansible中的加密
  17. 认识多种处理芯片的特性和实战(上篇)
  18. MAC 打开CAJViewerMac软件时报错
  19. JS之向上取整、向下取整、四舍五入等
  20. R数据分析:变量间的非线性关系,多项式,样条回归和可加模型

热门文章

  1. spring security 2.x HttpSessionEventPublisher 以及listener配置
  2. 第一个hadoop 程序
  3. 第一次加入博客那,鼓励一下自己先
  4. 测试基础-05-bug的定义生命周期
  5. Web前后端交互总结
  6. 靠谱测试人员需具备宏观把控能力
  7. alter procedure是什么意思_板上钉钉的意思
  8. excel删除行 uipath_高级会计师都在用的Excel批处理技巧,祝你早日告别加班
  9. java继承的作用_Java继承概述以及Java继承案例和继承的好处
  10. linux服务器配置python环境_服务器python环境配置福利,CentOS ,Linux 一键下载python3和环境配置...