Shell Upgrade

TTY Fixes & Stabilisierung

Viele Reverse Shells (z. B. über Bash, PHP oder Netcat) starten nur in einer minimalen Umgebung: keine History, keine Pfeiltasten, kein Ctrl+C. Diese Shells sind nicht interaktiv. Ziel eines Shell Upgrades ist es, eine vollwertige TTY-Umgebung nachzubilden.


Ziel des Shell Upgrades

  • Interaktive Eingabe mit History und Zeilenbearbeitung

  • Verwendung von su, nano, passwd und anderen interaktiven Programmen

  • Sauberes Verhalten von Steuerzeichen (z. B. Ctrl+C)


Grundlegender Upgrade-Prozess (TTY via Python)

Nach Verbindungsaufbau:

python3 -c 'import pty; pty.spawn("/bin/bash")'

Alternativen:

python -c 'import pty; pty.spawn("/bin/sh")'

Wenn weder python3 noch python verfügbar:

/usr/bin/python3 -c 'import pty; pty.spawn("/bin/bash")'

Hinweis: Ersetze /bin/bash durch die vorhandene Shell (z. B. /bin/sh)


Steuerung über stty und fg

Nach dem pty-Spawn:

  1. [CTRL + Z] – bringt die Shell in den Hintergrund

  2. Auf Angreifer-System:

stty raw -echo
  1. Zurück in die Shell:

fg
  1. In der Shell (falls nötig):

reset
export TERM=xterm
export SHELL=bash
stty rows 40 columns 120

Alternative Methode mit script

Wenn Python fehlt:

bashKopierenBearbeitenscript /dev/null -c bash

Warum? Das script-Kommando startet eine interaktive Sitzung mit Pseudoterminal (PTY), auch ohne Python.


Nützliche Umgebungsvariablen

export TERM=xterm
export SHELL=bash
stty rows 40 columns 120
  • Verbessert Kompatibilität mit Tools wie nano, top, less

  • Stellt korrekte Fenstergröße sicher


Hinweise je nach Shell-Typ

Shell-Typ
Upgrade möglich?
Methode

Bash

Ja

python pty.spawn, script

Python

Ja

nur stty, ggf. kein Upgrade nötig

PHP

Ja

Nachladen von python oder script nötig

Perl

Ja

Selten, aber mit exec kombinierbar

Netcat (ohne Bash)

Eingeschränkt

Nur über /bin/sh oder manuelle Fixes

Last updated