Redes Sociales

miércoles, 26 de marzo de 2014

Revisiting Winrar "0-day"

Tras leer este blog, me decidi a probar esta "vulnerabilidad" en el winrar que tenía en casa (que resultó ser la v5.01 y que es la descarga recomendada a día de hoy).

Lo primero que comprobé es que es cierto que aparecen dos veces los nombres de los ficheros, uno de ellos (el "primer nombre") al principio del fichero y otro (el "segundo nombre") justo al final. Sin embargo en la versión 5.01 el comportamiento es diferente al explicado en el blog antes mencionado.

En el caso de la version 5.01 de Winrar el "primer nombre" del que se habla en an7isec no se utiliza para nada, hasta el punto de que si se borra por completo, el fichero ZIP sigue siendo perfectamente válido.

Esto quiere decir que tanto para la previsualización como para la extracción final del fichero se utiliza el "segundo nombre".

Se puede modificar este segundo nombre, por supuesto, pero si por ejemplo a un ejecutable le ponemos una extensión PNG, el sistema operativo intentará abrir el ejecutable con el visor de imágenes resultando inútil el cambio realizado. Es igual que si le cambiáramos la extensión o el nombre ANTES de comprimir el fichero.

Y como muestra, un botón:

Como no tenía un malware a mano, hice la prueba con el socorrido putty.exe. Tras crear un fichero ZIP con Winrar de dicho ejecutable, al abrirlo con un editor hexadecimal vemos que, ciertamente tiene un primer nombre:

...y un segundo nombre:

Comprobamos que, si eliminamos por completo el primer nombre:

...no pasa nada:

...y si le cambiamos la extensión al ejecutable "malicioso":

...nos lo intentará abrir con el visualizador por defecto para esa extensión:

Con lo cual podemos sugerir que con las versiones actuales de Winrar podemos estar tranquilos.

martes, 25 de marzo de 2014

Vulnerabilidad 0-day en Microsoft Word

Microsoft publicó hoy un comunicado avisando de una vulnerabilidad 0-day que afecta a Microsoft Word. El problema podría comprometer a todas las versiones de Microsoft Word 2003 a Microsoft Word 2010. La vulnerabilidad parece no existir en Microsoft Word 2013 debido a que en esta versión se fuerza el uso de ASLR.

La vulnerabilidad se puede propagar (y de hecho ya se esta aprovechando) mediante correo electrónico utilizando un fichero RTF modificado que incluye un payload que descarga un troyano desde un sitio remoto de forma inadvertida para el usuario. No es necesario siquiera abrir dicho documento RTF y bastaría con previsualizarlo con Microsoft Outlook, ya que éste usa Microsoft Word como visor de correo.

Microsoft proporciona un Fix-It para resolver de forma temporal el problema. Este Fix-It se puede instalar desde aquí.

Por otra parte, se ha visto que el tener instalado EMET evita la ejecución del payload del RTF.

Aparentemente la funcionalidad de descarga del troyano dejará de funcionar el 8 de Abril de 2014. El troyano descargado es un fichero llamado svchost.exe que aloja un malware genérico escrito en Visual BASIC que se conecta por https con la IP 185.12.44.51 (alojado en Suiza) para descargarse scripts VBS y ficheros MSI que instalará en el equipo comprometido.

Para mas información se pueden leer estas noticias:

viernes, 14 de marzo de 2014

Probando el DVWA (Parte I)

Hoy me decidí a instalar DVWA para hacer pruebas de conocimientos de sql injection y demás. DVWA es la Damn Vulnerable Web Application y su nombre lo dice todo. Básicamente se trata de una XAMPP con PHP y MySQL.

Tras instalarla, el primer problema que encuentro (aparte de un error de MySQL que habia que cambiar la contraseña del usuario root) es que me aparece la página de login y no tengo ni idea de qué usuario y contraseña utilizar:

Por suerte lo tengo instalado en local y puedo ver el fuente de login.php, que tira de la base de datos de MySQL 'dvwa' y dentro, de la tabla 'users'. Dicha tabla es algo asi:

Esas contraseñas parecen un MD5... vamos a intentar descifrarlas. Vamos a alguna de las multiples páginas que hacen resolucion inversa de MD5, por ejemplo gromweb y le damos:

Ok, pues para el usuario admin, la contraseña es password. Vamos a ver el resto.... Para el usuario gordonb es abc123, para el usuario 1337 es charley y para el usuario pablo es letmein.

Una vez dentro me sale esta página principal:

Command Execution

Pruebo a comenzar con la ejecución de comandos. Me sale esta pantalla donde se supone que introduciendo una IP, me hará ping a dicha IP. De hecho funciona. Pero hay algo más, seguro. Tras unas cuantas pruebas:

...me empiezo a escamar y miro el código fuente... hasta que me doy cuenta de que estoy en modo NO-VULNERABLE, opción que se puede modificar en el fichero config.inc.php:

Según la documentación, el modo de seguridad 'high' es seguro contra contra todas las vulnerabilidades y además nos muestra buenas prácticas de programación.

En este modo la herramienta del ping "con vulnerabilidad de ejecución de comandos" esta escrita asi:

Es decir, se "explota" la IP por el simbolo punto y luego se comprueba si cada parte es numerica con la funcion is_numeric de PHP. Tras investigar un poco, no hay forma de saltarse esta comprobación.

Así pues, pasemos al modo 'medium' (Tampoco es plan de ir a lo facil).

Ahora si. Simplemente poniendo un simbolo "pipe" nos permite ejecutar cualquier comando linux:

En este modo, se filtran los codigos '&&' y ';', pero todo lo demás, lo deja ejecutar.

File Upload

Pruebo a continuación la opción de subida de ficheros (Upload). Para ello voy a escribir un script PHP que me haga un simple ls. Algo así:

Al subirlo me da un error muy explicativo:

Your image was not uploaded. O sea que esta esperando una imagen. ¿Y si le ponemos una extension jpg al php?. A ver... ¡¡Vaya, y nos pone la ruta completa!!:

Entiendo que ahora solo hay que ejecutar ese jpg... Vaya... ¡pues no!:

Ah! pero para eso tenemos la ejecución de comandos que probamos antes. Si vamos a Command Execution y le pedimos que nos haga ping a:

8.8.8.8|mv ../../hackable/uploads/prueba.jpg ../../hackable/uploads/prueba.php

...ahora ya podremos ejecutar dicho PHP:

Y hasta aquí por ahora. Esta wapo este DVWA, permite probar conceptos y aprender como se debe programar en PHP de forma segura.