PowerMeta: un script en PowerShell para buscar los ficheros públicos de un dominio y extraer sus metadatos
PowerMeta es un script en PowerShell que busca archivos públicos alojados en varios sitios web para un dominio en particular usando búsquedas personalizadas en Google y Bing, luego permite su descarga y finalmente analiza los metadatos asociados mediante Exiftool. Ya sabemos que los metadatos muchas veces facilitan datos tan interesantes como nombres de usuario, dominios, tipos de software, nombres de equipo, etc. por lo que usar esta herramienta en las fases iniciales de reconocimiento de un test intrusión puede resultar bastante interesante.
Para usar PowerMeta sólo tendremos que poner el ejecutable de la herramienta Exiftool en el mismo path (si no te fías del repo puedes descargarla desde aquí). Por defecto, sólo extrae los campos 'Autor' y 'Creador', ya que estos normalmente son los que siempre se guardan con los documentos. Sin embargo, también se pueden extraer todos al pasarle a PowerMeta el parámetro -ExtractAllToCsv.
Uso
Búsqueda básica
Con el siguiente comando, mediante Google y Bing se buscan archivos en el dominio 'targetdomain.com' con las extensiones pdf, docx, xlsx, doc, xls, pptx o pptx. Una vez que haya terminado de elaborar esta lista, preguntará al usuario si desea descargar los archivos y, después de descargarlos, volverá a solicitar la extracción de metadatos de esos archivos.
C:\PS> Invoke-PowerMeta -TargetDomain targetdomain.com
Guardar los resultados en un archivo
El mismo comando anterior con la salvedad de que se guardarán los enlaces a los archivos encontrados en "target-domain-links.txt".
C:\PS> Invoke-PowerMeta -TargetDomain targetdomain.com -TargetFileList target-domain-links.txt
Cambiar los tipos de archivo y permitir la descarga y extracción automáticas
El siguiente comando buscará con Google y Bing archivos con la extensión pdf o xml en el dominio 'targetdomain.com'. Luego, los descargará automáticamente y extraerá los metadatos.
C:\PS> Invoke-PowerMeta -TargetDomain targetdomain.com -FileTypes "pdf, xml" -Download -Extract
Extraer todos los metadatos y limitar la búsqueda de páginas
Este comando buscará también en Google y Bing archivos con extensión pdf, docx, xlsx, doc, xls, pptx o pptx en el dominio 'targetdomain.com', pero sólo buscará en las dos primeras páginas. Todos los metadatos (no sólo los campos predeterminados) se guardarán en un CSV llamado all-target-metadata.csv.
C:\PS> Invoke-PowerMeta -TargetDomain targetdomain.com -MaxSearchPages 2 -ExtractAllToCsv all-target-metadata.csv
Extraer metadatos de archivos de un directorio
Este comando simplemente extraerá todos los metadatos de todos los archivos de la carpeta "\2017-03-031-144953" y los guardará en un CSV llamado all-target-metadata.csv
C:\PS> ExtractMetadata -OutputDir .\2017-03-031-144953\ -ExtractAllToCsv all-target-metadata.csv
Opciones de PowerMeta
Proyecto: https://github.com/dafthack/PowerMeta
Para usar PowerMeta sólo tendremos que poner el ejecutable de la herramienta Exiftool en el mismo path (si no te fías del repo puedes descargarla desde aquí). Por defecto, sólo extrae los campos 'Autor' y 'Creador', ya que estos normalmente son los que siempre se guardan con los documentos. Sin embargo, también se pueden extraer todos al pasarle a PowerMeta el parámetro -ExtractAllToCsv.
Uso
Búsqueda básica
Con el siguiente comando, mediante Google y Bing se buscan archivos en el dominio 'targetdomain.com' con las extensiones pdf, docx, xlsx, doc, xls, pptx o pptx. Una vez que haya terminado de elaborar esta lista, preguntará al usuario si desea descargar los archivos y, después de descargarlos, volverá a solicitar la extracción de metadatos de esos archivos.
C:\PS> Invoke-PowerMeta -TargetDomain targetdomain.com
Guardar los resultados en un archivo
El mismo comando anterior con la salvedad de que se guardarán los enlaces a los archivos encontrados en "target-domain-links.txt".
C:\PS> Invoke-PowerMeta -TargetDomain targetdomain.com -TargetFileList target-domain-links.txt
Cambiar los tipos de archivo y permitir la descarga y extracción automáticas
El siguiente comando buscará con Google y Bing archivos con la extensión pdf o xml en el dominio 'targetdomain.com'. Luego, los descargará automáticamente y extraerá los metadatos.
C:\PS> Invoke-PowerMeta -TargetDomain targetdomain.com -FileTypes "pdf, xml" -Download -Extract
Extraer todos los metadatos y limitar la búsqueda de páginas
Este comando buscará también en Google y Bing archivos con extensión pdf, docx, xlsx, doc, xls, pptx o pptx en el dominio 'targetdomain.com', pero sólo buscará en las dos primeras páginas. Todos los metadatos (no sólo los campos predeterminados) se guardarán en un CSV llamado all-target-metadata.csv.
C:\PS> Invoke-PowerMeta -TargetDomain targetdomain.com -MaxSearchPages 2 -ExtractAllToCsv all-target-metadata.csv
Extraer metadatos de archivos de un directorio
Este comando simplemente extraerá todos los metadatos de todos los archivos de la carpeta "\2017-03-031-144953" y los guardará en un CSV llamado all-target-metadata.csv
C:\PS> ExtractMetadata -OutputDir .\2017-03-031-144953\ -ExtractAllToCsv all-target-metadata.csv
Opciones de PowerMeta
TargetDomain - The target domain to search for files.
FileTypes - A comma seperated list of file extensions to search for. By default PowerMeta searches for "pdf, docx, xlsx, doc, xls, pptx, ppt".
OutputList - A file to output the list of links discovered through web searching to.
OutputDir - A directory to store all downloaded files in.
TargetFileList - List of file links to download.
Download - Instead of being prompted interactively pass this flag to auto-download files found.
Extract - Instead of being prompted interactively pass this flag to extract metadata from found files pass this flag to auto-extract any metadata.
ExtractAllToCsv - All metadata (not just the default fields) will be extracted from files to a CSV specified with this flag.
UserAgent - Change the default User Agent used by PowerMeta.
MaxSearchPages - The maximum number of pages to search on each search engine.
Proyecto: https://github.com/dafthack/PowerMeta
Que interesante! Hay que ver ese Code. Gracias por la info Vicente ;)
ResponderEliminarVerás que el script no es nada complicado pero muy útil... Y es que cada vez van saliendo más y más cosillas interesantes para PowerShell ;)
EliminarVerás que el script no es nada complicado pero muy útil... Y es que cada vez van saliendo más y más cosillas interesantes para PowerShell ;)
Eliminar