如何在系统运行时转储Windows SAM文件?

如何在系统运行时转储Windows SAM文件?

我使用 metasploit 漏洞利用了测试机器,并能够从 SAM 文件中获取哈希值;我尝试运行命令来SYSTEM获取它们,但无法做到。有什么更便携的方法可以从 SAM 文件中提取哈希值?

答案1

有一个更简单的解决方案,不需要管理卷影或使用外部工具。您可以简单地使用reg微软提供的命令复制 SAM 和 SYSTEM(在 Windows 7 和 Windows Server 2008 上测试过):

reg save hklm\sam c:\sam
reg save hklm\system c:\system

(最后一个参数是要复制文件的位置)


然后,您可以使用软件包 samdump2 (在 Debian 上可用:) 在 Linux 系统上提取哈希值apt-get install samdump2

$ samdump2 system sam
Administrator:500:aad3b435b51404eeaad3b435b51404ee:c0e2874fb130015aec4070975e2c6071:::
*disabled* Guest:501:aad3b435b51404eeaad3b435b51404ee:d0c0896b73e0d1316aeccf93159d7ec0:::

答案2

这不是权限问题 - Windows 对 SAM 文件保持独占锁(据我所知,这是加载的注册表配置单元的标准行为),因此任何其他进程都无法打开它。

但是,最近的 Windows 版本有一项名为“卷影复制”的功能,该功能旨在创建整个卷的只读快照,主要用于备份。文件锁是为了确保数据一致性,因此如果创建了整个文件系统的快照,则不需要它们。这意味着可以创建快照C:、安装它、复制SAM文件,然后丢弃快照。

具体如何操作取决于您的 Windows 版本:XP 需要外部程序,Vista 和 7 有vssadmin create shadow,而 Server 2008 有diskshadow命令。页面从实时域控制器安全转储哈希值有关于此过程的更多详细信息,以及说明和脚本。

另外,还有一些工具,例如samdump从各个方向滥用 LSASS 进程,以便直接从内存中提取所有密码哈希值。它们可能比 VSS 快照快得多,但系统崩溃的风险更高。

最后,Google 给出了这个代码片段,由于我自己从未使用过 metasploit,因此我无法评价它的实用性:

meterpreter> use priv
meterpreter> hashdump

答案3

编辑:经过多年的放弃之后,我决定进行编辑。


Windows SAM 文件已被锁定,无法复制/读取,不像 /etc/shadow在 Linux 系统上。相反,为了解决这个问题,工具将从内存中提取哈希值。

有一些方法可以解决这个问题,我将在下面介绍:

米米卡茨

使用 运行 mimikatz sekurlsa::logonpasswords

转储

与 mimikatz 功能类似。运行它,哈希值将被转储到本地文件中。

哈希转储

内置于 meterpreter;从内存中提取哈希值。

註冊

也可以从注册表中提取(如果您有SYSTEM访问权限):

  1. reg save hklm\sam %tmp%/sam.regreg save hklm\system %tmp%/system.reg
  2. 复制文件,然后运行:samdump2 system sam

备份

SAM文件也可以存储在备份位置:C:\Windows\Repair\SAM

我还应该提到,这些工具至少需要权限;并且除非获得访问权限,Administrator否则大多数工具都不会获取所有哈希值。SYSTEM

答案4

相关内容