Menú principal

martes, 21 de mayo de 2019

Cómo esconder un payload en los metadatos de una foto

A la hora de realizar un ciber ataque, los atacantes deben de pasar desapercibidos y no hacer saltar las alarmas, por ello se buscan técnicas que permitan evadir cortafuegos, que no los detecte un antivirus, etc. Existen numerosas maneras de llevar a cabo este tipo de tareas, en esta ocasión hablaremos de una técnica, que no es nueva, ocultar scripts en los metadatos de una fotografía

Un atacante puede distribuir scripts maliciosos en la red de manera muy sencilla, puede usar servicios que permiten alojar imágenes para que los usuarios lo descarguen y se consiga ejecutar el código en un equipo objetivo (no vale un ‘doble click’). Las redes sociales, como Twitter o Facebook, eliminan los metadatos. la demostración del 'ataque' que se muestra aquí es válido para sistemas macOS y Linux. Para hacer la prueba necesitaremos lo siguiente: una imagen, curl, exiftool, grep y una terminal Bash.

Construyendo el ataque

Como primer paso construimos el script que queremos ejecutar, en este caso nada complicado, aquí entra en juego la imaginación de cada uno. printf 'touch ~/Pwned' | base64 | tr -d '\n' Que nos dará como resultado el siguiente string en base64: dG91Y2ggfi9Qd25lZA==.

Ahora haciendo uso de exiftool borramos todos los metadatos de la imagen y agregamos nuestro comando a una de sus opciones: exiftool -all= test.jpg; exiftool -Certificate='dG91Y2ggfi9Qd25lZA==' test.jpg

Figura 1: Ocultando el comando en la imagen

Si comprobamos la imagen, vemos como se ha modificado la opción Certificate y tiene el contenido que le indicamos en base64.

Figura 2: Comprobación del comando insertado en los metadatos

Ahora para descargar, extraer y decodificar el payload se tira de herramientas disponibles en el sistema, el comando y la demostración se puede ver en la figura 3. Como vemos, nada de doble click de ratón, es una sucesión de comandos.

Figura 3: Prueba de concepto

El comando ejecutado, se encarga de realizar lo siguiente: a partir de curl se descargar la imagen (-s: modo silencioso), con grep podemos leer los datos en "crudo" de la imagen y buscar el texto Cert, con sed obtenemos el código codificado, tr sirve para quitar posibles espacios en blanco al inicio, y base64 decodifica el código (opción -d). Por último con eval se ejecuta el código que hemos obtenido.

Aquí se ha utilizado “Certificate”, pero podrías elegir otra flag sin problema. Vemos así una manera fácil de ocultar nuestros scripts y evitar posibles detecciones.

No hay comentarios:

Publicar un comentario

Entrada destacada

Proteger tu cuenta de Google y de Gmail con Latch Cloud TOTP #Latch #Gmail #Google

La semana pasada se liberó la nueva versión de Latch y nuestro compañero Chema Alonso hizo un repaso de todo ello en su artículo Latch...

Otras historias relacionadas

Entradas populares