我们看如下这么一种场景:
你新入职了一家公司,公司给你发了一台笔记本,这台笔记本加入了公司的域环境;正常情况下,在公司的时候, 你输入账号密码登录笔记本,这时将由域控来进行身份验证,验证通过后你就可以进入到笔记本的桌面了。当你把笔记本带回家或者笔记本没联网时,你的笔记本是无法与域控通信的。这时你输入账号密码进行登录,也可以成功登录到桌面,那么这时为什么呢?这时是通过什么进行认证的呢?
答案是mscash,也就是mscache hash,或者叫dcc(Domain Cached Credentials) hash,中文叫域缓存凭据。其主要作用是当机器无法与域控进行通信时,通过本地注册表保存的dcc hash来验证用户输入的凭据和授权信息,再根据授权信息生成对应的Access Token。不同版本的操作系统dcc hash也有不同。Windows Vista系统之前保存的是dcc1 hash,Windows Vista系统之后保存的是dcc2 hash。dcc1 hash和dcc2 hash的生成算法是不一样的,如下:
- DCC1 Hash = MD4 (NT HASH + LowerUnicode(username))
- DCC2 Hash= PBKDF2(HMAC-SHA1, Iterations, DCC1, LowerUnicode(username))
本文介绍了mscash(域缓存凭据)的概念,它在域环境中用于离线身份验证。当机器无法连接域控制器时,mscash通过本地注册表中的dcc hash进行认证。内容涉及DCC1和DCC2 Hash的生成算法,以及如何使用mimikatz工具解密和修改dcc hash。此外,还讨论了通过修改注册表权限和安全策略来影响缓存凭据的数量。
订阅专栏 解锁全文
4万+

被折叠的 条评论
为什么被折叠?



