失败mimikatz源码免杀和成功的免杀Windows Defender
字数 1617 2025-08-29 08:31:35
Mimikatz源码免杀技术分析与实践指南
1. 免责声明与工具说明
- 法律声明:本文所有技术内容仅供网络安全人员进行合法检测和维护参考,禁止用于非法入侵
- 工具使用:提供的工具仅限学习使用,禁止其他用途,需在24小时内删除
- 转载限制:未经授权禁止转载,特别禁止搬运至微信公众号
- 工具时效性:公开的免杀工具会很快失效,仅供参考
2. 免杀效果评估
2.1 测试环境配置
| 机器 | 系统 | 杀毒软件 | 网络状态 |
|---|---|---|---|
| 机器1 | Windows10 | 360安全卫士联网最新版(带安全大脑) | 联网 |
| 机器2 | Windows7 | 火绒联网最新版 | 联网 |
| 机器3 | Windows10 | 360杀毒联网最新版 | 联网 |
2.2 免杀难度排序
从难到易:
- Windows Defender (断网也能检测)
- 火绒 (联网/断网检测能力一致)
- 360安全卫士/杀毒 (联网版,自动上传样本)
- 360安全卫士/杀毒 (不上传样本版本)
3. Mimikatz源码编译基础
3.1 源码获取
从GitHub官方仓库获取:
https://github.com/gentilkiwi/mimikatz
3.2 编译环境配置
- 开发工具:Visual Studio 2012
- 关键配置步骤:
- 平台工具集选择:Visual Studio 2012(v110)
- C/C++ → 常规 → 将警告视为错误:否
- 解决方案配置:x64平台
3.3 编译验证
成功编译后测试基本功能:
privilege::debug # 提取权限
sekurlsa::logonpasswords # 抓取密码
4. 源码级免杀技术详解
4.1 关键字替换技术
4.1.1 主关键字替换
- 将"mimikatz"替换为自定义字符串(如"crowsec")
- 注意区分大小写,需在整个解决方案范围内替换
- 替换位置包括:
- 所有源代码文件
- 资源文件
- 版本信息
4.1.2 作者信息替换
- 替换"gentilkiwi"为自定义字符串(如"crowkiwi")
- 替换"benjamin"为自定义字符串
- 替换作者网站域名:
- "gentilkiwi.com" → "google.com"
- "creativecommons.org" → "baidu.com"
4.2 资源文件修改
4.2.1 版本信息修改
文件:mimilove.rc
- 删除原始敏感版本信息
- 添加自定义版本信息
4.2.2 图标替换
- 使用在线工具生成32×32像素ICO图标(http://www.bitbug.net)
- 替换原始ICO文件以改变文件哈希特征
4.3 功能模块调整
4.3.1 删除mimilove模块
- 移除非必要功能模块减少特征
- 需确保核心功能不受影响
5. 免杀效果测试与分析
5.1 火绒
- 静态检测:所有修改版本均被秒杀
- 动态检测:无差异
5.2 360系列
- 联网版(自动上传样本):
- 静态扫描可能暂时不报毒
- 执行后约1-2分钟被检测(云端分析时间)
- 不上传样本版:
- 免杀窗口期更长
5.3 Windows Defender
- 所有修改版本均被秒杀
- 仅在不自动上传样本的特殊配置下可能绕过
6. 进阶免杀思路
6.1 代码混淆技术
- 控制流扁平化
- 字符串加密
- 垃圾代码插入
6.2 内存免杀技术
- 无文件落地执行
- 反射式DLL加载
- Process Hollowing
6.3 行为混淆
- API调用链混淆
- 延迟执行关键操作
- 合法进程注入
7. 实战建议
- 组合使用多种技术:单一方法难以持久免杀
- 关注杀软更新:及时调整免杀策略
- 控制使用频率:避免样本被大量采集
- 环境适配:针对目标环境定制方案
8. 资源获取
免杀样本与工具参考:
https://github.com/crow821/crowsec
9. 总结
- 源码级免杀对火绒和Windows Defender效果有限
- 360系列可通过制造检测时间差实现短暂免杀
- 持久免杀需要结合多种高级技术
- 免杀是持续对抗过程,需不断更新技术
注意:本文所述技术仅供防御研究,请遵守法律法规。