起因--公司考试遇到这样一题目
答案当然选b了,排除法 A C D有点类似的成分,通过内存中凭据,hash来进行攻击。
mscache 的全称是
mscache,或者叫 domain cached credentials、DCC、域缓存凭据。
MSCACHE 简介
举个例子的话就是。你的笔记本加了公司的域来方便工作的使用,你一直是使用域账号登陆这台机器。你尝试登陆时通过ldap从dc进行认证,验证通过后你就能登陆域用户的桌面了。(当然,本地administrator没影响) 但是假如你把笔记本电脑带走了,和dc不是同一个网络,访问不到的时候,你依然可以用域账号来登陆这台笔记本。也就是说,当这台机器根本连不上域控的时候,你也可以使用域账号来登陆这台机器,那这个时候,是谁来负责验证你输入的域账号密码是否正确呢? 就是 MSCACHE。原理就是再无法访问域控进行认证的时候。通过本地注册表保存的dcc hash来验证是否正确。
这样就可以理解题目了,因为mscache保存的是 dcc hash 而不是 NTLM hash ,自然就无法 PTH 了
版本区别
域用户的 mscache hash,根据不同的操作系统又分为了不同的版本,
分别是 dcc1 hash 与 dcc2 hash。Vista 之前保存的是 dcc1, 之后保存的是 dcc2。 两种 hash 的生成算法不一样。这段 mscache hash 主要用于对用户输入的密码进行验证
不同版本的算法
DCC1 = MD4 (NT HASH + LowerUnicode(username))
DCC2 = PBKDF2(HMAC-SHA1, Iterations, DCC1, LowerUnicode(username))
MSCACHE查看
MSCACHE 的保存位置默认只有 SYSTEM 权限可读
保存的键值 HKEY_LOCAL_MACHINESECURITYCache
我们通过给 administrator 用户加权限查看
修改如下
NL$1 至 NL$10 就是 10 个可以保存凭据的注册表值。这些值都是二进制类型的,并且其中部分是加密的。
通过本地安全策略可以修改保存的数量
MSCACHE 解密
所以,我们要想解密 MSCACHE,要进行以下步骤:
-
得到 bootkey
-
利用 bootkey 解密 LSA Key
-
利用 LSA Key 解密 NLKM Key
-
利用 NLKM Key 解密 MSCACHE
各数据位置
数据 |
位置 |
算法 |
Key |
MSCACHE |
HKLMSECURITYCache |
AES-CTS |
NLKM Key |
NLKM Key |
注册表 LSA Secrets 区域 |
AES |
变形后的 LSA Key |
LSA Key |
HKLMSECURITYPolicyPolEKList |
AES |
变形后的 boot key |
bootkey |
被拆成了 4 部分,保存在:
|
||
通过mimikatz来获取cache
lsadump::cache
这玩意不方便直接利用,需要解密
但是mimikatz提供了修改的功能
mimikatz.exe "lsadump::cache /user:administrator /ntlm:32ed87bdb5fdc5e9cba88547376818d4" "exit"
成功登录,注意看我的虚拟机,我的主dc和辅dc都是关闭的,开启的机器就普通成员机08
原文始发于微信公众号(qin9):域渗透-mscache
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论