本人一直在从事运维方面工作,虽然对安全行业接触较少,但也会偶尔迸出一些新奇的思路,今天在散心时,突然想到了一种比较有趣的免杀思路,于是乎,决定将思路整理出来,供大家实现。
服务端发送组合器到客户端,组合其运行后等待接收数据。
当需要时,客户端会自动在服务端接收【组合器模块】并在需要时合并为一个组合器程序,此时组合器则通过【进程通信】直接与客户端通信,获取到shellcode代码。
而执行器的作用是自身执行恶意代码,当需要执行恶意代码时,【执行器】会通过【进程通信】直接在【组合器】中获取shellcode残片,并在自身内存中完成组装任务。
当组合完毕后,会直接自身执行恶意代码,此时我们只需要在服务端,防止侦听器等待肉鸡上线即可。
【实现优势】
杀软查杀时,一定会杀掉我们的【组合器】和【执行器】,但只要我们的客户端一直没有恶意行为,那么只要我们需要,随时可以下载一套新的全家桶。
此时此刻,杀软就会有永远杀不完的【组合器】和【执行器】,越杀越多的无效启动项。
由于【组合器】和【执行器】两者直接使用了进程间通信,那么,在杀软眼里,这俩东西就是狼狈为奸,很可能被杀掉,但想要顺着这条线索找到母体程序,相对来说困难很多。
就算被杀其实也不怕,因为只要我们跑的足够快,提前加载到内存中,杀不杀我,意义不是太大,我已经先干为敬了。
需要注意,在实现应该,注重 【客户端与组合器】之间的通信,必须要以最快的速度断开连接,与组合器【撇清关系】,做好无罪声明。
这边我提到了,子弹上膛,这个子弹,就是我们后台的一个个独立的【组合器】和【执行器】模块,子弹出堂就是所谓的下载更多载荷。
那,对于杀软来说,如何查杀这些木马呢?其实应该会这样,杀软发现组合器+执行器 很可疑,那么很有可能会杀掉我们的这两个程序,因为客户端和执行模块早就断了联系,所以,发现客户端并不是那么容易。
打个比方:子弹一旦飞出枪膛,那么子弹是依靠自身动能运动的,所以与枪无关,只与子弹有关系,当今杀软没有那么智能,还做不到发现客户端。