防范攻击者抓取明文密码和散列值

防范方法

设置AD2012R2功能级别

我们先把Administrator账户添加到Protected Users用户组中,然后在mimikatz上输入以下命令

privilege::debug
sekurlsa::logonpasswords

防范攻击者抓取明文密码和散列值
mimikatz并没有将用户的明文密码或散列值读出,由此看出Protected Users用户组的保护方式是有效的
防范攻击者抓取明文密码和散列值

安装KB2871997

KB2871997是微软用来解决PsExec或IPC命名管道问题的补丁,可以使得本地账号不再被允许远程接入计算机系统,但系统默认的本地管理员账号为500的用户例外。即使Administrator改名,攻击者仍然可以使用横向攻击方法获得内网中其他计算机的控制权。安装KB2871997后,配合禁用Administrator账号,以防御哈希传递攻击。

通过修改注册表禁止在内存存储明文密码

自XP以来,微软添加了一个名为WDigest的协议。该协议能够是Windows将明文密码存储在内存中,以方便用户登录本地计算机。

通过修改注册表的方式,即可解决内存中以明文存储密码的问题。在注册表添加一个键值,值为0

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f

防范攻击者抓取明文密码和散列值
执行reg query命令,查询该键值是否添加成功

reg query HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential

防范攻击者抓取明文密码和散列值
注销后,再次使用mimikatz抓取密码,此时只能抓取到Administrator的NTLM Hash,并没有获得明文密码。因为NTLM Hash是很难被破解的,所以只要设置足够强壮的Windows密码,并养成定期修改密码的习惯,就可以降低系统被彻底攻陷的可能性。
防范攻击者抓取明文密码和散列值

防御mimikatz

根据Debug权限确定哪些用户可以将调试器附加到任何进程或内核中。默认情况下,此权限为本地管理员Administrator所有,除非系统进程,要不然本地管理员不需要使用此权限。

mimikatz在抓取散列值和明文密码是需要使用到Debug权限(和lsass进程进行交互)。因此我们可以针对这一点进行防御。将拥有Debug权限的管理员从管理员组中删除,重启系统后,mimikatz就不能抓到明文密码了。

上一篇:Day 2 快捷键和基本Dos命令


下一篇:ArcSDE版本化管理的好处