- 浏览: 288006 次
文章分类
- 全部博客 (276)
- burp+hydra暴力破解 (1)
- kali linux工具集 (6)
- kali (59)
- linux (54)
- password (14)
- web (63)
- 渗透测试 (50)
- windows (40)
- metasploit (9)
- 信息收集 (32)
- burp suit (4)
- 安全审计 (9)
- https://github.com/secretsquirrel/the-backdoor-factory (0)
- nmap (4)
- arachni (2)
- 工具 (5)
- sql (3)
- 网络 (2)
- 后渗透测试 (10)
- 内网 (5)
- 无线 (2)
- C (3)
- bios (1)
- RoR (12)
- mongodb (1)
- linxu (1)
- gdb (1)
- linux,虚拟化 (1)
- python (4)
最新评论
原文地址: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命令来提取密钥
当弹出提示符后,输入密码:mimikatz
4.4 解密
现在获得私有密钥了,所以理论上可以进行sessio密钥恢复了。
5. RDP层
使用https://github.com/FreeRDP/FreeRDP/tree/master/libfreerdp api
发现可以数据包:
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
发表评论
-
[图] windows 10
2015-08-18 20:37 312网上下载的图片,忘了来源 -
windows提权集合
2015-06-30 00:23 591https://blog.netspi.com/5-ways- ... -
[转]Access to every PC and become local Admin
2015-06-29 21:50 530原文地址:http://www.gosecure.it/blo ... -
[转]Top Five Ways SpiderLabs Got Domain Admin on Your Internal Network
2015-06-29 21:46 1633原文地址:https://www.trustwave.com/ ... -
[转]如何获得window管理员权限
2015-06-29 21:21 474引用A tutorial on how to get into ... -
Window提权基本步骤
2015-06-03 22:00 778原文地址: http://www.fuzzysecurity. ... -
[转]malware persistence
2015-05-06 23:46 411原文地址:http://jumpespjump.blogspo ... -
[转]backdoor a windows domain
2015-05-06 22:56 498原文地址:http://jumpespjump.blogspo ... -
[译]解密MSSQL密码
2015-03-26 00:43 2876原文地址: https://blog.ne ... -
[转]badsamba
2015-03-20 00:55 324原文地址:http://blog.gdssecurity.co ... -
window增加硬盘性能方法
2015-02-05 01:03 355参考地址:http://way2h.blogspot.com/ ... -
[译]Skeleton Key Malware & Mimikatz
2015-01-28 20:29 804原文地址: http://adsecurity.org/?p= ... -
绕过PowerShell执行策略的15种方法
2015-01-28 02:27 964https://blog.netspi.com/15-ways ... -
[翻译]oledump: Extracting Embedded EXE From DOC
2015-01-04 22:40 943原文地址:http://blog.didierstevens. ... -
[工具]volatility----Windows内存取证
2015-01-04 22:01 1544下载地址:https://github.com/volatil ... -
[译]Windows提权:ahcache.sys/NtApphelpCacheControl
2015-01-03 21:12 1029原文地址:https://code.google.com/p/ ... -
[译]使用Volatility从memory dump获得密码
2014-12-30 12:27 3807原文地址:https://cyberarms.wordpres ... -
vmss2core将VMware镜像转换成memory dump
2014-12-26 23:59 0参考:http://kb.vmware.com/selfser ... -
Windows工具集
2014-12-25 00:54 537参考:https://community.rapid7.com ... -
Kerberos攻击
2014-12-18 01:39 622参考: 1. http://securityweekly.co ...
相关推荐
在本案例中,我们讨论的是针对Android平台的FreeRDP版本,文件名"FreeRDP-FreeRDP-1.0.1-217-gc0fcf6a.zip_FreeRDP_freerdp安卓下载_remote"暗示这是一款更新到特定Git提交哈希(c0fcf6a)的Android应用。...
Ubuntu 中使用 FreeRDP 连接 Windows 系统 在本教程中,我们将学习如何在 Ubuntu 系统中使用 FreeRDP 连接 Windows 操作系统。FreeRDP 是一个免费的开源远程桌面协议(RDP)客户端,能够让我们在 Linux 平台上连接 ...
FreeRDP-web是基于Linux系统的一个开源项目,用于实现通过Web接口远程访问Windows系统的功能。它利用了远程桌面协议(Remote Desktop Protocol, RDP),这是一种由Microsoft开发的技术,用于允许用户通过网络连接到...
RDP(Remote Desktop Protocol)是微软提供的一种远程桌面连接协议,允许用户通过网络访问和控制远程计算机。在处理RDP文件时,有时我们需要在其中设置密码以便安全地进行远程访问。RDP文件实际上是一个文本文件,...
**FreeRDP配置手册详解** FreeRDP是一个开源的远程桌面协议(RDP)客户端实现,它允许用户在各种操作系统上连接到Windows服务器或桌面环境。本篇将详细讲解FreeRDP的配置及其相关知识点,帮助你更好地理解和使用这一...
RDP协议,全称为Remote Desktop Protocol,是一种由微软开发并广泛使用的远程桌面连接协议,它允许用户通过网络访问另一台计算机的桌面环境。虽然微软并未公开RDP的完整源代码,但开源社区为了促进技术创新和跨平台...
在Windows环境下编译FreeRDP是一项对初学者来说可能颇具挑战性的任务,因为涉及到许多步骤和技术细节。FreeRDP是一个开源的远程桌面协议(RDP)客户端,它允许用户通过命令行或其他应用程序接口与远程Windows系统进行...
FreeRDP是一个开源的远程桌面协议(Remote Desktop Protocol, RDP)客户端实现,它允许用户通过命令行或者其他接口连接到远程服务器并进行图形界面的操作。本文将深入分析FreeRdp的源码,从main函数开始,探讨客户端...
RDP(Remote Desktop Protocol)是一种由微软开发的远程桌面协议,允许用户通过网络连接到另一台计算机并进行交互操作。在IT行业中,RDP广泛应用于系统管理、远程技术支持以及跨地域的工作协同。"RDP-SOURCE-2.4.6....
标题中的“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补丁详解** 远程桌面协议(Remote Desktop Protocol,简称RDP)是微软操作系统内置的一种远程控制协议,它允许用户通过网络连接到另一台计算机并进行交互操作。在Windows XP系统中,原生...
远程桌面协议(Remote Desktop Protocol,简称RDP)是Windows操作系统内置的一种远程控制协议,允许用户通过网络连接到另一台计算机并进行操作。在Windows 7 64位系统中,RDP版本可能较低,为了获得更好的性能和安全...
在IT行业中,远程桌面协议(Remote Desktop Protocol,简称RDP)是一种广泛使用的远程访问技术,由微软开发,允许用户通过网络连接到另一台计算机并进行交互操作。在本项目中,我们将探讨如何利用C#编程语言来调用...
Linux下安装FreeRDP连接Windows远程桌面的好软件软件 在Linux系统中,连接Windows远程桌面一直是一个难题,特别是在Linux系统中没有类似微软远程桌面的东西。VNC是一个选择,但是VNC却不能连接Windows的远程桌面。...
rdp0708图形化检测工具,此工具可以准确的检测存在rdp0708漏洞的主机
Linux下的远程桌面解决方案FreeRDP是一款开源的远程桌面协议(RDP)客户端,它允许用户在Linux系统上连接并控制Windows、Mac以及其他支持RDP的服务器。FreeRDP基于X Window System,为用户提供图形化的界面来实现...
RDP Wrapper是一款强大的远程桌面服务工具,主要用于Windows操作系统,尤其是针对Windows 10。这个工具允许用户在不购买额外授权的情况下,实现多个用户同时通过RDP(Remote Desktop Protocol)连接到同一台计算机。...
远程桌面协议(RDP,Remote Desktop Protocol)是微软开发的一种通信协议,用于允许用户通过网络访问和控制远程计算机。RDP充分利用了图形用户界面的技术,让用户仿佛直接坐在远程计算机前操作一样,极大地提升了...
RDP(Remote Desktop Protocol)是微软提供的一种远程桌面连接协议,允许用户通过网络访问和控制远程计算机。在RDP文件中,有时会包含用户的登录凭证,如用户名和密码,以便于自动化连接过程。这些信息通常是经过...