Título: [Full-disclosure] D.O.S en CBM (Control del Ciber) kml reverser Publicado por: djkamal en 5 Septiembre 2011, 18:20 pm =======================================
FULL DISCLOSURE - CBM (Control del Ciber) Denial of service. Fecha descubrimiento: 24/11/2010 Ultima revisión: 08/agosto/2011 Descubridor: kml reverser ======================================= 1.- Introducción Control de Ciber (cbm) es un programa distribuido por http://cbm.com.ar/ usado de forma muy amplia en España para el control de tarificación de los accesos a Internet en los "Cyber". 2.- Descripción del fallo de seguridad El programa se comunica mediante el protocolo TCP/IP por defecto el puerto 1000 permaneciendo a la escucha de sus clientes que se conectan a el, el problema reside en que el servidor no tiene ningún control de acceso y permite a cualquier "software" conectarse a dicho servicio.Por defecto escucha en el puerto 10000 tcp.Si a esto le añadimos a que todo lo que escucha es procesado por un gigante bucle para determinar el comando enviado. Podemos llegar a la conclusión de que si enviamos ciertos comandos especialmente manipulados podemos producir una denegación de servicio por un alto consumo de CPU. Llegando a bloquea el sistema operativo (solo si el procesador del servidor es de un solo núcleo. Sin embargo si multinúcleo debido a que el programa no soporta multiprocesamiento solo se apodera de un solo núcleo. En este caso solo se cuelga el programa y no permite realizar NADA con el. 3.-Versiones afectadas. Dicha vulnerabilidad afecta a todas las versiones de este software en cualquier Sistema operativo windows. Ya que para linux no existe Daemon. 4.- How to... Para que el servidor asigne un contador a una IP basta con que se le envíen estos comandos al servidor. ***************************Lista de comandos en orden hacia el servidor*************************************** PC: 0 VERSION: escdll.dll 0 S: 1 1 VERSION: escacven.dat 0 VERSION: escacprg.dat 0 VERSION: esclaven.dat 0 VERSION: esclaprg.dat 0 VERSION: escprven.dat 0 VERSION: escprprg.dat 0 VERSION: escartic.dat 0 VERSION: escvar.osf 0 VERSION: esclconf.cfg 0 Donde PC: 0 es el identificador del pc osea que también nos podemos hacer pasar por otro siendo 0 el 1 y así de forma sucesiva. Y el comando versión: es el nombre del archivo con un CRC al final (viene representado por un 0) ejemplo de una captura real: http://pastebin.com/xFHNqeS6. Si se observo la captura real se observa que con el comando PIDOBLOQUE: se realiza una transferencia binaria de un archivo ejecutable por lo cual si se realiza un mimt se puede llegar a reemplazar dicho ejecutable puesto que luego sera ejecutado por el cliente. **************************************************************************************************************** Ahora la rutina que produce la denegación de servicio en el programa de control (servidor). El archivo ejecutable correspondiente es: servidor.exe y la dirección de memoria es: 00433D4C |. E8 6E9D0000 CALL servidor.0043DABF ; \servidor.exe Adjunto copia de la rutina: http://pastebin.com/SAJCyMnK 5.- Solución De momento NO EXISTE SOLUCIÓN ALGUNA lo único es colocar un cortafuegos que controle que programas se conectan a dicho daemon. 6.- TimeLine - 24/07/2011 -Se descubre la denegación de servicio. - 26/07/2011 -Se comprueba en una maquina virtual (La maquina virtual se quedo bloqueada debido al dos) - 30/07/2011 -Se comprueba en un conjunto de equipos REAL. El equipo al ser mononucleo se bloquea por completo incluido el S.O. - 05/08/2011 -Se comprueba en un equipo mas potente Quad Core uno de los cores de la CPU queda al 100% y el programa se bloquea. A continuación adjunto el exploit para explotar esta vulnerabilidad. http://www.megaupload.com/?d=87D38KO0 http://www.mediafire.com/download.php?0wllp7gtx3tkn25 http://massmirror.com/523914e51386567c22362123d79780ec.html |