shellcode免杀基础技能概括
免杀需要有一定的编程能力,主要学习的是思路,然后用这些思路进行一些变种组合进行杀软对抗。
直接从网上copy代码,可能copy的代码存在指纹特征而导致免杀失败。
所以本文主要整理的是免杀思路,具体实现需要根据思路编写代码。
加密混淆抗静态查杀
免杀原理:
我们生成的payload是一串汇编码
杀软会根据这个shellcode的一些特征,来判断这个是否为木马文件,那么我们可以用加密的方式进行一个特征隐藏。
操作思路:
首先写一个加密函数,经过函数加密之后,把加密的字符放到真正的木马文件中。
我们运行时,对加密的文件进行一个解密,然后用加载器加载解密后的shellcode,如此一来就避免了文件中有shellcode特征了。
加密类型:
XOR加密,AES加密,RSA加密等
小白操作:
交给ai,让他给你写一个加密解密函数。
加密函数加密shellcode,然后copy到loader中。
解密并执行。
进阶思路:
了解原理可以尝试更高阶的加密思路:
多重加密,混合加密,多方式混合免杀,自创私人加密方式。
文件分离抗静态查杀
原理:
让原本的加载器单独存在,不将shellcode写入代码中,等到对方上线之后,将shellcode以各种方式传输到目标文件中,再进行上线。
常见分离方式:
文件分离法:
加载器加载本地图片,文本之中的内容上线
坑点:
CS的RAW模式直接生成的bin文件可能有些错误,可以生成个代码格式的,用二进制流写入文件中,loader再读取上线。
参数分离法:
类似于某些安全工具,需要我们启动的时候传参。
例:pip install cool
我们就是把shellcode从传参的角度加载到内存中。
动态传参文件类型shellcode
动态传参字节流类型shellcode
http传递法:
加载器本身没有shellcode,
加载器执行时,网络请求,从web,http协议中接收shellcode执行。
坑点:
网络无法直接传递byte数据,我们应当在web中存放经过base,或者其他类型的数据,传递到本地后再分解为byte类型加载到内存中。
socket管道:
木马连接我们的服务器,服务器发送给他shellcode,他再执行。
不作为重点,杀软比较敏感,而且你要是socket连接了的话都可以直接执行命令了,就不需要传shellcode了。