Windows类域本地属性账户密码哈希存储位置技术咨询
问题根因
你描述的账户属于Windows缓存域登录凭证(Cached Domain Credentials),既不属于本地SAM数据库管理的本地用户,也不属于当前域控实时同步的在线域用户,因此会出现属性查询矛盾的情况:
- set命令读取的是登录会话中遗留的域关联属性,因此会显示关联域
net user默认仅枚举本地SAM内的账户,因此查不到该账户- 用户配置文件是本地存储的用户数据,因此类型会显示为本地
哈希实际存储路径
你要找的离线登录缓存哈希并不存在于SAM文件中,存储位置如下:
- 注册表路径:
HKLM\SECURITY\Cache - 对应磁盘文件:
C:\Windows\System32\config\SECURITY - 你之前排查SECURITY文件未找到是因为默认状态下,即使是本地管理员账户也没有该注册表路径的读取权限,需要先提升权限获取项所有权后才能读取到存储内容。
补充说明
- 该缓存默认最多存储10个域账户的登录凭证,存储的哈希是原生NT Hash经过DCC2(域缓存凭证2代)算法加盐处理后的结果,和普通SAM存储的NT Hash格式不同,这也是常规密码恢复软件无法识别到该账户的核心原因。
- mimikatz的
sekurlsa::msv模块是从LSASS进程的运行内存中读取当前登录会话的活跃凭证,并非从磁盘缓存文件读取,因此可以直接拿到有效NT Hash。 - 如果你需要直接导出磁盘存储的缓存哈希,可以先获取
HKLM\SECURITY\Cache的读取权限,再执行mimikatz命令lsadump::cache即可导出所有缓存域凭证的哈希值。
内容的提问来源于stack exchange,提问作者Spitfire972
相关产品推荐
相关产品推荐

