前言:
最近看到很多利用加载器来加载shellcode来实现免杀的思路,前段时间本公众号还推了一个j0师傅的golang加载器,大家用了过后是不是感觉效果都不错?今天本文来利用python来作为加载器来实现免杀的效果。
先说说效果:
经本地测试免杀360全家桶+火绒。
当然免杀的不止这些,其余的没有本地测试,放微步、vs、vt等平台上去跑了。
微步检出率(3/25)
vs检出率(4/49)
vt检出率(16/69)
从上述检测结果来看,国内主流的杀软都过了,检出的基本上都是那几款国外的,在国内用的不多的杀软。
另外windows defender免杀不了~不过在win10中有一个“避让策略”,也就是说当你win10上装了其他杀毒软件后,windows defender就会自动关闭。(惊!小明的win10因为装了杀毒软件然后就不安全了)
大部分脚本语言加载 shellcode 都是调用的c的ffi,用python加载shellcode我们可以结合ctypes这个库来实现。ctypes 是 Python 的外部函数库。它提供了与 C 兼容的数据类型,并允许调用 DLL 或共享库中的函数。可使用该模块以纯 Python 形式对这些库进行封装。
再来说下使用方法:
-
cs选择好监听器并生成c x64的payload。
-
复制里面的shellcode到加载器里面。
-
利用pyinstaller等工具打包成单一无窗体可执行文件。
关于免杀维护:
如果用了一段时间后被杀了,可以先看看是杀加载器的特征还是杀shellcode特征,一般都是啥加载器特征多,只需要把加载器中各种变量变形一下就可以了,或者对方法进行变换。
比如说下图:
更多精彩实战文章关注微信公众号:None安全团队