目录

Wireshark 分析 RDP 服务器专有证书

本文记录一次使用 Wireshark 分析 RDP 证书的过程,这次遇到的证书比较特殊,是服务器专有证书(Server Proprietary Certificate),不能直接使用 X.509 格式的方式查看,当时为了分析这个证书花了不少时间。

下面记录一下分析过程,不想看过程可以直接跳到第三章节看快速判断方法。

一、定位数据位置

1. 筛选数据包

首先筛选 RDP 协议并找到 ServerData Encryption 包

2. 定位数据

定位到 serverCertificate 字段,就是证书数据

1
Remote Desktop Protocol -> serverData -> serverSecurityData -> serverCertificate

3. 查看数据

右键 serverCertificate 那一行,选择"显示分组字节",以"原始数据"方式显示,看到的就是字段数据了。

二、提取关键信息

参考微软官方文档分析证书数据结构,包括 dwVersion、certChainVersion 等字段的含义和读取方法(小端序)。

1. 判断证书链版本

  • certChainVersion0x00000001 时,属于"服务器专有证书"
  • certChainVersion0x00000002 时,属于 X.509 格式证书

2. 分析证书内容

专有证书包含以下字段:版本、签名算法 ID、密钥交换算法、公钥类型、公钥长度、公钥对象、签名类型、签名长度、签名对象等。

三、总结:快速判断的方法

  • 如果 serverCertificate 以 02 开头,是 X.509 证书
  • 如果 serverCertificate 以 01 开头,是专有证书,签名算法和密钥交换算法固定为 RSA,可通过公钥长度判断是 RSA2048 还是 RSA1024