← retour aux outils back to tools

# metagoofil

Outil d'extraction de métadonnées pour documents publics. Télécharge des fichiers (PDF, DOC, XLS, PPT) d'un domaine cible via Google et en extrait les métadonnées : noms d'utilisateur, versions de logiciels, adresses e-mail et chemins. Metadata extraction tool for public documents. Downloads files (PDF, DOC, XLS, PPT) from a target domain via Google and extracts metadata — usernames, software versions, email addresses, and paths.

↗ https://github.com/laramies/metagoofil

## Overview

metagoofil uses Google dorks to find documents hosted on a target domain, downloads them, and extracts metadata. Document metadata often reveals internal usernames, software versions, email addresses, Active Directory domain names, network paths, and printer information — all without touching the target’s systems.

## Installation

    git clone https://github.com/laramies/metagoofil
    cd metagoofil
    pip3 install -r requirements.txt

## Basic Usage

Download and extract metadata from PDFs

    python3 metagoofil.py -d example.com -t pdf -n 20 -o ./output/ -f results.html

Multiple file types

    python3 metagoofil.py -d example.com -t pdf,doc,xls,ppt -n 50 -o ./output/

Save results

    python3 metagoofil.py -d example.com -t pdf -n 10 -o ./docs/ -f report.html

## Supported File Types

    # Specify with -t (comma-separated):
    # pdf, doc, docx, xls, xlsx, ppt, pptx, odp, ods, odt

    # Most valuable:
    # pdf   — design docs, manuals, reports → author names, software
    # docx  — Word docs → author, company, last modified by
    # xlsx  — Spreadsheets → author, paths, formulas with server names
    # pptx  — Presentations → author, company, email addresses

    python3 metagoofil.py -d example.com -t pdf,docx,xlsx -n 30 -o ./output/

## Metadata Extracted

    From PDF/DOC/XLS files:
      Author          → internal usernames (e.g., "jsmith")
      Creator         → software used (e.g., "Microsoft Word 2016")
      Producer        → PDF generator (reveals software stack)
      Last Modified By → another internal username
      Company         → confirmed company name
      Subject/Title   → document classification
      Comments        → sometimes contain server names or paths

    From DOCX/XLSX:
      Author name
      Last saved path (e.g., C:\Users\jsmith\Documents\...)
      Printer name (e.g., \\printserver01\HP4200)
      Company name
      Template path

## Analyzing Results

Extract unique usernames from results

    grep -r "Author\|Creator\|Last Modified" output/ | \
      awk -F: '{print $2}' | \
      sort -u | \
      grep -v "^$"

Extract email addresses

    grep -r "@" output/ | grep -oE "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"

Extract server paths

    grep -r "\\\\" output/ | grep -oE "\\\\[a-zA-Z0-9._-]+"

Extract software versions (for CVE research)

    grep -r "Microsoft\|Adobe\|LibreOffice" output/

## Using Discovered Usernames

Usernames found → test as AD usernames Build username list

    cat usernames.txt

Test with kerbrute

    kerbrute userenum --domain example.com -dc DC01 usernames.txt

    # Or format for email spraying
    # If email format is firstname.lastname@example.com:
    # Convert "John Smith" → john.smith@example.com

## Tips

- Document metadata is a gold mine — often reveals the full AD domain name and naming convention
- Printer paths like `\\printserver01\HP-Finance` reveal internal server names
- Software versions from Creator field help identify vulnerable software targets use
- Use exiftool for deeper metadata extraction from downloaded files

Help / Man page

    metagoofil.py [options]

    -d DOMAIN   Target domain to search
    -t TYPES    File types: pdf,doc,xls,ppt (comma-separated)
    -n N        Number of files to download (default: 100)
    -o DIR      Output directory for downloaded files
    -f FILE     Output HTML report file
    -l N        Limit Google results to N pages
    -e DELAY    Delay between Google requests (seconds)
    -u AGENT    User agent string

## Vue d’ensemble

metagoofil utilise des Google dorks pour trouver des documents hébergés sur un domaine cible, les télécharge et en extrait les métadonnées. Les métadonnées des documents révèlent souvent des noms d’utilisateur internes, des versions de logiciels, des adresses e-mail, des noms de domaine Active Directory, des chemins réseau et des informations d’imprimante, le tout sans toucher aux systèmes de la cible.

## Installation

    git clone https://github.com/laramies/metagoofil
    cd metagoofil
    pip3 install -r requirements.txt

## Utilisation de base

    # Télécharger et extraire les métadonnées des PDF
    python3 metagoofil.py -d example.com -t pdf -n 20 -o ./output/ -f results.html

    # Plusieurs types de fichiers
    python3 metagoofil.py -d example.com -t pdf,doc,xls,ppt -n 50 -o ./output/

    # Sauvegarder les résultats
    python3 metagoofil.py -d example.com -t pdf -n 10 -o ./docs/ -f report.html

## Types de fichiers pris en charge

    # Spécifier avec -t (séparés par des virgules) :
    # pdf, doc, docx, xls, xlsx, ppt, pptx, odp, ods, odt

    # Les plus utiles :
    # pdf   → docs de conception, manuels, rapports → noms d'auteurs, logiciels
    # docx  → docs Word → auteur, société, dernière modification par
    # xlsx  → tableurs → auteur, chemins, formules avec noms de serveurs
    # pptx  → présentations → auteur, société, adresses e-mail

    python3 metagoofil.py -d example.com -t pdf,docx,xlsx -n 30 -o ./output/

## Métadonnées extraites

    Depuis les fichiers PDF/DOC/XLS :
      Author          → noms d'utilisateur internes (ex. « jsmith »)
      Creator         → logiciel utilisé (ex. « Microsoft Word 2016 »)
      Producer        → générateur du PDF (révèle la stack logicielle)
      Last Modified By → un autre nom d'utilisateur interne
      Company         → nom de la société confirmé
      Subject/Title   → classification du document
      Comments        → contiennent parfois des noms de serveurs ou des chemins

    Depuis les fichiers DOCX/XLSX :
      Nom de l'auteur
      Chemin de dernière sauvegarde (ex. C:\Users\jsmith\Documents\...)
      Nom de l'imprimante (ex. \\printserver01\HP4200)
      Nom de la société
      Chemin du template

## Analyse des résultats

    # Extraire les noms d'utilisateur uniques des résultats
    grep -r "Author\|Creator\|Last Modified" output/ | \
      awk -F: '{print $2}' | \
      sort -u | \
      grep -v "^$"

    # Extraire les adresses e-mail
    grep -r "@" output/ | grep -oE "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"

    # Extraire les chemins serveur
    grep -r "\\\\" output/ | grep -oE "\\\\[a-zA-Z0-9._-]+"

    # Extraire les versions de logiciels (pour la recherche de CVE)
    grep -r "Microsoft\|Adobe\|LibreOffice" output/

## Utilisation des noms d’utilisateur découverts

    # Noms d'utilisateur trouvés → à tester comme noms d'utilisateur AD, construire la liste
    cat usernames.txt

    # Tester avec kerbrute
    kerbrute userenum --domain example.com -dc DC01 usernames.txt

    # Ou formater pour du spray d'e-mails
    # Si le format d'e-mail est firstname.lastname@example.com :
    # Convertir "John Smith" → john.smith@example.com

## Conseils

- Les métadonnées de documents sont une mine d’or : elles révèlent souvent le nom de domaine AD complet et la convention de nommage
- Les chemins d’imprimante comme `\\printserver01\HP-Finance` révèlent des noms de serveurs internes
- Les versions de logiciels du champ Creator aident à identifier les logiciels vulnérables utilisés par la cible
- Utiliser exiftool pour une extraction de métadonnées plus poussée sur les fichiers téléchargés

Aide / Page de manuel

    metagoofil.py [options]

    -d DOMAIN   Target domain to search
    -t TYPES    File types: pdf,doc,xls,ppt (comma-separated)
    -n N        Number of files to download (default: 100)
    -o DIR      Output directory for downloaded files
    -f FILE     Output HTML report file
    -l N        Limit Google results to N pages
    -e DELAY    Delay between Google requests (seconds)
    -u AGENT    User agent string