bitcoin prize

"BSOD EN WINDOWS CON MS12-020"

    "BSOD EN WINDOWS CON MS12-020"


A quien no le ha salido alguna vez la anterior imagen en nuestro windows? casi a todos esta molesta pantalla azul nos ha causado temor durante mucho tiempo y eso parece no ser problema resuelto, ya que se han detectado en las versiones de windows 10 mas recientes el problema sigue persistiendo hasta el momento, deberian crear algun mecanismo que impida que alguna localidad de memoria afecte a otra y de lugar  aun proceso como esta odiosa pantalla de la muerte.

En este articulo veremos como generar esta pantalla pero de una manera mas o menos intencional, hay muchos exploits en la red para nuestra mision de hoy dia, veremos entonces como lograrlo.

por lo que he estado investigando la vulnerabilidad critica aparecio por el 2012 y en ese mismo dia se desarollo un exploit para aprovechar la vulnerabilidad.

El resumen de la vulnerabilidad dice: 
"Remote Desktop Protocol (RDP) implementation in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2, R2, and R2 SP1, and Windows 7 Gold and SP1 does not properly process packets in memory, which allows remote attackers to execute arbitrary code by sending crafted RDP packets triggering access to an object that (1) was not properly initialized or (2) is deleted, aka "Remote Desktop Protocol Vulnerability." 

El codigo de la vulnerabilidad es el CVE-2012-0002.
la principal falla radica en el RDP de los sistemas operativos windows que pueden inyectar en la memoria y permitir la ejecucion arbitraria de codigo asi como hacer crashear ala maquina victima.

Como primer princpio escaneamos a nuestra victima con nmap para verificar que tenga el RDP encendido y usaremos un script para verificar que la victima sea vulnerable al mismo.


el Remote Desktop protocol es un protocolo propietario de windows,  que es similar a VNC, teamviewer, entre otros sistemas de vision remota, aunque VNC es ya vulnerable y no deberia de usarse en su totalidad, ya que las llaves estan en texto plano y se envian sin ningun tipo de seguridad por lo que cualquier atacante avivado, podra interceptarlas y robarlas.

aqui la lista de sus caracteristicas mas importantes:
 aunque este protocolo si puede ser mas seguro en su totalidad, proporciona capas mas seguros a nivel de aplicacion con ssl,  permite seguridad en el transporte, en la capa de aplicacion, y unas llaves fuertes, si bien un atacante puede intentar fuerza bruta, se tardaria muchos siglos para encontrarla, dependiendo de la fuerza de la llave, cada que va aumentanto en bits,  va aumentando lo que un atacante se tardaria para completar su atraco, veamos la siguiente formula que especifica lo que un atacante puede tardarse para calcular nuestra llave:
como vemos en la imagen, por ello es muy importante poner claves fuertes de caracteres extensos al crear nuestra password, la principal problema de vulnerabilidad en los tiempos de hoy, no radica en las fortalezas de las llaves, si no en las fallas de las implementaciones de software,  un atacante puede investigar las fallas mediante ingenieria inversa, a donde se comunica esta libreria?,  a que llamada del sistema recurre para hacer tal x operacion?,  como lo hace?,  con estas preguntas, un atacante empieza un analisis de vulnerabilidades para luego si encuentra un fallo con exito, pueda programarse un exploit y explotar dicho fallo en el software original.

veamos de los protocolos que hace uso el RDP de microsoft.
como primera instancia hace uso del protocolo TPKT, utiliza el anterior protocolo para llevar las llaves por medio de la capa de transporte.
veamos su arquitectura para entender un poco de que va todo esto de las comunicaciones RDP.


tambien, cabe destacar que EL RDP funciona tambien con la nueva version del protocolo de direccionamiento de internet version 6, ipv6, lo cual esto lo negociara al iniciar la sesion antes de que comienza la verdadera comunicacion entre el host server y el cliente que esta conectandose en ese momento.

 el listening y funcionamiento del servidor RDP hace uso de los siguientes archivos.
aqui os muestro una imagen de los archivos del sistema que hace uso RDP para los mismos drivers que utilizan en los graficos, mouse, y teclado entre otros.
y porque es tan importante todo esto? pues, un potencial atacante puede comprometer el driver o los drivers y modificarlos a su antojo e insertar un rootkit ahi mismo, cuando la aplicacion RDP mande a llamar a sus respectivos drivers con una llamada al sistema, este podra controlar el sistema, y tendra las claves comprometidas por lo que puede usarlas para su autentificacion.

Usaremos el aplicativo Process Explorer para observar detenidamente que ocurre antes de que la comunicacion comienze a pasar parametros y mensajes entre client y el server o host.

aqui otra imagen del archivo que se comunica para hacer posible la comunicacion por RDP:

Ahora procederemos a activar nuestro escritorio remoto, como primer paso , vamos al panel de control de windows, buscamos donde dice sistema, despues, configuracion de sistemas remotos y ahi se nos despliega una nueva pantalla, ahi mismo debemos configurar las conexiones, las cuentas de usuario, una notable caracteristica que hay que destacar, es que el usuario o los usuarios que se podran conectar a los Remote Desktops deben ser del grupo administradores, de lo contrario el servicio remoto no funcionaria, pues los otros usuarios no tienen permisos de escritura, solo de lectura, y al no tener permisis de escritura no pueden crear conexiones , ni mucho menos establecerlas.
el proceso que nos aparecera sera algo asi:

aqui mandamos llamar al programa de remoto.
y en esta otra imagen,  vemos como nos pide la autenticacion, ademas del dominio de la pc remota que nos conectaremos.

tendremos que haber creado anteriormente una cuenta para haceros la prueba y verificar que realmente funcione nuestro remoto, recuerda que debes activar el escritorio remoto y poner la excepcion en el firewall del mismo windows, de lo contrario , el firewall filtrara las conexiones y los paquetes entrantes y salientes se descartaran.

En caso de que no tengamos un dominio activo en la maquina, debemos colocar la correspondiente direccion IPV4,  si podemos , tenemos que activar el puerto del que hace uso el RDP por el NAT, en nuestro panel de control de nuestro respectivo router, de lo contrario NAT no permitira las conexiones entrantes, en dado caso si tenemos que usarlo fuera de la red.

Mientras probamos una conexion con nuestro escritorio remoto configurado, vamos a checar que esta ocurriendo tras bambalinas en el process explorer, veamos a quien llama RDP?:

vemos que se abrio solo la ventana del programa por lo tanto, solo se nos muestra este mismo, sin threads ni las demas caracteristicas,  ahora nos falta desplegar la lista de las DLLS, por lo que clickeamos en el engrane amarillo en la parte inferior del programa.
Ahora observaremos de cuales librerias manda a llamar windows para encargarse de la autenficiacion, conexion, entre otras cosas.
 en la anterior imagen , se puede observar detenidamente que hace uso de varias librerias de microsoft para funcionar, la libreria que encerre en color rojo es para encriptado de la comunicacion, pues lo podemos deducir rapidamente por su nombre y al estar asociado con el proceso del RDP que estamos utilizando.

antes de empezar con el escaneo con nmap y dar paso ala explotacion de la vulnerabilidad, tendremos que investigar un poco como es que funciona este metodo de comunicacion,  como comienza la posible comunicacion y cual es el proceso, estos son los pasos.








                                

como podemos ver, las conexiones que realiza RDP es algo compleja de entender, pues involucra diversos protocolos de seguridad,  por lo que aqui no reside el principal problema de seguridad verdadero, si no que se encuentra en la aplicacion en si misma como veremos en la explotacion.

primeramente dejamos encendido RDP y procedemos a escanear con nmap para verificar que el puerto este abierto, tambien podemos usar un script de nmap para la verificacion de la vulnerabilidad.

un aspecto importante es analizar el formato del TPKT resumidamente para no perdernos mas adelante cuando estemos analizando las conexiones con wireshark, y nos encontremos posteriormente realizando el debido ataque.

vamos a ver como luce su estructura del formato.
queda fuera de este articulo explicar detalladamente el funcionamiento de dicho protocolo, pero ahondaremos resumidamente en elllo.
TPKT es un protocolo de "encapsulamiento". Lleva el paquete de OSI en su propio paquete de datos y luego pasa la estructura resultante a TCP, a partir de entonces, el paquete es procesado como un paquete TCP/IP. Los programas OSI que pasan los datos a TPKT no son conscientes de que sus datos se llevan a través de TCP/IP, ya que TPKT emula el Punto de Acceso de Servicio de Transporte del protocolo OSI (TSAP).

Si desea conocer mas sobre este y otros protocolos consulte als debidas recomendaciones de la ITU-T y el organismo internacional ISO,  cabe aclarar que para conocer el funcionamiento de algunos protocolos, la ISO te pide un pago por el documento con la especificacion completa de dicho protocolo.


aqui os muestro las capturas de pantallas de las conexiones con los protocolos descritos en este articulo, si bien no los vimos a fondo en su funcionamiento,  si hicimos mencion de ellos.
vemos que primero envia un request y despues el RDP Host session le responde con un response como podemos notar en las imagenes.






ahora , vamos a ver lo que logre obtener en el escaneo de la vulnerabilidad, este modulo de metasploit nos dice si el equipo escaneado es vulnerable, hace uso de diversos packets para poderse dar cuenta de que en realidad la maquina objetivo es vulnerable.

ahora, vamos hacer uso del exploit integrado en metasploit para dicha vulnerabilidad, ahora si estamos seguros de que nuestro objetivo es vulnerable.
Listo!, hemos corrido el exploit en nuestro metasploit para automatizar el proceso.
ahora nos vamos ala maquina objetivo en nuestro laboratorio aver si esto surtio efecto.

OH LY SHIT!,  el exploit ha sido exitosamente ejecutado, en horabuena, hemos cumplido con nuestra mision en esta ocasion,  imaginense que pasaria si dieramos con una direccion IP de un cajero automatico o una maquina automatica de fotografias que ejecute una version vieja del RDP y vulnerable?, pues sin duda alguna le pudieramos hacer un BSOD como vemos en la imagen.
bueno, esto ha sido todo por hoy, nos vemos en una proxima investigacion.
Saludos
Luis Stuxnet.

REFERENCIAS:
INSTALACION DE RDP
https://www.youtube.com/watch?v=yFTXL15hgkM
WIRESHARK RDP
https://wiki.wireshark.org/RDP
burte_force_Definition
http://www.welivesecurity.com/la-es/2014/06/13/matematica-claves-numerica-alfanumerica/
Hacking_RDP_for_Fun
http://www.slideshare.net/alisaesage/hacking-microsoft-remote-desktop-services-for-fun-and-profit
 Definition_Resume
https://en.wikipedia.org/wiki/Remote_Desktop_Services

0 comments:

Publicar un comentario

My Instagram

Uso cookies para darte un mejor servicio.
Mi sitio web utiliza cookies para mejorar tu experiencia. Acepto Leer más