Windows 客户端身份验证是由许多不同的模块组成,共同实现整个登陆、检索和验证过程。Windows 系统还有许多不同且复杂的身份验证过程 (eg: Kerberos 身份验证), 本地安全机构 (LSA) 是一个受保护的子系统,它对用户进行身份验证并将其登录到本地计算机。 此外,LSA 维护有关计算机上本地安全的所有方面的信息。 它还提供用于在名称和安全 ID (SID) 之间进行转换的各种服务。 安全子系统跟踪驻留在计算机系统上的安全策略和帐户。 对于域控制器,这些策略和帐户适用于域控制器所在的域。 这些策略和帐户存储在 Active Directory 中。 此外,LSA 子系统还提供检查对象访问、检查用户权限和生成监控消息的服务。

Windows 身份验证 - 图1

1. LSASS

LSASS 的架构
认证包 描述
Lsasrv.dll LSA 服务器服务既执行安全策略又充当 LSA 的安全包管理器。LSA 包含协商功能,该功能在确定哪个协议要成功后选择 NTLM 或 Kerberos 协议。
Msv1_0.dll 不需要自定义身份验证的本地计算机登录的身份验证包。
Samsrv.dll 安全帐户管理器 (SAM) 存储本地安全帐户、执行本地存储的策略并支持 API。
Kerberos.dll 由 LSA 加载的安全包,用于在机器上进行基于 Kerberos 的身份验证。
Netlogon.dll 基于网络的登录服务。
Ntdsa.dll 此库用于在 Windows 注册表中创建新记录和文件夹。

2. SAM 数据库

SAM 是 Windows 操作系统中存储用户密码的数据库文件,该文件中用户密码是使用 LM 和 NTLM 进行存储的 凭证管理器:Windows 内置功能,允许用户保存用于访问 网络资源或网址的凭据,保存的凭据是根据每个用户的凭据存储器中的用户配置文件存储,凭据加密保存在 C:\Users[Username]\AppData\Local\Microsoft[Vault/Credentials]\Windows 身份验证 - 图2 ### 3. NTDS 在 WIndows 域环境中常见, 在域环境中,Windows 系统会将所有登陆请求发送到同一 AD 林 域控制器中,每个域控制器都具有一个 NTDS.bit 的文件,在左右域控制器之间保持同步==只读域控制器除外==,NTDS.dit 是在 AC 中存储数据的数据库文件。 存储的数据:
  • 用户帐户(用户名和密码哈希)
  • 组账户
  • 计算机帐户
  • 组策略对象