Envenenamiento del Cache ARP utilizando Cain para Interceptar y Descifrar Tráfico RDP

  • Posted on: 18 November 2014
  • By: ReYDeS

APR-RDP permite capturar y descifrar el tráfico RDP (Remote Desktop Protocol) entre hosts. RDP es un protocolo utilizado para conectarse hacia Servicios Terminal de Windows de una computadora remota.

Los Servicios de Terminal de Microsoft Windows (Dentro de Windows 2000/2003 Server) y Escritorio Remoto de Windows XP, proporcionan una manera fácil y conveniente para los administradores en la implementación de computación ligera dentro de una organización o para la conexión de los usuarios hacia sus escritorios XP desde una computadora remota, y ejecutar aplicaciones o acceder a archivos.

Por defecto, los datos viajando entre el servidor terminal y el cliente de servicio terminal está protegido por cifrado. El protocolo utiliza el algoritmo de cifrado simétrico RC4 en uno de los siguientes tres niveles.

  • Alto: Cifra los datos enviados desde el cliente hacia el servidor y los datos enviados desde el servidor hacia al cliente utilizando una llave de 128 bits.
  • Medio: Cifra los datos enviados desde el cliente hacia el servidor y los datos enviado desde el servidor hacia el cliente utilizando una llave de 56 bits si el cliente es un Windows 2000 o cliente posterior, o una llave de 40 bits si el cliente es una versión anterior.
  • Bajo: Cifra solo los datos enviados desde el cliente hacia el servidor, utilizando ya sea una llave de 56 bits o de 40 bits, dependiendo de la versión del cliente.

Las llaves de cifrado RC4 son generadas después del intercambio de llaves inicial en el cual se utiliza el cifrado asimétrico RSA.

En abril del año 2003 Erik Forsberg publicó una amplia investigación realizada al protocolo RDP, en el cual se encontró la no existencia de verificación en la identidad del servidor cuando se realizan los ajustes en las llaves de cifrado para la sesión, aunque la información enviada a través de la red sea cifrada. Esto implica la vulnerabilidad de RDP a un ataque de MITM. El ataque funciona de la siguiente manera:

1. El cliente se conecta hacía el servidor, sin embargo por algún método (DNS spoofing, envenenamiento ARP, etc) se es engañado para conectarse hacia el MITM. El MITM enviar las peticiones hacía el servidor.
2. El servidor envía su llave pública y sal aleatoria en texto plano, nuevamente a través del MITM. El MITM envía los paquetes hacía el cliente, pero intercambia la llave pública con otra para la cual conoce la parte privada.
3. El cliente envía un sal aleatorio, cifrado con la llave pública del servidor, hacía el MITM.
4. El MITM descifra el sal aleatorio del cliente con la llave privada, la cifra con la llave pública del servidor real y las envía hacía el servidor.
5. El MITM ahora conoce la sal del servidor y el cliente, lo cual es suficiente información para construir las llaves de sesión utilizada para enviar paquetes entre el cliente y el servidor. Toda la información enviada entre las partes ahora puede ser leída en texto plano.

La vulnerabilidad ocurre debido al hecho de la no intención por parte del cliente en tratar de verificar la llave pública del servidor, enviado en el paso 2 anterior. En otros protocolos, como el protocolo SSH, la mayoría de implementaciones solucionan este problema permitiendo al usuario responder una pregunta relacionada a la validez de la huella digital sobre la llave del servidor.

Para el siguiente ejemplo se utiliza una máquina Windows XP la cual tiene el servicio RDP activo, una máquina Windows 7 realizando una conexión al servicio RDP en el sistema Windows XP. Y otro Sistema Windows 7 la cual será la máquina atacante ejecutando Cain.

Iniciar Cain.

Ingresar a la pestaña de nombre “Sniffer” e iniciar el Sniffer. Luego hacer clic en el botón conteniendo como ícono una cruz de color azul.

Escanear todo el rango de la red. Los resultados serán expuestos en esta misma pestaña.

Hacer clic en la pestaña de nombre “APR” ubicado en la parte inferior, para luego hacer clic en el campo superior del panel divido en dos secciones.

Hacer clic nuevamente en el botón conteniendo como ícono una cruz de color azul. Donde se seleccionará la IP asignada al Sistema Windows 7; en la parte izquierda; y la dirección IP del Sistema Windows XP en la parte derecha.

Hacer clic en el botón de nombre “OK”.

Para iniciar el ataque de envenenamiento ARP hacer clic en el ícono ubicado al lado derecho del botón utilizado para iniciar el Sniffer.

Desde el sistema Windows 7 se procede a establecer una conexión hacía el servicio RDP del Sistema Windows XP.

Se procede a abrir un bloc de notas y a escribir algún texto.

De regreso a Cain, hacer clic en la opción "APR-RDP" ubicado en el panel izquierdo para visualizar la información registrada de la sesión RDP.

Hacer clic en la segunda línea y seleccionar la opción “View”, luego de lo cual se abrirá un bloc de notas conteniendo los datos capturados de la sesión.

Una manera sencilla de obtener la información sobre las teclas presionadas durante la sesión RDP, es utilizando el comando findstr.

C:\> findstr texto archivo.txt

Fuentes:

http://www.oxid.it/ca_um/topics/apr-rdp.htm
http://www.securityfocus.com/archive/1/317244
http://www.reydes.com/d/?q=Envenenamiento_del_Cache_ARP_utilizando_Cain

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