Skip to content

Du fängst eine Reverse Shell ab, aber sie ist instabil. Wie verbesserst du sie?

Kurzantwort

Man startet ein Pseudoterminal (meist python -c 'import pty; pty.spawn("/bin/bash")'), legt es mit Ctrl-Z in den Hintergrund, führt lokal stty raw -echo aus, holt es wieder in den Vordergrund und setzt TERM sowie die Zeilen-/Spaltenzahl zurück. Das ergibt ein vollständiges TTY mit Jobsteuerung, Tab-Vervollständigung und funktionierenden Editoren.

Eine rohe Reverse Shell aus nc ist eine „primitive“ Shell: keine Jobsteuerung, keine Tab-Vervollständigung, keine Pfeiltasten, und Ctrl-C beendet die gesamte Sitzung statt nur des laufenden Befehls. Werkzeuge wie su, ssh, sudo und Texteditoren verweigern den Start, weil kein echtes Terminal angebunden ist. Der Ausbau zu einem richtigen TTY ist vor der Rechteausweitung nahezu Pflicht.

Der Standardablauf

Die häufigste Sequenz:

  1. Ein PTY starten auf dem Ziel: python3 -c 'import pty; pty.spawn("/bin/bash")'. Das alloziert ein Pseudoterminal, damit Programme glauben, ein echtes Terminal zu haben.
  2. Die Shell in den Hintergrund legen mit Ctrl-Z.
  3. Dein lokales Terminal korrigieren: stty raw -echo; fg. Der Raw-Modus reicht Tastenanschläge direkt durch (Ctrl-C geht so an den Remote-Prozess, nicht an dein nc), und das Deaktivieren des Echos verhindert doppelte Zeichen.
  4. Die Umgebung wiederherstellen: export TERM=xterm und die Fenstergröße mit stty rows <r> cols <c> setzen, damit Editoren korrekt dargestellt werden.

Danach hast du Tab-Vervollständigung, Befehlsverlauf, ein Ctrl-C, das nur den Vordergrund-Job unterbricht, und Vollbild-Werkzeuge.

Wenn python fehlt

Greife auf script -qc /bin/bash /dev/null zurück oder nutze socat für ein voll interaktives PTY in einem Schritt, wenn du die Binary auf den Host bekommst. expect und bestimmte Laufzeitumgebungen (perl, ruby) können ebenfalls ein PTY starten.

Warum das wichtig ist

Ohne TTY kannst du nicht per su zu einem anderen Benutzer wechseln, sudo ausführen oder die interaktiven Werkzeuge zur Rechteausweitung nutzen, die Maschinen knacken. Dieser Ausbau ist die Brücke zwischen „ich habe Codeausführung“ und „ich kann tatsächlich arbeiten“.

Worauf Interviewer achten

Sie wollen die genaue Beschwörungsformel — pty.spawn, Ctrl-Z, stty raw -echo, fg und das Korrigieren von TERM — plus den Grund für jeden Schritt und eine Ausweichlösung, falls python fehlt.

Wahrscheinliche Anschlussfragen

  • Warum killt Ctrl-C deine ganze Shell, bevor du sie verbesserst?
  • Was tust du, wenn python auf dem Ziel nicht installiert ist?

Quellen

Zertifizierungen

Erhalte 100 Cybersecurity-Interviewfragen + Antworten

Gib deine E-Mail-Adresse ein und wir senden dir das kostenlose PDF-Paket und das Flashcard-Deck.

Kein Spam. Jederzeit abbestellbar.