渗透技巧——Windows 中 Credential Manager 的信息获取
0x00 前言
在后渗透阶段,获得权限后需要搜集目标系统的信息。信息越全面,越有助于进一步的渗透。 对于 Windows 系统,Credential Manager 中包含十分重要的信息。 这其中具体包含什么类型的信息,获取的方法有哪些呢?本文将要一一介绍
0x01 简介
本文将要介绍以下内容:
- Credential Manager 中不同类型的凭据
- 不同凭据的明文口令获取方法
- 实际测试
0x02 Credential Manager 简介
Credential Manager,中文翻译为凭据管理器,用来存储凭据(例如网站登录和主机远程连接的用户名密码)
如果用户选择存储凭据,那么当用户再次使用对应的操作,系统会自动填入凭据,实现自动登录
凭据保存在特定的位置,被称作为保管库(vault)(位于 %localappdata%/Microsoft\Vault
)
凭据类别:
包含两种,分别为 Domain Credentials
和 Generic Credentials
Domain Credentials:
只有本地 Local Security Authority (LSA) 能够对其读写
也就是说,普通权限无法读取 Domain Credentials 类型的明文口令
Generic Credentials:
能够被用户进程读写
也就是说,普通权限可以读取 Generic Credentials 类型的明文口令
参考资料:https://msdn.microsoft.com/en-us/library/aa380517.aspx
0x03 实际测试
测试 1:
测试系统: Win7
访问文件共享 \\192.168.62.130
如下图
填入正确的用户名密码,选中 记住我的凭据
下次再访问时,就不需要再次输入用户名密码
通过控制面板能够找到添加的凭据,位置为 控制面板
- 用户帐户和家庭安全
- 凭据管理器
如下图
密码被加密,无法直接查看
注:文件共享的凭据类型默认为 Domain Credentials
测试 2:
测试系统: Win8
使用 IE 浏览器访问网站 https://github.com/,登录成功后选择记录用户名密码
通过控制面板访问凭据管理器,如下图
注:Win8 开始,凭据管理器的页面进行了改版(同 Win7 不同),添加了 Web 凭据
显示凭据密码需要填入当前用户名口令,如下图
注:IE 浏览器的凭据类型默认为 Generic Credentials
测试 3:
测试系统: Win7
通过控制面板添加普通凭据,Internet 地址或网络地址为 Generi1
,用户名为 test1
,密码为 pass1
,如下图
通过控制面板无法获得该普通凭据的明文口令
0x04 导出 Credentials 中的明文口令
1、获得系统凭据的基本信息
工具 1: vaultcmd(windows 系统自带)
常用命令:
列出保管库(vault) 列表:
vaultcmd /list
注:不同类型的凭据保存在不同的保管库 (vault) 下,列出保管库(vault) 概要,凭据名称和 GUID:
vaultcmd /listschema
注:GUID 对应路径 %localappdata%/Microsoft\Vault\{GUID}
下的文件,如下图
列出名为"Web Credentials"的保管库(vault) 下的所有凭据信息:
vaultcmd /listcreds:"Web Credentials"
注:如果是中文操作系统,可将名称替换为对应的 GUID,命令如下
列出 GUID 为 {4BF4C442-9B8A-41A0-B380-DD4A704DDB28}
的保管库(vault) 下的所有凭据:
vaultcmd /listcreds:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}
列出 GUID 为 {4BF4C442-9B8A-41A0-B380-DD4A704DDB28}
的保管库(vault) 的属性,包括文件位置、包含的凭据数量、保护方法:
vaultcmd /listproperties:{4BF4C442-9B8A-41A0-B380-DD4A704DDB28}
工具 2:cmdkey
命令行输入 cmdkey /list
能够列举出系统中的 Windows 凭据
2、获得 Domain Credentials 的明文口令
工具: mimikatz
参数:
sekurlsa::logonpasswords
对应前面的 测试 1 ,在 credman 位置显示,如下图
注:mimikatz 不仅能导出 Domain Credentials 的明文口令,也能导出普通凭据(Generic Credentials) 类型的明文口令,但无法导出 IE 浏览器保存的 Generic Credentials 类型的明文口令
3、获得 Generic Credentials 的明文口令
(1) IE 浏览器保存的 Generic Credentials
工具: Get-VaultCredential.ps1
下载地址:https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-VaultCredential.ps1
对应前面的 测试 2 ,Win8 系统成功导出明文口令,如下图
注:该脚本也能获得名为 Windows Credential 的保管库(vault) 下面的凭据信息,但无法获得凭据的明文口令
补充:Win7 系统下的凭据管理器同 Win8 有区别,多了一个选项,指定 程序使用此密码时提示我提供权限
,如下图
当选中时,使用 powershell 脚本读取明文口令时会弹框提示(无法绕过),如下图
(2) 其他类型的普通票据
工具: Invoke-WCMDump.ps1
下载地址:https://github.com/peewpw/Invoke-WCMDump/blob/master/Invoke-WCMDump.ps1
对应 测试 3 ,普通用户权限即可,能够导出普通票据的明文口令,如下图
注:该脚本还能导出 Domain Credentials 的信息(不包括明文口令)
0x05 小结
本文介绍了不同类型的票据(Credential) 明文口令的获取方法,测试多个工具,帮助大家更好理解这部分内容。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
下一篇: Covenant 利用分析
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论