Los metadatos en los archivos de Word son un concepto que probablemente resulte más familiar a la mayoría de los profesionales de seguridad, que a los usuarios habituales de las suites de Office. Básicamente, los metadatos son datos sobre datos. Por ejemplo, si estás mirando un documento y quieres saber quién lo ha escrito, los metadatos incluirían cosas como el nombre del autor, la fecha, etc.
Tabla de Contenido
- Metadatos en los Archivos de Word
- Cómo Ver los Metadatos de un Archivo .docm
- Cómo Hacer más Legible la Salida de mat2
- Datos Que Muestra mat2
- Cómo ver Metadatos de Documentos de MS Office sin Programas Adicionales
- Qué Archivo Contiene las Macros en los Archivos de Word
- Qué Archivo Contiene el Texto del Documento en Archivos Word
- Cómo Borrar los Metadatos de Archivos de MS Word
- Eliminar los Metadatos de Archivos de Office en Linux
- Conclusión
- Metadatos en los Archivos de Word
- Cómo Ver los Metadatos de un Archivo .docm
- Cómo Hacer más Legible la Salida de mat2
- Datos Que Muestra mat2
- Cómo ver Metadatos de Documentos de MS Office sin Programas Adicionales
- Qué Archivo Contiene las Macros en los Archivos de Word
- Qué Archivo Contiene el Texto del Documento en Archivos Word
- Cómo Borrar los Metadatos de Archivos de MS Word
- Eliminar los Metadatos de Archivos de Office en Linux
- Conclusión
Metadatos en los Archivos de Word
El archivo de MS Word y, en general, todos los documentos de MS Office contienen muchos metadatos.
Y además: (Propiedades Avanzadas)
Si necesitas extraer metadatos de archivos de MS Word sin abrir el archivo en Word, puede utilizar utilidades especiales.
- Instalar
mat
ymat2
:
sudo apt-get install -y mat
sudo apt-get install -y mat2
En realidad, la popular herramienta mat
, que se utiliza para mostrar y limpiar los metadatos, no funciona muy bien con los archivos de MS Word:
mat -d Archivo.docx
Ejemplo de salida:
[+] File Archivo.docx :
Harmful metadata found:
docProps/app.xml: harmful content
docProps/core.xml's zipinfo: {'system': 'unknown'}
word/media/image1.jpg's zipinfo: {'system': 'unknown'}
customXml/_rels/item1.xml.rels's zipinfo: {'system': 'unknown'}
word/document.xml's zipinfo: {'system': 'unknown'}
[Content_Types].xml's zipinfo: {'system': 'unknown'}
word/media/image2.png's zipinfo: {'system': 'unknown'}
word/theme/theme1.xml's zipinfo: {'system': 'unknown'}
_rels/.rels's zipinfo: {'system': 'unknown'}
customXml/itemProps1.xml's zipinfo: {'system': 'unknown'}
customXml/item1.xml's zipinfo: {'system': 'unknown'}
word/_rels/document.xml.rels's zipinfo: {'system': 'unknown'}
word/webSettings.xml's zipinfo: {'system': 'unknown'}
word/styles.xml's zipinfo: {'system': 'unknown'}
docProps/core.xml: harmful content
word/media/image3.jpg's zipinfo: {'system': 'unknown'}
word/numbering.xml's zipinfo: {'system': 'unknown'}
word/fontTable.xml's zipinfo: {'system': 'unknown'}
docProps/app.xml's zipinfo: {'system': 'unknown'}
word/settings.xml's zipinfo: {'system': 'unknown'}
word/media/image4.png's zipinfo: {'system': 'unknown'}
De hecho, poco está claro y la información que se muestra parece más bien basura. Pero hay datos útiles, estas son líneas:
docProps/core.xml: harmful content
docProps/app.xml: harmful content
Dicen que los archivos docProps/core.xml
y docProps/app.xml
contienen contenido potencialmente dañino (harmful). Pero, no podemos ver los datos en sí con la ayuda de este programa.
Si se intenta analizar un archivo .docm
(un documento de MS Word con soporte de macros):
mat -d macros.docm
Ese programa simplemente escribirá que no puede procesar este archivo:
ERROR:root:macros.docm is not a valid file
[-] Unable to process macros.docm
Esto es así a pesar de que el formato .docm
tiene una mínima diferencia con el formato .docx
– un par de archivos adicionales en su interior (con una descripción de las macros y un segundo archivo con las propias macros).
Hay otra versión de mat2. Vamos a probarla:
mat2 -s Archivo.docx
Ejemplo de salida:
[+] Metadata for Archivo.docx:
[++] Metadata for [Content_Types].xml:
create_system: Weird
[++] Metadata for _rels/.rels:
create_system: Weird
[++] Metadata for customXml/_rels/item1.xml.rels:
create_system: Weird
[++] Metadata for customXml/item1.xml:
create_system: Weird
[++] Metadata for customXml/itemProps1.xml:
create_system: Weird
[++] Metadata for docProps/app.xml:
AppVersion: 16.0000
Application: Microsoft Office Word
Characters: 8493
CharactersWithSpaces: 9963
DocSecurity: 0
HeadingPairs: <vt:vector size="2" baseType="variant"><vt:variant><vt:lpstr>Title</vt:lpstr></vt:variant><vt:variant><vt:i4>1</vt:i4></vt:variant></vt:vector>
HyperlinksChanged: false
Lines: 70
LinksUpToDate: false
Pages: 9
Paragraphs: 19
ScaleCrop: false
SharedDoc: false
Template: Normal
TitlesOfParts: <vt:vector size="1" baseType="lpstr"><vt:lpstr></vt:lpstr></vt:vector>
TotalTime: 14
Words: 1489
create_system: Weird
[++] Metadata for docProps/core.xml:
cp:lastModifiedBy: J D
cp:revision: 3
create_system: Weird
dc:creator: Viral Geek
[++] Metadata for word/_rels/document.xml.rels:
create_system: Weird
[++] Metadata for word/document.xml:
create_system: Weird
[++] Metadata for word/fontTable.xml:
create_system: Weird
[++] Metadata for word/media/image1.jpg:
create_system: Weird
[++] Metadata for word/media/image2.png:
create_system: Weird
[++] Metadata for word/media/image3.jpg:
create_system: Weird
[++] Metadata for word/media/image4.png:
create_system: Weird
[++] Metadata for word/numbering.xml:
create_system: Weird
[++] Metadata for word/settings.xml:
create_system: Weird
[++] Metadata for word/styles.xml:
create_system: Weird
[++] Metadata for word/theme/theme1.xml:
create_system: Weird
[++] Metadata for word/webSettings.xml:
create_system: Weird
Aquí todo es mucho mejor, se muestran casi todos los metadatos del archivo.
Vamos a intentar analizar el formato .docm
:
mat2 -s macro.docm
De nuevo el fracaso:
[-] macro.docm's format (application/vnd.ms-word.document.macroEnabled.12) is not supported
Cómo Ver los Metadatos de un Archivo .docm
El programa mat2 no sabe que .docm
es el mismo archivo que .docx
. Pero, nosotros lo sabemos y podemos ir de una forma muy sencilla: basta con cambiar (o añadir) la extensión del archivo a .docx
:
cp macro.docm macro2.docm.docx
Ahora los metadatos están perfectamente extraídos:
mat2 -s macro2.docm.docx
Cómo Hacer más Legible la Salida de mat2
Puedes notar que la salida del comando mat2
consiste principalmente en las mismas líneas:
create_system: Weird
La salida será mucho más clara si simplemente eliminamos estas líneas:
mat2 -s Archivo.docx | grep -v 'Weird'
Datos Que Muestra mat2
El programa mat2 muestra el nombre de los nodos de los archivos XML que tienen nombres descriptivos. Estos son:
- AppVersion – versión de la aplicación
- Application – aplicación
- Characters – total de caracteres
- CharactersWithSpaces – total de caracteres con espacios
- DocSecurity – seguridad del documento
- HyperlinksChanged – enlaces cambiados
- Lines – total de líneas en el documento
- LinksUpToDate – enlaces actualizados
- Pages – total de páginas en el documento
- Paragraphs – total de párrafos en el documento
- ScaleCrop – escalado/recorte
- SharedDoc – documento compartido
- Template – plantilla utilizada
- TitlesOfParts – nombres de las partes
- TotalTime – tiempo total de edición
- Words – cantidad de palabras en el documento
- cp:lastModifiedBy – quién modificó el documento por última vez
- cp:lastPrinted – la fecha de la última impresión del documento
- cp:revision – el total de revisiones del documento (número de ediciones y guardados)
- dc:creator – quién creó el documento
Cómo ver Metadatos de Documentos de MS Office sin Programas Adicionales
De hecho, un nuevo formato de documento, por ejemplo, los archivos .docx
de Word es un archivo zip, que contiene principalmente archivos xml
(también puede haber imágenes, macros, otros archivos binarios).
Para el análisis manual, creé un nuevo archivo WebsiteSecurity.docx y añadí allí una imagen con coordenadas GPS y otros metadatos. Los programas mat
y mat2
mostraron la presencia de la imagen, pero los propios metadatos no se derivaron de ella.
Por lo tanto, puedes añadir la extensión .zip
al archivo WebsiteSecurity.docx y luego descomprimir su contenido como un archivo.
Descomprimo el archivo:
unzip WebsiteSecurity.docx.zip -d Archivo2
Al desempaquetar, los archivos multimedia se encuentran en la carpeta /word/media/
.
El programa mat2
no pudo encontrar ningún metadato en la imagen:
mat2 -s Archivo2/word/media/image1.jpg
No metadata found in ...
El programa mat
tampoco encontró nada:
mat -d Archivo2/word/media/image1.jpg
[+] File /home/esgeeks/Documentos/Archivo2/word/media/image1.jpg :
No harmful metadata found
Al parecer, al insertar imágenes en documentos de Word, el programa las vuelve a guardar y al mismo tiempo se pierden todos los metadatos. Pero, al menos podemos abrir la imagen:
Si lo recuerdas, la imagen es la misma utilizada cuando aprendimos a Modificar el GPS y otros Metadatos en las Fotos.
Los metadatos del documento están contenidos en los archivos docProps/core.xml
y docProps/app.xml
.
Los abrí en Sublime Text y, para facilitar la lectura, elegí la opción de formatear el documento, porque en su forma inicial todo el documento está escrito en una sola línea que es difícil de leer.
Contenido del archivo docProps/core.xml
:
Contenido del archivo docProps/app.xml
:
El archivo core.xml
contiene fechas de creación y modificación que incluso el programa mat2
no muestra. Tal vez haya otros campos que no se puedan ver si no es abriendo estos archivos.
Qué Archivo Contiene las Macros en los Archivos de Word
La información de las macros se guarda en el archivo /word/vbaData.xml
, y las propias macros se guardan en /word/vbaProject.bin
– este archivo es binario.
Qué Archivo Contiene el Texto del Documento en Archivos Word
El texto del documento se guarda en el archivo /word/document.xml
. Este documento utiliza un marcado especial basado en etiquetas de apertura y cierre, y sus propiedades.
Cómo Borrar los Metadatos de Archivos de MS Word
Puedes borrar los metadatos de los documentos de MS Office, incluido Word, directamente en el propio programa de edición. El siguiente es un ejemplo de Word.
En el menú, haz clic en Archivo:
A continuación, en la pestaña Información, busca el botón Comprobar si hay problemas y selecciona Inspeccionar documento en el menú desplegable:
Si el documento no está guardado, antes del análisis se te pedirá que lo guardes.
Haga clic en el botón de verificación y luego clic en Inspeccionar:
Presta atención al elemento Propiedades del documento e información personal; si lo deseas, haga clic en el botón Quitar todo:
Eliminar los Metadatos de Archivos de Office en Linux
El programa mat
parece haber eliminado con éxito los metadatos del archivo:
mat file3.docx
Así lo indica la salida:
[*] Cleaning file3.docx
[+] file3.docx cleaned!
El archivo resultante no se puede abrir en ningún programa…
El programa mat2
se encargó con éxito de la tarea y borró todos los metadatos:
mat2 file3.docx
Ten en cuenta que el archivo no se borrará y el archivo se creará sin cambios.
Por lo tanto, si realmente necesitas eliminar los metadatos del archivo .docx sin abrirlo en Word, la secuencia de acciones es la siguiente
- Añadir una extensión .zip al archivo.
- Descomprimir el archivo resultante.
- Abrir los archivos
docProps/core.xml
ydocProps/app.xml
y sustituir los datos por los que necesites. Después de editarlos, guardar estos archivos. - Seleccionar todos los directorios y archivos desempaquetados y comprímelo todo en un archivo zip.
- Añadir la extensión
.docx
al archivo resultante. - Es necesario comprobar que el documento no está dañado y ha conservado su funcionalidad. Para evitar que se guarden nuevos metadatos en él, por si acaso, haz una copia del nuevo documento y compruébalo.
- Por cierto, de esta manera no sólo se puede eliminar, sino también falsificar los metadatos de los documentos de Office:
Anota las fechas de creación, modificación e impresión y el número de revisión:
En PHP puedes utilizar la clase ZipArchive usando el método de compresión por defecto para desempaquetar y empaquetar archivos de MS Word .docx.
Conclusión
Los metadatos pueden contener información importante, hasta el nombre del autor del documento, por lo que hay que prestar especial atención.
En cuanto a la visualización y limpieza de los metadatos de los documentos de MS Office con herramientas como mat y mat2, la primera no muestra los metadatos y rompe el archivo cuando se limpia, la segunda los muestra, y limpia con éxito el archivo.
La forma más fácil de limpiar los metadatos en un documento de Word y en otros programas de Office es hacerlo directamente en el editor de MS Office correspondiente. Puedes encontrar más trucos sobre Microsoft Word en Worddesdecero.es.
En el próximo artículo extraeremos, borraremos y falsearemos los metadatos de los formatos de archivo de LibreOffice.