Go语言免杀的一些思路

admin 2023年6月11日21:38:04评论32 views字数 892阅读2分58秒阅读模式
免杀分两种,单体的和分离的。  不管是单体还是分离,其实原理都很简单。  就是一个 loader,一个 shellcode  单体就是把 shellcode 写死在 loader 里面。  分离就是 loader 和 shellcode 分开写

本质没有什么区别,分离是因为 shellcode 写死在 loader 里面,被杀的太厉害了,因此才需要分离。

单体免杀,可以用开源项目

https://github.com/aeverj/NimShellCodeLoader

效果还可以,能上线,但是不稳定,上线之后建议立即迁移进程

先用 cs 生成 raw 格式的 shellcode,然后加载进 loader

Go语言免杀的一些思路

然后得到一个exe

Go语言免杀的一些思路

直接丢到有最新版 360 的环境

Go语言免杀的一些思路

这边也是成功上线了

Go语言免杀的一些思路

迁移进程,防止本体被杀

Go语言免杀的一些思路

Kill 本体进程,删除本体exe

Go语言免杀的一些思路

然后用这个进程继续操作,这个方法的缺点就是没有持久化,一旦关机,机器就下线了,但是可以适用于一些不需要持久化的项目,上线之后迅速打完内网,然后收工。火绒也可以过。

但是过不了defender

Go语言免杀的一些思路

    分离的话,loader github 上有很多,很多都能过 360,如果不能过,稍微改改就能过了。Defender 这里我是用的分离的过的,因为项目还在用,这里先不放源码出来。

Go语言免杀的一些思路

Go语言免杀的一些思路

但是思路可以讲,本质国内过的这些杀软,比如 360,火绒,df,主要还是在查特征。这里为了控制变量,我的 cobaltstrike 用的是纯净版的,就不涉及流量层面的免杀。如果是说更高级一点的杀软,比如 nod32卡巴斯基,以及国外很强的 edr crowdstrike等,这些都会对流量做检测,有些还会 hook windows 底层的函数,就不只是特征这么简单了。

因此过国内这些,其实就是不断的去 fuzz 特征,然后规避特征去做绕过,和绕 waf 是一个道理,相对来讲,国内主流的三大项,360,火绒,df,过起来还是很简单的。上难度,卡巴斯基nod32cs,过起来难一些,但是也并非无解,无非就是多花一些时间罢了

来源:

https://github.com/biggerduck/RedTeamNotes

原文始发于微信公众号(0x00实验室):Go语言免杀的一些思路

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月11日21:38:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Go语言免杀的一些思路https://cn-sec.com/archives/1797596.html

发表评论

匿名网友 填写信息