Evaluar un Servidor VNC con MSF

  • Posted on: 26 March 2014
  • By: ReYDeS

VNC (Virtual Network Computing), o por su traducción al español Computación Virtual en Red, es un sistema gráfico para compartir un escritorio que utiliza el protocolo RFB (Remote Frame Buffer) para controlar de manera remota otra computadora. Permite la transmisión de eventos del teclado y mouse desde una computadora hacia otra, retransmitiendo las actualizaciones gráficas de la pantalla de retorno en la otra dirección, sobre la red. VNC es independiente de la plataforma, dado que existen clientes y servidores para la mayoría de sistemas operativos basados en GUI y para Java.

Para la presente práctica se utilizará Kali Linux y Metasploitable2.

Se considera a priori que se ha identificado el servicio VNC funcionando en el objetivo de evaluación, ya sea de manera manual o utilizando un escaner de puertos como nmap, unicornscan, etc.

En primera instancia se utiliza el módulo auxiliar en Metasploit Framework de nombre “vnc_none_auth”, el cual permite detectar si el servidor VNC soporta el método de autenticación None, es decir sin una contraseña configurada. Se procede a buscar e indicarle a MSF su utilización, para luego mostrar sus opciones.

> search vnc_none
> use auxiliary/scanner/vnc/vnc_none_auth
> show options

Al finalizar la ejecución de este módulo no se obtiene un mensaje positivo para tener acceso al servidor VNC. Por lo tanto se requiere descubrir un nombre de usuario y contraseña válida que permitan acceso al sistema mediante VNC.

Se procede a utilizar el módulo auxiliar “vnc_login”, el cual permite evaluar un servidor VNC y reportar los registros (logins) satisfactorios al sistema. Actualmente soportas las versiones del protocolo RFB 3.3, 3.7, 3.8 utilizando el método de autenticación VNC de reto respuesta.

> search vnc_login
> use auxiliary/scanner/vnc/vnc_login
> show options

Por defecto este módulo tiene configurada la opción “USERNAME”, la cual define el nombre de usuario con el cual se realizará la autenticación, con el valor (BLANK). De igual manera la opción “PASS_FILE” está definida con el archivo de nombre“vnc_passwords.txt” incluido dentro de Metasploit Framework. Lo único que se define es la opción “RHOSTS” con la dirección IP del objetivo de evaluación.

> set RHOSTS 192.168.0.16
> run

Obtenida la contraseña, se utiliza el programa “xvncviewer” para realizar la conexión al objetivo. Cuando se solicitada el “Password”, escribir la contraseña obtenida mediante el procedimiento anterior.

La autenticación se ha realizado satisfactoriamente utilizando las credenciales root / password. Otros escenarios pueden requerir la definición de una lista de palabras, tanto para los usuarios como para las contraseñas.

Otro escenario implica la utilización del módulo auxiliar “server/capture/vnc”, el cual permite crear un servicio VNC falso diseñado para capturar las credenciales de autenticación.

Se le indica a Metasploit Framework su utilización y se definen las siguientes opciones, “JOHNPWFILE” define un prefijo para el nombre de archivo en el cual se almacenarán los hashes para poder ser “crackeados” posteriormente con John The Ripper, la opción “SRVHOST” debe ser definida a la dirección local del sistema (Kali Linux) o 0.0.0.0.

Mientras el módulo está funcionamiento capturará todas las credenciales de los clientes que se conecten a este servicio falso.

Para averiguar cual es la contraseña del cliente que realizó la conexión, se utilizará John The Ripper.

Se ha obtenido satisfactoriamente la contraseña utilizada por el cliente.

Para que este ataque sea satisfactoria se debe engañar, inducir o suplantar a un servidor VNC real, de tal manera que los clientes se conecten a nuestro falso servidor VNC.

Fuentes:

http://en.wikipedia.org/wiki/Virtual_Network_Computing
http://www.offensive-security.com/metasploit-unleashed/VNC_Authentication
http://www.rapid7.com/db/modules/auxiliary/scanner/vnc/vnc_none_auth
http://www.rapid7.com/db/modules/auxiliary/scanner/vnc/vnc_login
http://www.rapid7.com/db/modules/auxiliary/server/capture/vnc
http://www.openwall.com/john/

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