Mastodon Mastodon Mastodon Mastodon

Reverse Shell

Aktualisiert: · CyberSecureFox Editorial Team

Eine Reverse Shell ist eine entfernte Kommandozeile, bei der der kompromittierte Rechner selbst eine Verbindung zum Listener des Angreifers aufbaut und ihm interaktive Kontrolle gibt – an eingehenden Firewall-Regeln vorbei.

Wie eine Reverse Shell funktioniert

Bei einer normalen Fernsitzung verbindet sich der Client mit einem Server, der auf eingehende Verbindungen wartet. Eine Reverse Shell kehrt das um:

  • Der Angreifer startet einen Listener auf seinem eigenen Rechner, etwa mit Netcat oder Metasploit.
  • Er nutzt eine Schwachstelle wie Remote Code Execution aus oder lädt eine Webshell hoch und führt auf dem Ziel einen kurzen Befehl aus.
  • Das Ziel verbindet sich zurück zum Listener und hängt eine Shell (bash, cmd.exe oder PowerShell) an diese Verbindung.

Typische Einzeiler nutzen die /dev/tcp-Funktion der Bash, Python, PowerShell oder Netcat. Der umgekehrte Ansatz, eine Bind Shell, öffnet stattdessen einen lauschenden Port auf dem Opfersystem. MITRE ATT&CK ordnet Reverse-Shell-Aktivitäten dem Command and Scripting Interpreter (T1059) sowie Protokollen der Anwendungsschicht für Command and Control zu.

Warum Reverse Shells relevant sind

Die meisten Firewalls und NAT-Geräte blockieren unaufgeforderte eingehende Verbindungen, lassen ausgehenden Verkehr aber zu. Eine Reverse Shell ist daher oft der einfachste Weg, aus einer einmaligen Codeausführungslücke vollen interaktiven Zugriff zu machen. Deshalb enden Exploit-Analysen und Angriffe auf Webanwendungen, VPN-Appliances und IoT-Geräte so häufig mit einer Reverse Shell. Bei Penetrationstests gilt eine funktionierende Reverse Shell als Standardnachweis einer erfolgreichen Kompromittierung. Angreifer tunneln sie mitunter über HTTPS oder DNS, um im normalen Verkehr unterzugehen.

Wie man sich gegen Reverse Shells verteidigt

  • Ausgehenden Verkehr einschränken: Server sollten nur die Ziele erreichen, die sie tatsächlich benötigen.
  • Alarm schlagen, wenn Webserver oder Dienste Shells oder Skriptinterpreter starten.
  • EDR und Netzwerküberwachung einsetzen, um langlebige Verbindungen zu unbekannten Hosts zu erkennen.
  • Aus dem Internet erreichbare Anwendungen zügig patchen, um die ursprüngliche Codeausführung zu verhindern.
Synonyme:
Reverse-Shell, Connect-back-Shell, Reverse-Shell-Verbindung