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


14

我已经使用metasploit开发了测试机,并且能够从SAM文件中获取哈希值。我尝试运行命令SYSTEM以获取它们,但无法这样做。什么是从SAM文件提取哈希的更便携式方法?

Answers:


12

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

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

具体如何执行取决于您的Windows版本:XP需要一个外部程序,Vista和7需要一个外部程序vssadmin create shadow,而Server 2008需要该diskshadow命令。从Live Domain Controllers安全地转储哈希页上有关于此过程的更多详细信息,以及说明和脚本。

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

最后,Google给出了此代码段,我自己从未使用过metasploit不能评价它的有用性:

meterpreter> use priv
meterpreter> hashdump

SAM \ SYSTEM文件和SAM \ SYSTEM注册表子项之间有什么区别(我指的是vmarquet的答案)?内容是否相同?
GordonAitchJay

1
是的,这些文件实际上是注册表数据库的存储位置–文件“ SYSTEM”保存HKLM \ SYSTEM的数据。(我的意思是,它必须存储在某个文件中的某个地方,不是吗?)您可以查看一下HKLM\SYSTEM\CurrentControlSet\Control\HiveList哪些子项与哪些文件相对应。
user1686

12

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

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

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


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

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

可以在哪些Windows风格上运行(或者不可以)?试图告诉从MSDN网站,但它没有列出它(至少我没有看到它)
n00b

这只会转储本地帐户。要获取缓存的域凭据,您还需要从注册表中获取安全性。那么您可以运行:python /usr/share/doc/python-impacket/examples/secretsdump.py -sam SAM -security SECURITY -system SYSTEM LOCAL以转储所有缓存的凭据。
n00b

5

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


/etc/shadow Linux系统不同Windows SAM文件被禁止复制/读取。相反,要解决此问题,工具将从内存中提取哈希值。

我将在下面介绍解决此问题的方法:

米米卡茨

使用运行mimikatz sekurlsa::logonpasswords

fgdump

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

哈希转储

内置在抄表器中;从内存中提取哈希值。

登记处

也可以从注册表中提取(如果您有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获得访问权限,否则大多数都不会获得所有哈希值。


也许我误解,但以何种方式是一样的工具Mimikatzfgdump任何比C&A更便携的或不同呢?据我所知,它们都是Windows附带的所有第三方工具,需要分别加载。另外,出于我的好奇心,当存在Ophcrack之类的工具时,哈希转储工具的用例是什么?
哈辛

可以使用mimikatz通过可引导磁盘在已关闭电源的系统上破解本地哈希,还是仅设计为在已打开电源的系统上运行?
Hashim

1

1

想要指定此处未描述的其他方法,因为在Red Teaming /渗透测试中花费了大量时间,最明显的方法无法访问(被拒绝,由Blue Team监视,等等),并且很高兴知道所有可用的技术。

上面介绍了一种访问文件的变通办法,该文件已由系统处理(不能照常复制/删除)vssshadow.exe

第二esentutil.exe

确切的命令来获取带有句柄的文件副本:

esentutl.exe /y /vss c:\windows\ntds\ntds.dit /d c:\folder\ntds.dit

这适用于SAM,SYSTEM,SECURITY,NTDS.DIT​​等。

PS esentutl.py在impacket的软件包中:https : //github.com/SecureAuthCorp/impacket/blob/master/examples/esentutl.py

PSS 主题PoC图像

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.