不做脚本小子,怎么获取windows凭证
很多时候在实战中,使用像猕猴桃(MimiKatz)的工具进行凭证获取,安全软件很快就会进行警告提示,绕过方法有很多,例如像在源码编译前的做编码处理,编译加壳等,但核心对一些敏感进程进行操作时也同样容易引起安全软件的警告. 那么如果是不用这些工具,我们可以怎么做呢? 下面我们就用Windows系统举例分享,只要有访问权限,我们就一样可以不借助工具来进行获取凭证.
凭据转储
凭据转储是攻击者在 Windows 环境中快速提升权限和横向移动的手段之一。一旦他们获得对计算机的访问权限,尤其是在以 SYSTEM 身份或通过令牌模拟获得访问权限的情况下,他们的第一反应就是提取本地用户或域用户的密码哈希值,有时甚至无需使用像 Mimikatz 这样的工具,以免触发杀毒软件的检测。相反,他们会使用 Windows 原生二进制文件来转储敏感的注册表项和内存快照。
这种方法的强大之处在于它的隐蔽性。拥有管理员权限的攻击者可以使用 reg save 命令导出 HKLM\SAM、HKLM\SYSTEM 和 HKLM\SECURITY 注册表项。然后,他们可以使用 rundll32 命令触发 LSASS 进程的完整内存转储,该进程存储着明文凭据、Kerberos 票据和缓存的登录信息。这些文件可以在离线状态下被提取和破解,而无需再次访问任何活动内存。
实战示例
在下面的终端中,红方首先保存了三个敏感的注册表单元:SAM、SYSTEM 和 SECURITY。这些单元包含密码哈希值和密钥,可供后续解析。
reg save HKLM\SAM sam.save
reg save HKLM\SYSTEM system.save
reg save HKLM\SECURITY security.save接下来,找到 lsass.exe 进程 ID,并运行 rundll32 来触发内存转储,静默生成 lsass.dmp 文件。 最后,使用 secretsdump(.)py 处理提取的注册表单元文件,从而获取所有本地用户的 NTLM 哈希值。这就是离线凭据提取的原理。