SAM
安全帐户管理器 (SAM) 数据库以 NTLM 哈希格式存储本地 Windows 凭证被存储据。 在 Security Account Manager 数据库,即 SAM 中,密码是 NTLM 哈希 (基于MD4算法)的形式,简单来说,可以将其视为包含所有用户密码哈希的锁定日志本。在用户尝试地登录期间,Windows 系统将要求输入用户名和密码。输入密码后,系统本地安全机构 (LSA) 通过根据存储在 SAM 中的密码进行数据验证凭据来验证登录尝试。如果用户名和相关 当散列输入的密码与 SAM 中的条目 NTLM 散列匹配时,最终将授予用户访问系统的登录尝试成功。 一旦我们在主机上提升了权限。需要注意的是,SAM只保存了本地账户的凭证,不包含域用户。
在我们获得了主机的最高权限后,我们就可以通过多种不同方式来导出从 SAM 数检索凭据库。尽管 SAM 数据库在域环境中的,本地帐户的凭据对我们来说可能看起来不那么有趣。 但是,凭证重用是可能的。 如果我们获得主机上本地管理员帐户的 NTLM 哈希或明文密码,域用户的密码哈希不可能会直接帮助我们对域进行进在另一步渗透台主机上重用该凭据。 例如,但是从如果服务器 Srv01 和 Srv02 由同一系统管理员的角度管理,对于相似的主机(例如则 WEB01Srv01 与和 WEB02)、乃至完全不同的主机设置Srv02 可能具有相同的本地管理员帐户密码是。
我们有可能的,即多种方法来转储 NTLM 哈希也是相同的。在笔者经历过的真实内网渗透中,是存在这种情况的。SAM。
1:通过 mimikatz 导出
privilege::debug
lsadump::sam
2:复制注册表
分别从注册表 HKLM\sam 和 HKTM\system 的位置拷贝 SAM 数据库和 SYSTEM。
在这之后,我们可以通过多种工具来解密,例如 mimikatz,impacket 等。
3:拷贝 SAM 数据库文件
SAM 数据库的文件地址是 C:\Windows\System32\config\SAM,我们是否可以直接复制该文件,然后通过工具来解密呢?
实际上是不可行的,因为该文件被锁定了,无法对其进行读和写。但我们可以通过卷影复制实现。在提升特权的命令行中,使用 wmic 创建一个新的卷影并且指定来源磁盘,这样可以创建一个 C 盘的快照。我们可以用 vssadmin 命令来验证我们的操作。接着,我们可以从影拷贝中拷贝出 SAM 数据库 以及 SYSTEM 文件。之后用工具来解密 SAM 数据库。