MSCASH(域登录缓存)

MSCACHE的原理

Macash(又叫domain cached credentials、DCC、域缓存凭据)在PC连接域控失败的时候会自动使用缓存凭据来进行登录,这相当于是除了SAM、NDTS,以外的第三个数据库。

mscash hash 不是NTLM hash,无法用于PTH。

系统默认保存 10 个凭据(可以更改),当被保存的凭据已经超过 10 个的话,新的凭据会覆盖掉老的凭据;凭据被缓存在注册表里。

MSCASH的保存位置默认只有 SYSTEM 权限可读,位于HKEY_LOCAL_MACHINE\SECURITY\Cache(本地账户没有这个注册表项)

使用本地用户打开这个注册表项都为空

1.利用mimikatz获取cache值

token::elevate    #假冒令牌提升至system权限
lsadump::cache

下图是在一台域机器上用本地管理员用户进行登录,抓取到了域内administrator和marry的cache

而不在域内机器是不能进行读取的

2.通过secretsdump获取

域用户加入到本地管理组也可以实现

python3 secretsdump.py redteam.lab/administrator:Qq123456..@win-10.redteam.lab

破解

以administrator为例:

使用hashcat来进行离线破解,真正密码为Qq123456..

‘$DCC2$10240#administrator#b25ba143ea4a2b1617f1d1db7a41f589’

hashcat  -m2100 '$DCC2$10240#administrator#b25ba143ea4a2b1617f1d1db7a41f589'  top10000.txt  --force --potfile-disable

破解了域管administrator的明文密码,所以如果在横向没有头绪的时候,不要忘记了这个方法,可能会有意想不到的收获。

禁用凭证缓存

在组策略中设置禁用缓存

计算机配置—windows设置—安全设置—本地策略—安全选项 交互式登录:之前登录到缓存的次数(域控制器不可用时) 默认是10,设置为0

  • Created 2022-10-22 11:51
  • Published 2021-09-18 11:51
  • Updated 2024-10-20 23:48