开发这款木马加载器(PainLoader)的初衷是我最近这段时间闲的蛋疼。
其实主要是最近这段时间自己经历了一些比较难受的事情(Emm,说实话,很难受),为了转移自己的注意力,让自己能稍微缓一缓(但是,没什么效果,反而还更糟心了)。
木马使用的是CS中的CS远程上线功能。为了使木马的体积尽可能缩小,使用了C++进行木马源码的编写,之后再进行打包编译,最后把木马大小控制在30k以内。
这个木马是第一版。在代码实现功能上应该没有问题,但是代码写的有点菜,这里就不放出来了,因为代码暂不开源的原因,涉及到C2上线地址的问题,我能想到的两种解决方案如下:
第一种方法:在PainLoader本目录下,把C2地址进行加密后存储在文件里,PainLoader会自动读取那个文件的加密字符串,在内存里对密文进行解密,得到正确的字符串。这样的好处是在没有解密密钥的情况下,被攻击者无法对密文进行解密,能更好的隐藏C2地址。但是坏处也是有的,就是我们需要向被害者传输2个文件,并且要求这两个文件在同一个目录下。
第二种方法:把C2地址作为变量传输进去。这种方法比较方便,只需要在木马程序后面添加C2地址即可。但是这个方法也存在弊端,就是只能在cmd窗口执行exe程序,把C2地址传入,不能双击运行上线。
两种方法各有取舍,我会把这两个程序分别打包,大家可以根据自己的情况进行选择。
在后期测试的过程中,火绒,腾讯管家,趋势的动静态检测目前均能绕过。
加密C2地址的方法能正常绕过360的检测
Cmd传参版本360在经过几次修改特征码和修改执行方式中发现,生成exe文件后第一次运行能正常绕过,但是十几分钟后就已经被标识为木马程序了。可恶,后面有时间再做绕过吧。
下载地址https://github.com/PDWR/painLoader
还有一件事情,就是哪位师傅知道C++怎么动态生成exe程序,Emmm,就是像RAT工具那样直接build出来agent程序的,想知道原理,希望师傅们能带带我,加一下我微信(请备注来源:黑伞攻防实验室),请师傅们不吝赐教。