Skip to main content

Exiftool, extrae y modifica metadatos en Linux

Descubre los datos ocultos en los metadatos de un fichero

Hola a todos en otro post más de Byte Mind, en el caso de hoy, os vamos a enseñar a extraer, crear, borrar y modificar los metadatos de un fichero con la herramiento exiftool.

Esta idea a surgido a través de un problema en el proyecto web en el que trabajo actualmente, hemos tenido algunos problemas en el servidor y nos pareció que podíamos haber sido atacados. Después de muchas búsquedas, una de las ideas fue buscar en los metadatos de los ficheros que podían subir los usuarios y comprobar si alguien con malas intenciones, había intentado ejecutar un script xss (Cross-Site Scripting) a través de los metadatos de un fichero .pdf (en este puntual caso).

Por suerte, no fue el problema y realmente tampoco fuimos atacados, pero había un error en la configuración de apache, lo que daba permisos extra a los usuarios permitiendo la ejecución de estos ficheros en el lado del cliente.

Cambiando al tema principal de este post y para realizar esta acción de leer los metadatos, utilizamos una herramienta disponible para su descarga en casi cualquier distribución linux aunque, para variar, preferimos utilizar un sistema debian también en el trabajo.  Esta herramienta es exiftool pero, antes de nada, algunos os preguntaréis ¿qué son los metadatos?

Los metadatos son datos que describen otros datos. Qué raro verdad pero, tiene su lógica. Un grupo de metadatos se describen como el contenido informativo de un objeto. En el campo de la informática, los metadatos de un fichero, serían datos como el autor, la fecha de creación, el tamaño, coordenadas GPS, etc.

 

Una vez aclarado este tema comenzamos instalando la herramienta mencionada anteriormente, exiftool, que instalaremos en nuestro sistema linux con el siguiente comando:

apt-get install libimage-exiftool-perl

 

Otra opción si no trabajáis con debian o, si prefereis instalarlo manualmente, podéis hacerlo de la siguiente manera:

wget http://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-9.70.tar.gz

tar -xzf Image-ExifTool-9.70.tar.gz

cd Image-ExifTool-9.70/

perl Makefile.PL

make test

make install

 

Una vez lo tenemos instalado, ahora toca utilizarlo. Para utilizar esta herramienta se hace con el siguiente comando:

exiftool nombre_fichero

 

Aquí podemos ver un ejemplo mostrando los metadatos de un fichero

Exiftool, extrae y modifica metadatos en Linux

 

La gran mayoría de comandos tienen una opción help para consultar los posibles comandos de la herramienta pero, en este caso no tenemos esa posibilidad. En este caso tenemos una documentación completa acerca de ella, tipos de ficheros permitidos, listado de comandos, etc. Podemos consultar la documentación pinchando aquí.

Una vez explicado este punto, pasamos a enseñaros como añadir metadatos a nuestro fichero, la sintaxis sería la siguiente

exiftool -exif:Campo="texto" nombre_fichero
 
Y nuevamente visualizarlo con el comando
exiftool nombre_fichero
 
Exiftool, extrae y modifica metadatos en Linux
 
 
Si vemos la diferencia con la imagen anterior, hemos añadido el campo Copyright y le hemos dado el valor de www.byte-mind.net
 
Ahora vamos a modificar los metadatos. Para ellos utilizaremos el siguiente comando
exiftool -exif:campo_a_modificar="nuevo valor" nombre_fichero
 
Como véis es el mismo comando que para crear un fichero, pero cambiando el texto del campo que queremos modificar. En este caso le hemos añadido http:// al campo Copyright
 
Exiftool, extrae y modifica metadatos en Linux
 
 
Y finalmente en este post, ¿cómo eliminamos los metadatos?
Para ello utilizamos el siguiente comando
exiftool -all= nombre_fichero
 
Exiftool, extrae y modifica metadatos en Linux
 
Como podemos ver en la imagen se ha borrado el campo Copyright que habíamos añadido anteriormente, además de otros datos diferentes.
 
Hasta aquí hemos llegado por hoy, como siempre espero sus comentarios, dudas, sugerencias, etc. Pero sobre todo que aprendan y disfruten de este mundo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *