miércoles, 12 de diciembre de 2018

Una shell para automatizar el proceso de comprobación de hashes md5 del software que descargamos

Llevaba unos meses ya sin sacar ningún trabajo ni herramienta y eso no puede ser. Tenía que cerrar este año con una cifra redonda y no los 49 trabajos de investigación y proyectos en los que he realizado este 2018. El del post de hoy, es una PoC sencilla sobre la automatización de una tarea que voy a comentar posteriormente. Es una idea muy sencilla pero que creo que puede ser de utilidad.


Los hackers nos hacemos nuestras herramientas. Está muy bien el utilizar tools de otros, pero al fin y al cabo, llega un punto donde no tenemos herramientas a mano por lo que sea y sino nos las ingeniamos elaborando nosotros las nuestras, no podremos realizar esa auditoría o mostrar la PoC de nuestra idea.

Con todo lo que dio de qué hablar el VAR en el Mundial de Rusia, y todo lo que está dando que hablar en la Liga Española, se me ha ocurrido llamar a mi herramienta VAR, ya que, como entenderéis cuando explique la idea, es una herramienta que deberemos de utilizar para revisar esas "jugadas" polémicas del software de nuestro equipo.

La idea es simple, consiste en automatizar el proceso de comprobación de si el md5 del software o archivo que hemos descargado de una web, coincide con el md5 que hay en esa web (si es que lo hay). Esto lo hacemos para ver si el archivo que nos hemos descargado, con el original, ha sido modificado, lo que podría suponer que el archivo que tenemos, alguien lo ha modificado, lo cual, dependiendo del entorno en el que nos encontremos puede ser bastante delicado.


En mi cabeza pasó algo como lo que os muestro en el meme que he hecho. Tenemos que comprobar en el VAR si el md5 coincide o no. Pero vamos con la PoC.

PoC: Comprobando el MD5 del archivo descargado.


Imaginemos que tenemos una web como la mostrada. Como vemos, podemos descargar la canción de Queen titulada The Show Must Go On. Un temazo que comparto, porque compartir no es piratería, queridos políticos y cuerpos de seguridad del Estado ;)

Observamos que tiene el MD5 para que lo podamos comprobar nosotros si lo que nos hemos bajado es realmente la canción o no.

Decir antes de nada que, el MD5 es como el DNI por así decirlo. El MD5 asegura que ese archivo no se ha modificado, pero no asegura que no sea malware. Al igual que el DNI, si me enseñas el DNI y es el original, coincide, sí, pero tú puedes ser un cabrón. Y viceversa. Esto es solamente el primer paso que debemos dar, al igual que el DNI, puedes ser la persona más buena del mundo, pero si me enseñas un DNI falso, desconfío. Igual con el MD5.

Pero ¿Qué hace mi herramienta?


Pues bueno, para empezar, si no introducimos ninguna opción o ejecutamos la herramienta con el -h, nos mostrará la típica función usage donde nos dan los comando a utilizar y un ejemplo.

Como vemos, lo único que tenemos que hacer es ejecutar la herramienta con:

./VAR -f <archivo que creamos original> -f2  <archivo descargado>

Sencillo, pues solamente le tendremos que pasar dos ficheros, el que creemos que es el original, y el que hemos descargado. Esto lo que hace es ejecutar un hexdump de cada fichero y compararlo para ver si es el mismo. Muy útil para saber si han bindeado a lo cutre un payload en un archivo. Imaginemos que pasamos el .exe y la canción. Si el hexdump es el mismo, eso es que se ha bindeado con un cat shell.exe > cancion.mp3, por lo que deberemos de desconfiar.


Ahora vamos a comparar la canción de Queen que nos hemos descargado con otra que teníamos. Esto, reitero, es para comprobar si son o no la misma, ya que el primer paso será hacer el hexdump de ambos archivos.


Nos salta un Warning diciendo que son los mismos archivos. En este caso tiene sentido ya que las dos son canciones, por lo que no problem aquí. A continuación, como observamos, nos crea una shell, y es aquí donde ya entra en juego la herramienta en sí.


Si typeamos el comando help, veremos que, de momento, solamente tenemos 2 comando, el help y el web. El commando help ya hemos visto cómo funciona, vamos a ver ahora el funcionamiento del comando web.


Para tirar del comando web, tan solo typeamos web con el igual pegado y la url de la web que nos hemos descargado la canción y tiene el md5. Fácil.


Lo que esto hace es descargar la web y buscar dentro de la web el hash md5 y lo compara ejecutando el comando md5sum del archivo que tenemos. Si coinciden no saldrá el resultado que vemos en pantalla de "Same md5 hash". Y ya está, así de fácil.


Y este sería el caso contrario. Quiero implementarle más cosas, aunque el escenario es el que es. También le añadiré un enlace a VirusTotal, siendo ese el segundo paso a seguir para analizar un fichero.

Como se aprecia, la interfaz, a pesar de ser por línea de comandos es user-friendly. No requiere de disponer de muchos conocimientos de seguridad, es poner 2-3 opciones y ya. No es tan intuitivo como arrastar y soltar los ficheros, pero tampoco es que esto sea rocket science.

Conforme vaya añadiendo más funcionalidades os lo iré enseñando, y por el código no os preocupéis que lo publicaré, pero para eso tendréis que esperar al nuevo año, ya que es una de las sorpresas que traigo para el 2019.

¿Hackeamos el Mundo?

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...