【问题记录】防止mimikatz获取到明文密码
- 1. 打补丁KB2871997
- 2. 禁用Wdigest Auth
- 3. 删除用户凭证
搭靶机的时候想弄个通过哈希传递攻击的机器,但是上传mimikatz之后发现可以直接抓取到明文密码。主要是wdigest和ssp-credman这两个位置。
1. 打补丁KB2871997
于是就开始寻找解决办法。我的这台机器是win7,首先猜测可能是没有打补丁的原因,在win7 和 2008 r2 之前都是默认开启Wdigest,需要安装KB2871997补丁防止mimikatz直接抓取到明文密码,但是尝试安装发现该机器已经打了补丁。(补丁下载地址 https://www.microsoft.com/zh-TW/download/confirmation.aspx?id=42745)【另:KB2871997对于RID为500的Administrator用户(操作系统只认RID不认用户名,即使将Administrator改名也不行)和本地管理员组的域用户是没有影响的】
2. 禁用Wdigest Auth
当服务器安装 KB2871997 补丁后,系统默认禁用 Wdigest Auth ,内存(lsass 进程)不再保存明文口令,mimikatz 就读不到密码明文。但是有一些系统服务(例如IIS的SSO身份验证)在运行的过程中需要Wdigest Auth开启,所以补丁采取了折中的办法——安装补丁后可选择是否禁用Wdigest Auth。如果启用Wdigest Auth,内存中还是会保存系统的明文口令。
那么可能是开启了Wdigest Auth的原因:
将下列注册表路径的
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest
以下项的
UseLogonCredential
值修改成0或1
0:关闭Wdigest Auth
1:启动Wdigest Auth
打开注册表,发现表中并没有UseLogonCredential
这个值,所以可以成功抓取到明文密码。
采用下面第一条命令对该值进行创建,并设置为0
# 关闭Wdigest Auth
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
# 开启Wdigest Auth
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
这个时候再使用mimikatz就抓取不到wdigest的密码了,但还可以看到ssp的密码。
3. 删除用户凭证
因为不清楚这个ssp保存的是什么密码,百度了很久没有看到有人和我有同样的问题,而且我发现自己的其他机器上抓取的内容里都是没有这个值的,那么可能是我的这台机器上保存了什么内容,于是百度搜索SSP对应的是什么密码,发现了这么一句介绍:是在该机器上,最近登录到其他RDP终端的账户和密码。
那么就很清楚了,百度一下如何删除Windows下samba保存的用户名和密码,成功解决这个问题。
这个时候mimikatz就抓取不到明文密码啦,可以直接利用hash传递进行攻击啦。(如果是单纯防范可以参考 Mimikatz的多种攻击方式以及防御方式)
参考文章和一些待学习的文章:
- mimikatz的原理,哪个补丁导致了mimikatz无法获取明文密码,如何绕过?
- 浅析 T1003.001—KB2871997&LSA Protection
- 删除Windows下samba保存的用户名和密码
- Mimikatz的多种攻击方式以及防御方式
- 5月微软补丁KB2871997和KB2928120漏洞利用分析
- KB22871997是否真的能防御PTH攻击?
- 【内网渗透】mimikatz 基本使用
- Mimikatz详细使用总结
- Mimikatz获取系统密码攻防研究
- Mimikatz明文密码抓取
- 内网渗透之哈希传递攻击
- Windows用户密码的加密与破解利用(上)
- Windows 用户密码的加密方法与破解
- windows 本地安全设置 灰色_window系统安全加固
- 保护内网安全之Windows工作站安全基线开发(二)
- 从mimikatz抓取密码学习攻防
- Windows渗透测试