0x01 起因

  现在是信息化爆炸时代,为了能够更全面的吸收(copy)知识的力量,最近搭建了微信公众号的RSS系统,而在调试阶段中看到了这样的一篇文章 printspoofer免杀过360全家桶,很喜欢这种实用文章,安全行业怎么都是需要用或者接触一些免杀的东西,不怕用不上,就怕不知道。

  现在的文章要不就是没用的水文(比如我),要不就是看不懂的水文(巨佬),很赞同klion师傅一篇文章解决一个实际问题的这种风格,也很喜欢酒仙桥发文的排版和文笔,额。闲话到此为止。

主要内容是记录由moonsec的文章引发对某AV针对这种漏洞利用工具查杀规则的探究过程与利用方法

0x02 还原文章流程

PrintSpoofer是一个windows本地提权利用工具
本次测试过程中的exe生成全部选择生成x86位程序


  • 1.公众号文章中是针对PrintSpoofer分享的免杀方法,那先生成出PrintSpoofer.exe,放入布置在公网装有火绒和360的VPS中(vps的环境感觉更接近真实情况),意料中的飞速kill,也就是ctrl+v读条刚刚结束的瞬间

  • 2.文中的处理方法,按照这个进行修改,结果没有问题,成功bypassAV(其实主要是过数字AV的主动云查杀,同时云查杀也是数字AV的亮点)

   ·PrintSpoofer 将这个关键词替换成其他字符串 如 moonsec
   ·PrintSpoofer.cpp PrintSpoofer.h 全部改为 moonsec
   ·帮助注释全部处理掉
   ·release x64 重新生成 (截止到文章编辑结束,目前如果生成x64位的会被查杀,x86位没有问题)


0x03 思考

  • 1.为什么修改关键词可以过掉主动查杀,修改哪个关键词命中规则,还是修改关键词导致改变了什么呢,开始尝试缩减关键词范围
    只进行 PrintSpoofer 将这个关键词替换成其他字符串 如 moonsec
发现同样未被查杀,没有问题,看来可以继续追一下
  • 2.上次修改了5处PrintSpoofer字符串,那么这次选择只修改include这一处是否可以呢
发现被查杀 kill,看来include这里不是关键点
  • 3.上次修改了include这一处,本质上没有改变源代码的逻辑,那么是否改变逻辑才是关键点呢
    修改代码中的源代码,从逻辑上进行修改,此次在任意位置添加一句输出,这是最简单的办法
    从结果来看,是没有被查杀的

0x04 延伸

  • 那么既然改变逻辑是一个小关键点(开始以为是exe的md5是唯一的,不过发现每次生成的exe的md5都是不一样的,这些东西算是知识盲区哈,我就理解为相同代码生成的exe有一个唯一标识,改个逻辑就可以改了唯一标识这样子,懂得师傅请别在意哈0.0),那么针对其他CVE提权工具是否有效呢
    CVE-2020-0796:https://github.com/danigargu/CVE-2020-0796
    目前Github的star数上千 ,理论上是一个流行且影响广泛的windows本地提权的漏洞      

    · 我生成了一个原版exe,一个update版exe,结果是全部被淘汰,但是细心的我发现了一点不同。。此处上gif来体现
    又经过了几次尝试,可以确定原版基本是秒杀,偶尔才是AV会宕机一会后查杀,而修改版是经过几十秒到几分钟不等后才会被查杀,且查杀后重复此过程的话修改版也会被秒杀  「划重点:中途可成功运行exe」

0x05 结论

1.数字AV应该是对这些漏洞利用工具为了查杀效率,占用cpu大小或者其他目的来使用不同的查杀规则对待

2.比如一般的就是唯一标识查杀,本地查杀库存在就直接查杀,在流行的就是唯一标识加沙箱或者其他深度
唯一标识查杀等等,本地查杀库没有的上传云数据库或者沙箱来得出结论进行查杀

3.而无论是沙箱或者深度唯一标识查杀,都是需要计算资源来支持,存在的过程推断大概为:上传->云资源
计算(云查杀库或者沙箱什么的)->得出结果并返回

4.那么数字AV的用户何其庞大,可能按亿计算,猜测每时每秒接受的可疑文件上传数量数字是很大的,再加
上查询或者检测时间,整体占用的资源听起来就是买不起的样子,而一个公司基于成本,产出,收益是不可能
配备完全可以达到实时检测的这种计算资源的,所以对于本地无法查杀的exe在上传到云的这段时间是必须存
在的,而这段时间对于这种漏洞利用工具是很友好的。

5.正常来说,这算是钻空子?貌似不太好解决的空子,这种增加计算资源,造成成本增加的东西应该不太好
申请下来,毕竟收益只是查杀速度快一点。

PS:当然也可能误打误撞得出这么一个结论,毕竟是好奇猜出来的 -.- !

利用场景:目标机存在防护,上传提权脚本或其他程序被直接查杀,此时使用此方法争一个时间差获得一个system权限cmd完全没有问题,时间很充裕,理论上这个方法通杀。。

0x06 无源码时如何修改

  • 直接使用IDA修改exe就可以的,为了真实一些就尝试修改一个以前发在t00ls的烂土豆
  下载下来,文件是正常运行的,当然现在肯定在查杀库里,直接秒杀,这是我又恢复出来后运行的
    打开后直接就看到了一些输出的字符串,这个中文蛮明显的。 我规矩点,还是搜字符串来找修改点
    点击 View -> Open subviews -> Strings    或者shift+f12    会出现IDA收集的这个exe的一些字符串片段
    根据exe运行过程中输出的一些提示语,找到后进去,这个大部分都是,双击一个中文进入Hex View,如下界面
    然后右键edit ,随便输入一些东西
    右键Apply changes   然后点击   Edit -> Patch program -> Apply patches to input file...  ->  出现的界面点ok
    结果没有问题,可以运行