- 浏览: 278659 次
文章分类
- 全部博客 (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 284网上下载的图片,忘了来源 -
windows提权集合
2015-06-30 00:23 541https://blog.netspi.com/5-ways- ... -
[转]Access to every PC and become local Admin
2015-06-29 21:50 508原文地址:http://www.gosecure.it/blo ... -
[转]Top Five Ways SpiderLabs Got Domain Admin on Your Internal Network
2015-06-29 21:46 1474原文地址:https://www.trustwave.com/ ... -
[转]如何获得window管理员权限
2015-06-29 21:21 448引用A tutorial on how to get into ... -
Window提权基本步骤
2015-06-03 22:00 753原文地址: http://www.fuzzysecurity. ... -
[转]malware persistence
2015-05-06 23:46 384原文地址:http://jumpespjump.blogspo ... -
[转]backdoor a windows domain
2015-05-06 22:56 473原文地址:http://jumpespjump.blogspo ... -
[译]解密MSSQL密码
2015-03-26 00:43 2821原文地址: https://blog.ne ... -
[转]badsamba
2015-03-20 00:55 301原文地址:http://blog.gdssecurity.co ... -
window增加硬盘性能方法
2015-02-05 01:03 337参考地址:http://way2h.blogspot.com/ ... -
[译]Skeleton Key Malware & Mimikatz
2015-01-28 20:29 771原文地址: http://adsecurity.org/?p= ... -
绕过PowerShell执行策略的15种方法
2015-01-28 02:27 847https://blog.netspi.com/15-ways ... -
[翻译]oledump: Extracting Embedded EXE From DOC
2015-01-04 22:40 915原文地址:http://blog.didierstevens. ... -
[工具]volatility----Windows内存取证
2015-01-04 22:01 1518下载地址:https://github.com/volatil ... -
[译]Windows提权:ahcache.sys/NtApphelpCacheControl
2015-01-03 21:12 1005原文地址:https://code.google.com/p/ ... -
[译]使用Volatility从memory dump获得密码
2014-12-30 12:27 3739原文地址:https://cyberarms.wordpres ... -
vmss2core将VMware镜像转换成memory dump
2014-12-26 23:59 0参考:http://kb.vmware.com/selfser ... -
Windows工具集
2014-12-25 00:54 502参考:https://community.rapid7.com ... -
Kerberos攻击
2014-12-18 01:39 594参考: 1. http://securityweekly.co ...
相关推荐
为RDP开源项目FreeRDP代码,鉴于微软并未开放其源代码,所以一套符合RDP协议的代码有利于云终端软件的开发
rdp0708图形化检测工具,此工具可以准确的检测存在rdp0708漏洞的主机
linux下通过源码安装FreeRDP的方法步骤,包括所依赖的库,软件包等,参照了freerdp官网上的方法,同时备注了期间可能遇到问题的解决方法.
基于命令行的rdp生成工具 调用方法: RDPGen.exe remoteip username password remoteip:远程机器的IP地址 username:登录的用户名 password:登录密码 调用后会生成一个remote.rdp文件。注意生成的rdp文件只能在本机...
nvidia发布的 让windows的rdp远程桌面环境也可以使用 GrForce GPU来做终端桌面的OpenGL 加速补丁
windows下编译开源工具FreeRDP相信很多新手都不知道如何编译,或者出现大量错误,因此,我整理了windows下编译FreeRDP所需要的软件,环境配置,按照操作步骤,几分钟就会编译成功。
其实是把RDC升级为支持RDP 7.0,升级后,XP本身还不能提供RDP 7.0服务
ubuntu系统下连接windows操作系统教程,freerdp安装使用
RDP client and master for win
基于最新的FreeRDP开源,已整合最简,.so资源已封装,基于RDP协议的android手机可连接电脑远程桌面的客户端,整套源码经测试可用。项目import置入eclipse无报错! 1)支持Android 2.2(含)以上系统 2)支持RDP协议 ...
让XP Home开启RDP桌面步骤.让Home假装成Pro.开启RDP桌面.
RDP Wrapper对应的配置文件,支持10.0.1904.1503
中文RDP协议简要分析 PDF 中文RDP协议简要分析 PDF 中文RDP协议简要分析 PDF 中文RDP协议简要分析 PDF 中文RDP协议简要分析 PDF
windows7 64位 RDP升级到8.1补丁包
Windows远程登录使用的是一个rdp后缀的配置文件,rdp文件仅仅为简单的配置文件,可以配置远程主机的IP地址、用户名和密码。而密码是以密文形式配置在rdp文件中的,本...可以使用RDP.exe来验证加密后的密文是否正确。
通过执行本升级包,可以将RDP7.1升级为RDP8.0,以充分利用RDP8.0提供的RemoteFX相关功能
用于基于 x64 的系统的 Windows 7 更新程序 (KB2592687),通过执行本升级包,可以将RDP7.1升级为RDP8.0,以充分利用RDP8.0提供的RemoteFX相关功能
Guacamole-RDP没有声音解决办法,远程桌面没有声音,是库没有加载,本文指导如何加载库。
RDP协议的白皮书 是window官方的白皮书,对RDP详细介绍和说明 以及RDP所涉及的协议介绍等等
freerdp开发手册。。。。。。。。。。。。。。