Skip to main content

SAM

安全帐户管理器 (SAM) 数据库以 NTLM 哈希格式存储本地 Windows 凭据。 在本地登录期间,输入密码后,本地安全机构 (LSA) 通过根据存储在 SAM 中的数据验证凭据来验证登录尝试。 当散列输入的密码与 SAM 中的 NTLM 散列匹配时,登录尝试成功。 一旦我们在主机上提升了权限,我们就可以通过多种方式从 SAM 检索凭据。 在域环境中,本地帐户的凭据对我们来说可能看起来不那么有趣。 但是,凭证重用是可能的。 如果我们获得主机上本地管理员帐户的 NTLM 哈希或明文密码,域用户可能会在另一台主机上重用该凭据。 例如,如果服务器 Srv01 和 Srv02 由同一系统管理员管理,则 Srv01 和 Srv02 可能具有相同的本地管理员帐户密码。

我们有多种方法来转储 SAM。

1:通过 mimikatz 导出

privilege::debug

lsadump::sam


2:复制注册表

分别从注册表 HKLM\sam 和 HKTM\system 的位置拷贝 SAM 数据库和 SYSTEM。

image.png

在这之后,我们可以通过多种工具来解密,例如 mimikatz,impacket 等。


3:拷贝 SAM 数据库文件

SAM 数据库的文件地址是 C:\Windows\System32\config\SAM,我们是否可以直接复制该文件,然后通过工具来解密呢?

image.png

实际上是不可行的,因为该文件被锁定了,无法对其进行读和写。但我们可以通过卷影复制实现。在提升特权的命令行中,使用 wmic 创建一个新的卷影并且指定来源磁盘,这样可以创建一个 C 盘的快照。我们可以用 vssadmin 命令来验证我们的操作。接着,我们可以从影拷贝中拷贝出 SAM 数据库 以及 SYSTEM 文件。之后用工具来解密 SAM 数据库。


image.png

image.png