← Todas las Herramientas

exifray

Descubre y extrae metadatos de archivos públicamente accesibles en cualquier dominio.
GitHub ★ 12
go install github.com/mmarting/exifray@latest
exifray flow diagram

exifray descubre archivos públicamente accesibles en dominios objetivo, los descarga en memoria y extrae metadatos sin escribir nada en disco. Consulta 12 fuentes (archivos pasivos, motores de búsqueda, scraping) para localizar archivos, y luego analiza EXIF, propiedades PDF, estructuras OOXML/ODF, XMP y más para revelar hallazgos sensibles: nombres de usuario, emails, coordenadas GPS, rutas internas, versiones de software, nombres de impresoras y números de serie. Los resultados se deduplican y agrupan por categoría. Soporta procesamiento por lotes, enrutamiento por proxy, rate limiting y salida JSON para integración en pipelines.

Cómo funciona

Descubrimiento
Consulta hasta 12 fuentes (archivos pasivos, motores de búsqueda, scraping) para localizar URLs de archivos en el dominio objetivo
Deduplicación
Consolida resultados de todas las fuentes, elimina duplicados y filtra por extensión de archivo
Extracción
Descarga archivos en memoria y extrae metadatos de EXIF, propiedades PDF, OOXML/ODF, XMP y más
Análisis
Analiza los metadatos extraídos en busca de datos sensibles en 9 categorías: usuarios, emails, GPS, software, rutas y más
Salida
Presenta hallazgos deduplicados agrupados por categoría con exportación JSON opcional

Características

  • 12 fuentes de descubrimiento (10 gratuitas, 2 basadas en API)
  • Procesamiento en memoria: descarga y analiza sin almacenar en disco
  • 9 categorías de detección: GPS, usuarios, emails, software, impresoras, números de serie, rutas, URLs, hostnames
  • 11 familias de tipos de archivo: JPEG, TIFF, PNG, PDF, DOCX/XLSX/PPTX, ODT/ODS/ODP, SVG, MP3, DOC/XLS/PPT, GIF, WebP/BMP
  • Extracción de metadatos XMP de cualquier archivo compatible
  • Los hallazgos GPS incluyen enlaces a Google Maps para verificación rápida
  • Deduplicación entre fuentes y dentro de los hallazgos de metadatos
  • Filtrado por extensiones de archivo personalizadas
  • Selección de fuentes: ejecutar solo métodos de descubrimiento específicos
  • Soporte proxy (HTTP, SOCKS5)
  • Rate limiting y timeout configurable
  • Procesamiento por lotes con lista de dominios
  • Salida JSON y exportación a archivo para automatización
  • Modo silencioso: un hallazgo por línea para encadenar con otras herramientas
  • Mostrar URLs de origen por hallazgo con --show-urls
  • Archivo de configuración para API keys ($HOME/.exifray.conf)

Métodos de Descubrimiento

MétodoTipoDescripción
Wayback MachineIncluidoCDX API para URLs de archivos históricos desde web.archive.org
Common CrawlIncluidoCC Index API para URLs de los datasets de Common Crawl
AlienVault OTXIncluidoListas de URLs del dominio (API key opcional mejora los límites)
URLScan.ioIncluidoAPI de búsqueda para URLs de archivos indexados (clave opcional aumenta los límites)
Web ScrapingIncluidoRastrea sitios objetivo y extrae URLs de archivos del HTML
SitemapIncluidoAnaliza sitemap.xml y sitemaps enlazados en busca de archivos
HackerTargetIncluidoAPI de búsqueda de hosts para URLs asociadas al dominio
crt.shIncluidoLogs de Certificate Transparency para descubrimiento de subdominios
ThreatMinerIncluidoAPI de inteligencia de amenazas para URLs asociadas al dominio
RapidDNSIncluidoDescubrimiento de subdominios vía rapiddns.io
VirusTotalAPI gratuitaDescubrimiento de URLs del dominio (500 consultas gratuitas/día)
Google SearchAPI de pagoDorking por tipo de archivo vía Custom Search API

Ejemplos de Uso

exifray -d example.com
Escanear un dominio usando todas las fuentes gratuitas
exifray -d example.com --json -o results.json
Exportar hallazgos a archivo JSON
exifray -d example.com -e pdf,docx,xlsx
Escanear solo tipos de archivo específicos
exifray -d example.com --sources wayback,scrape,sitemap
Usar solo fuentes de descubrimiento específicas
exifray -d example.com --show-urls
Mostrar las URLs de los archivos de origen junto a cada hallazgo
exifray -l domains.txt -w 50
Procesamiento por lotes con mayor concurrencia
exifray -d example.com --proxy socks5://127.0.0.1:9050
Enrutar a través de un proxy
exifray -d example.com --rate-limit 5
Limitar la tasa de peticiones a 5 por segundo
exifray -q -d example.com
Modo silencioso para automatización
subfinder -d example.com -silent | exifray
Encadenar dominios desde subfinder
exifray -q -d target.com | grep "^\[Users\]" | cut -d' ' -f2-
Filtrar hallazgos por categoría con herramientas estándar
exifray -d target.com --json | jq '.findings[] | select(.category == "GPS")'
Extraer hallazgos GPS de la salida JSON con jq

Opciones

FlagDescripción
-d, --domainTarget domain (required unless -l or stdin)
-l, --listFile containing domain list (batch mode)
-e, --extensionsCustom file extensions, comma-separated
-s, --sourcesSources to use, comma-separated (default: all)
-o, --outputWrite results to file (JSON format)
-c, --configConfig file path (default: $HOME/.exifray.conf)
-w, --workersConcurrent worker threads (default: 20)
--timeoutHTTP timeout in seconds (default: 15)
--rate-limitMax requests per second, 0 = unlimited (default: 0)
--proxyProxy URL (http:// or socks5://)
--jsonOutput results as JSON
--show-urlsDisplay source file URLs per finding
-v, --verboseEnable verbose output
-q, --quietSilent mode: findings only, one per line
--versionPrint version and exit
-h, --helpDisplay help information