Stealing Windows Credentials
凭证 Mimikatz
在 此页面中查找Mimikatz可以执行的其他操作。
Invoke-Mimikatz
在这里了解一些可能的凭证保护措施。 这些保护措施可以防止 Mimikatz 提取某些凭证。
使用 Meterpreter 获取凭证
使用我创建的凭证插件 来搜索受害者内部的密码和哈希值。
绕过杀毒软件
Procdump + Mimikatz
由于SysInternals的Procdump是一个合法的微软工具,因此不会被Defender检测到。 您可以使用这个工具来转储lsass进程,下载转储文件,并从中本地提取凭据。
这个过程是通过SprayKatz自动完成的:./spraykatz.py -u H4x0r -p L0c4L4dm1n -t 192.168.1.0/24
注意:一些杀毒软件可能会将使用procdump.exe转储lsass.exe视为恶意行为,这是因为它们检测到了字符串**"procdump.exe"和"lsass.exe"。因此,更隐蔽的方法是将lsass.exe的PID**作为参数传递给procdump,而不是传递lsass.exe的名称。
使用comsvcs.dll转储lsass
位于C:\Windows\System32
中的名为comsvcs.dll的DLL负责在发生崩溃时转储进程内存。该DLL包含一个名为**MiniDumpW
的函数,设计用于使用rundll32.exe
调用。
使用前两个参数是无关紧要的,但第三个参数分为三个组件。要转储的进程ID构成第一个组件,转储文件位置代表第二个组件,第三个组件严格为单词full**。没有其他可选项。
解析这三个组件后,DLL将创建转储文件并将指定进程的内存传输到此文件中。
可以利用comsvcs.dll来转储lsass进程,从而消除上传和执行procdump的需要。此方法在https://en.hackndo.com/remote-lsass-dump-passwords/中有详细描述。
以下命令用于执行:
您可以使用 lssasy** 来自动化这个过程。**
使用任务管理器转储 lsass
在任务栏上右键单击,然后单击任务管理器
单击“详细信息”
在“进程”选项卡中搜索“本地安全机构进程”进程
右键单击“本地安全机构进程”进程,然后单击“创建转储文件”。
使用 procdump 转储 lsass
Procdump 是微软签名的二进制文件,是 sysinternals 套件的一部分。
使用PPLBlade转储lsass
PPLBlade是一种受保护的进程转储工具,支持对内存转储进行混淆,并将其传输到远程工作站,而无需将其放在磁盘上。
关键功能:
绕过PPL保护
对内存转储文件进行混淆,以规避Defender基于签名的检测机制
使用RAW和SMB上传方法上传内存转储,而无需将其放在磁盘上(无文件转储)
CrackMapExec
转储 SAM 哈希
转储 LSA 机密
从目标 DC 转储 NTDS.dit
从目标 DC 中转储 NTDS.dit 密码历史
显示每个NTDS.dit帐户的pwdLastSet属性
窃取 SAM & SYSTEM
这些文件应该位于 C:\windows\system32\config\SAM 和 C:\windows\system32\config\SYSTEM. 但是你不能简单地复制它们因为它们受到保护。
从注册表中
窃取这些文件的最简单方法是从注册表中获取副本:
下载这些文件到你的Kali机器,并使用以下命令提取哈希值:
卷影复制
您可以使用此服务执行受保护文件的复制。您需要是管理员。
使用vssadmin
vssadmin二进制文件仅在Windows Server版本中可用。
但是你也可以通过Powershell做同样的事情。这是一个如何复制SAM文件的示例(硬盘使用的是"C:",保存在C:\users\Public),但你可以用它来复制任何受保护的文件:
代码来自书籍:https://0xword.com/es/libros/99-hacking-windows-ataques-a-sistemas-y-redes-microsoft.html
Invoke-NinjaCopy
最后,您还可以使用PS脚本Invoke-NinjaCopy来复制SAM、SYSTEM和ntds.dit。
Active Directory凭证 - NTDS.dit
NTDS.dit文件被称为Active Directory的核心,存储着关于用户对象、组以及其成员资料的重要数据。其中包含了域用户的密码哈希。该文件是一个**可扩展存储引擎(ESE)数据库,位于_%SystemRoom%/NTDS/ntds.dit_路径下。
在这个数据库中,维护着三个主要表:
数据表:负责存储用户和组等对象的详细信息。
链接表:跟踪关系,如组成员关系。
SD表:存储每个对象的安全描述符,确保存储对象的安全性和访问控制。
Windows使用_Ntdsa.dll_与该文件进行交互,由_lsass.exe_使用。然后,NTDS.dit文件的部分可能位于**lsass
内存中(您可以找到最近访问的数据,可能是因为使用缓存**来提高性能)。
解密NTDS.dit中的哈希值
哈希值被加密了3次:
使用BOOTKEY和RC4解密密码加密密钥(PEK)。
使用PEK和RC4解密哈希值。
使用DES解密哈希值。
PEK在每个域控制器中具有相同的值,但它在NTDS.dit文件中使用**域控制器的SYSTEM文件的BOOTKEY(在域控制器之间不同)**进行了加密。这就是为什么要从NTDS.dit文件中获取凭证,您需要NTDS.dit和SYSTEM文件(C:\Windows\System32\config\SYSTEM)。
使用Ntdsutil复制NTDS.dit
自Windows Server 2008起可用。
你也可以使用卷影复制技巧来复制ntds.dit文件。请记住,你还需要一个SYSTEM文件的副本(同样,可以从注册表中转储或使用卷影复制技巧)。
从NTDS.dit中提取哈希值
一旦你获得了NTDS.dit和SYSTEM文件,你可以使用工具如_secretsdump.py_来提取哈希值:
您还可以使用有效的域管理员用户自动提取它们:
对于大型NTDS.dit文件,建议使用gosecretsdump来提取它。
最后,您还可以使用metasploit模块:_post/windows/gather/credentials/domain_hashdump_或mimikatz lsadump::lsa /inject
将NTDS.dit中的域对象提取到SQLite数据库
NTDS对象可以使用ntdsdotsqlite提取到SQLite数据库中。不仅提取了秘密,还提取了整个对象及其属性,以便在已经检索到原始NTDS.dit文件时进行进一步信息提取。
SYSTEM
hive是可选的,但允许解密秘密(NT和LM哈希,附加凭据,如明文密码,kerberos或信任密钥,NT和LM密码历史记录)。除其他信息外,还提取以下数据:用户和计算机帐户及其哈希值,UAC标志,上次登录和更改密码的时间戳,帐户描述,名称,UPN,SPN,组和递归成员,组织单位树和成员资格,受信任的域及其信任类型,方向和属性...
Lazagne
从这里下载二进制文件。您可以使用此二进制文件从多个软件中提取凭据。
从SAM和LSASS中提取凭据的其他工具
Windows凭据编辑器(WCE)
该工具可用于从内存中提取凭据。从以下链接下载:http://www.ampliasecurity.com/research/windows-credentials-editor/
fgdump
从SAM文件中提取凭据
PwDump
从 SAM 文件中提取凭据
PwDump7
从http://www.tarasco.org/security/pwdump_7下载并执行它,密码将被提取。
防御
最后更新于