Skip to main content

LSASS 本地安全机构子系统

在上个小节讨论 LSA 机密的时候,提及了一下 LSA,即本地安全机构。在 Windows 上,有这么一个进程 lsass.exe,绝对是攻击者的首要攻击目标之一。虽然我们中的一些人知道可以从 lsass.exe 提取凭证,但 LSASS 本质上是什么呢,与 LSA 的联系又是什么呢?让我们先搞清楚这些。

名词与概念

本地安全机构 (LSA) 和本地安全机构子系统服务 (LSASS) 是 Windows 操作系统中处理安全和用户身份认证的密切相关组件。

本地安全机构

LSA 是 Windows 操作系统的一个组件,可执行安全策略并管理用户身份认证。它为各种安全支持提供程序 (SSP) 提供框架,这些提供程序处理特定的身份验证协议,例如 NTLM、Kerberos 等。LSA 负责根据 SSP 提供的身份验证数据生成访问令牌和管理用户会话。LSA 还维护 SAM 数据库。


本地安全机构子系统服务

LSASS 是一个 Windows 进程 (lsass.exe),实现了 LSA 概念并管理 SSP。它负责代表 LSA 执行安全策略和处理用户身份验证请求。LSASS 进程是 Windows 安全模型的重要组成部分,并以高权限运行,这使其成为寻求提取敏感信息(如密码或身份验证令牌)的攻击者的常见目标。

总之,LSA 是 Windows 中管理用户身份认证和执行安全策略的安全组件,而 LSASS 是实现 LSA 并运行 SSP 的进程。 两者相互关联,LSASS 进程负责 LSA 组件的功能。

 

从 lsass.exe 进程中导出凭证

sekurlsa::logonpasswords 是 mimikatz 中的一个子命令,可以从内存中提取出所有可用安全支持提供程序 (SSP) 的凭证,甚至明文密码。尽管我们很多情况下可以使用 PTH (后面介绍) 进行认证,但拥有明文凭证无疑具有显著优势的。为了减少被提取出明文凭证的概率,微软实施了一些举措例如禁用 wdigest (https://stealthbits.com/blog/wdigest-clear-text-passwords-stealing-more-than-a-hash/)。

使用该子命令需要提升特权,mimikatz 的该功能往往也被一些 C2 框架所内置,例如在 Cobalt Strike 中,可以通过更简单的命令 logonpasswords 来实现。

image.png