明文密码和散列值抓取防范方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
明⽂密码和散列值抓取防范⽅法
⼀、单机密码抓取的防范⽅法
微软为了防⽌⽤户密码在内存中以明⽂形式泄露,发不了补丁KB2871997,关闭了Wdigest功能。
windows server 2012以上版本默认关闭Wdigest,使攻击者⽆法从内存中获取明⽂密码。
对于win server 2012以下版本,通过安装KB2871997补丁,可以避免攻击者获取明⽂密码。
通过查看注册表键值,可以判断Wdigest功能状态。
如果该项值为“1”则为开启,即可以获取明⽂密码,如果该项值为“0”,则明⽂密码不会出现在内存中。
开启和关闭Wdigest Auth命令如下:
(1)reg add 命令
开启Wdigest Auth
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
关闭Wdigest Auth
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
(2)使⽤powershell
开启Wdigest Auth
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 1
关闭Wdigest Auth
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 0
⼆、防范抓取明⽂密取和散列值
1.设置Active Directory 2012 R2功能级别
win server 2012 R2新增了⼀个“受保护的⽤户”的⽤户组,只要将需要保护的⽤户加⼊该组,攻击者就⽆法通过mimikatz等⼯具抓取明⽂密码和散列值了。
此组的成员将受到针对⾝份验证安全威胁的额外保护。
有关详细信息,请参阅 /fwlink/?LinkId=298939
2.安装KB28711997补丁
KB28711997补丁是微软为了解决PsExec远程查看(c$)问题的补丁,能使本地账号不再被允许远程接⼊计算机系统,但是系统默认的本地管理员账号administrator这个SID为500的⽤户例外——即使将Administrator改名,该账号的SID还是500,攻击者仍然可以使⽤横向攻击⽅法获得内⽹中其他机器的控制权。
安装28711997后,仍需要禁⽤默认的Administrator账号,以防御哈希传递攻击。
3.通过修改注册表禁⽌在内存中存储明⽂密码
微软在Windows Xp版本中添加了⼀个Wdigest协议。
该协议能够使windows将明⽂密码存储在系统内存中,以⽅便⽤户登录本地计算机。
通过修改注册表的⽅式可以解决内存中以明⽂密码存储密码的问题。
(1)reg add 命令
关闭Wdigest Auth
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
(2)使⽤powershell
关闭Wdigest Auth
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 0
使⽤reg query查询该键值是否添加成功
reg query HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential
修改完成后,注销系统重新登录后,就⽆法利⽤mimikatz等密码抓取⼯具导出明⽂密码了,只能导出NTLM Hash。
因为NTLM Hash⼀般很难破解,所以只要windows设置的密码⾜够复杂,并且保证定期修改密码的习惯,就可以降低系统被彻底攻陷的可能性。
4.防御mimikatz攻击
根据Debug权限确定哪些⽤户可以将调试器附加到任何进程或内核中。
在默认情况下,此权限为本地管理员Administrator所有,除了⽼系统,本地管理员⼏乎不需要使⽤此权限。
mimikatz在抓取散列值或明⽂密码时需要使⽤Debug权限(因为mimikatz需要和lsass.exe进程进⾏交互,如果没有Debug权限,mimikatz将不能读取lsass进程)。
因此,我们可以针对这⼀点采取进⾏防御措施。
将拥有Debug权限的本地管理员从Administrators组中移除。
重启系统后将⽆法再使⽤mimikatz进⾏抓取散列值和明⽂密码了。