`

[译]RDP Replay

 
阅读更多
原文地址:http://contextis.co.uk/resources/blog/rdp-replay/
发现可以数据包:

keyboard layout是2052-天朝
1. 密文
首先值得注意的是,在发起冗长的握手协议后,所有的信息都是加密的。wireshark可以解密大多数的SSL密文---前提是需要密钥。
2. 第一步
我拥有Linux RDP客户端rdesktop的代码,找到了产生密文交换的地方。这些是关于安全交换共享session密钥的地方。通过printf函数打印出单个pcap session的session密钥。通过实验,发现可以使用rdesktop解密函数来获得解密后的数据
3. 处理数据
协议栈如下所示:

值得注意的是,根据协商,协议栈可能含有或不含SSL,从而RDP和Fast Mode头和细节将会不同,这就是非SSL数据加密的地方。
3.1 pcap重放
可以写一个工具实现读取pcap文件,然后重放。
3.2 Ethernet
发现负载是IPv4(类型是0x0800)
3.3 TCP/IP
处理IP4不是很简单,我必须处理分片,以及checksum检查。我们必须紧紧依靠TCP来确保我们生成正确的TCP/IP数据。需要重新排序数据包,去掉重复数据包,进行TCP checksum检查。默认,它会暂停在TCP的第一个SYN数据包。
3.4 TPKT / X.224 / T.125
这几层进行了最小的处理,仅仅确保匹配,检查长度,丢弃非荷载的帧。我们不感兴趣发起和协商信息。总之,这阶段我们需要的是RDP荷载数据。
3.5 RDP
参照http://msdn.microsoft.com/en-us/library/cc240445.aspx
4. 密文
我需要获得每个我想解密/显示的session中的密钥。唯一的方法是使用私有密钥,由于session密钥使用公共加密方法交换。基本密钥加密类似:

做了简化处理。如图,我们可以使用加密的session来恢复原始session密钥,以及私有密钥。
4.1 获得私有密钥
RDP使用两种加密方法。使用RC4和SSL。更多是使用SSL,但是老版本的服务器/客户端不支持它,并且使用更古老的加密方法。
4.2 RC4密钥提取
最开始(vista之前)只有一种RDP私有密钥,并且存储在LSA(local security authority),一个叫L$HYDRAENCKEY_28ada6da-d622-11d1-9cb9-00c04fb16e75的注册表项中,
用管理员权限使用如下图工具提取:

密钥为c18f99e6……33bd从0x110~0x14f
vista之后使用DPAPI来处理密钥。密钥长度从521 bit增加到2048 bit。更短的密钥在L$HYDRAENCKEY_52d1ad03-4565-44f3-8bfd-bbb0591f4b9d中可以发现

4.3 提取SSL密钥
需要使用Mimikatz。

生成PFX文件后,使用openssl命令来提取密钥
引用
openssl pkcs12 –in infile.pfx –nodes –out outfile.pem

当弹出提示符后,输入密码:mimikatz
4.4 解密
现在获得私有密钥了,所以理论上可以进行sessio密钥恢复了。
5. RDP层
使用https://github.com/FreeRDP/FreeRDP/tree/master/libfreerdp api
  • 大小: 299.7 KB
  • 大小: 299.7 KB
  • 大小: 7.3 KB
  • 大小: 113.4 KB
  • 大小: 22.5 KB
  • 大小: 101.6 KB
分享到:
评论

相关推荐

    FreeRDP-FreeRDP-1.0.1-217-gc0fcf6a.zip_FreeRDP_freerdp安卓下载_remot

    在本案例中,我们讨论的是针对Android平台的FreeRDP版本,文件名"FreeRDP-FreeRDP-1.0.1-217-gc0fcf6a.zip_FreeRDP_freerdp安卓下载_remote"暗示这是一款更新到特定Git提交哈希(c0fcf6a)的Android应用。...

    ubuntu rdp连接windows系统 freerdp

    Ubuntu 中使用 FreeRDP 连接 Windows 系统 在本教程中,我们将学习如何在 Ubuntu 系统中使用 FreeRDP 连接 Windows 操作系统。FreeRDP 是一个免费的开源远程桌面协议(RDP)客户端,能够让我们在 Linux 平台上连接 ...

    Freerdp-web

    FreeRDP-web是基于Linux系统的一个开源项目,用于实现通过Web接口远程访问Windows系统的功能。它利用了远程桌面协议(Remote Desktop Protocol, RDP),这是一种由Microsoft开发的技术,用于允许用户通过网络连接到...

    rdp文件中密码的生成

    RDP(Remote Desktop Protocol)是微软提供的一种远程桌面连接协议,允许用户通过网络访问和控制远程计算机。在处理RDP文件时,有时我们需要在其中设置密码以便安全地进行远程访问。RDP文件实际上是一个文本文件,...

    FreeRDP-Configuration-Manual_FreeRDP_

    **FreeRDP配置手册详解** FreeRDP是一个开源的远程桌面协议(RDP)客户端实现,它允许用户在各种操作系统上连接到Windows服务器或桌面环境。本篇将详细讲解FreeRDP的配置及其相关知识点,帮助你更好地理解和使用这一...

    RDP协议开源代码

    RDP协议,全称为Remote Desktop Protocol,是一种由微软开发并广泛使用的远程桌面连接协议,它允许用户通过网络访问另一台计算机的桌面环境。虽然微软并未公开RDP的完整源代码,但开源社区为了促进技术创新和跨平台...

    windows下编译FreeRDP.zip

    在Windows环境下编译FreeRDP是一项对初学者来说可能颇具挑战性的任务,因为涉及到许多步骤和技术细节。FreeRDP是一个开源的远程桌面协议(RDP)客户端,它允许用户通过命令行或其他应用程序接口与远程Windows系统进行...

    FreeRdp源码分析.7z

    FreeRDP是一个开源的远程桌面协议(Remote Desktop Protocol, RDP)客户端实现,它允许用户通过命令行或者其他接口连接到远程服务器并进行图形界面的操作。本文将深入分析FreeRdp的源码,从main函数开始,探讨客户端...

    RDP-SOURCE-2.4.6.zip

    RDP(Remote Desktop Protocol)是一种由微软开发的远程桌面协议,允许用户通过网络连接到另一台计算机并进行交互操作。在IT行业中,RDP广泛应用于系统管理、远程技术支持以及跨地域的工作协同。"RDP-SOURCE-2.4.6....

    Win7 64位 RDP升级到8.1.zip

    标题中的“Win7 64位 RDP升级到8.1.zip”指的是针对Windows 7 64位操作系统的一个远程桌面协议(Remote Desktop Protocol, RDP)升级包,该升级包将RDP版本从默认的7.0或7.1升级至8.1。RDP是微软提供的一项功能,...

    Windows XP RDP 升级到7.0补丁

    **Windows XP RDP 升级至7.0补丁详解** 远程桌面协议(Remote Desktop Protocol,简称RDP)是微软操作系统内置的一种远程控制协议,它允许用户通过网络连接到另一台计算机并进行交互操作。在Windows XP系统中,原生...

    windows7 64位 RDP升级到8.1补丁包

    远程桌面协议(Remote Desktop Protocol,简称RDP)是Windows操作系统内置的一种远程控制协议,允许用户通过网络连接到另一台计算机并进行操作。在Windows 7 64位系统中,RDP版本可能较低,为了获得更好的性能和安全...

    C#调用RDP实现远程桌面共享控制

    在IT行业中,远程桌面协议(Remote Desktop Protocol,简称RDP)是一种广泛使用的远程访问技术,由微软开发,允许用户通过网络连接到另一台计算机并进行交互操作。在本项目中,我们将探讨如何利用C#编程语言来调用...

    Linux下安装FreeRDP连接Windows远程桌面的好软件软件.pdf

    Linux下安装FreeRDP连接Windows远程桌面的好软件软件 在Linux系统中,连接Windows远程桌面一直是一个难题,特别是在Linux系统中没有类似微软远程桌面的东西。VNC是一个选择,但是VNC却不能连接Windows的远程桌面。...

    rdp0708.zip

    rdp0708图形化检测工具,此工具可以准确的检测存在rdp0708漏洞的主机

    linux下,远程桌面FreeRDP 源码

    Linux下的远程桌面解决方案FreeRDP是一款开源的远程桌面协议(RDP)客户端,它允许用户在Linux系统上连接并控制Windows、Mac以及其他支持RDP的服务器。FreeRDP基于X Window System,为用户提供图形化的界面来实现...

    RDP Wrapper10.0.19041.84.rar

    RDP Wrapper是一款强大的远程桌面服务工具,主要用于Windows操作系统,尤其是针对Windows 10。这个工具允许用户在不购买额外授权的情况下,实现多个用户同时通过RDP(Remote Desktop Protocol)连接到同一台计算机。...

    RDP.rar_RDp_rdp wince _rdp client_rdp connection_rdp.pdf

    远程桌面协议(RDP,Remote Desktop Protocol)是微软开发的一种通信协议,用于允许用户通过网络访问和控制远程计算机。RDP充分利用了图形用户界面的技术,让用户仿佛直接坐在远程计算机前操作一样,极大地提升了...

    rdp文件中的密码加密解密程序

    RDP(Remote Desktop Protocol)是微软提供的一种远程桌面连接协议,允许用户通过网络访问和控制远程计算机。在RDP文件中,有时会包含用户的登录凭证,如用户名和密码,以便于自动化连接过程。这些信息通常是经过...

Global site tag (gtag.js) - Google Analytics