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