En-tête négligent

Le Panopticon des métadonnées : Un guide définitif pour Ghunt V2, Google API Reverse Engineering, et Agentic OSINT

Dans l'environnement concurrentiel moderne, la "vie privée" est un échec opérationnel et l'"anonymat" n'est qu'un état temporaire de décorrélation. Pour l'équipe rouge d'élite ou l'ingénieur en sécurité de l'IA, l'objectif de l'Open Source Intelligence (OSINT) n'est pas de trouver des informations cachées, mais d'armer les informations publiques.

Ghunt a dépassé ses origines en tant que simple script Python pour devenir le cadre standard de l'industrie pour interroger l'écosystème Google. Il n'exploite pas un bogue, mais l'architecture fondamentale des services connectés. En disséquant les appels d'API entre l'appareil d'un utilisateur et les serveurs de Google - en particulier en tirant parti de l'API Services de jeux, Carteset API pour les personnes-Ghunt transforme une adresse électronique stérile en un graphique dynamique "Pattern of Life".

Ce dossier technique complet déconstruira les mécanismes internes de Ghunt V2, fournira des stratégies d'automatisation Python de niveau production, analysera son rôle dans l'exploitation de vulnérabilités à fort impact telles que CVE-2026-21858 et CVE-2025-68613et démontrer comment Penligent.ai automatise l'ensemble de la chaîne d'exécution grâce à l'IA agentique.

Ghunt via Penligent

Partie I : La mécanique de l'extraction (sous le capot)

Pour comprendre comment utiliser Ghunt efficacement, il faut comprendre ce qu'il fait sur le réseau. Ghunt est, à la base, un client API authentifié qui émule les applications Google légitimes.

1. Le contexte des justificatifs : Anatomie d'une session

Ghunt ne fonctionne pas de manière anonyme. Il nécessite un état de session valide pour contourner le "Consent Bump" de Google et l'heuristique anti-scraping. La "magie" réside dans des cookies spécifiques, principalement :

  • Sécuriser-1PSID & __Secure-3PSID: Il s'agit des principaux identifiants d'une session Google persistante. Ils permettent d'accéder au contexte "Recherche personnelle".
  • oauth_token: Souvent utilisé pour autoriser les appels à l'API Google People sans déclencher un écran de consentement OAuth complet.

Lorsque vous exécutez ghunt loginvous exportez essentiellement cet état cryptographique du contexte de votre navigateur dans un fichier Python httpx session. L'outil gère ensuite les X-Goog-AuthUser pour passer d'un compte à l'autre, imitant ainsi le comportement d'un utilisateur passant de son profil personnel à son profil d'entreprise dans Chrome.

2. Décodage de la matrice : Tampons de protocole (Protobuf)

Contrairement aux API REST standard qui renvoient du JSON propre, de nombreux points de terminaison internes de Google (en particulier Maps et Play Store) renvoient des données sérialisées en format Tampons de protocole (Protobuf).

  • Le défi: Protobuf est un format binaire. Sans le .proto (que Google garde confidentiels), les données sont un flux d'octets illisibles.
  • La solution Ghunt: Les développeurs de Ghunt ont procédé à une rétro-ingénierie du format filaire. L'outil comprend un analyseur personnalisé qui désérialise récursivement ces flux binaires.
    • Exemple : Lorsqu'il interroge les contributions d'un utilisateur à Maps, Ghunt reçoit un blob Protobuf. Il enlève les en-têtes de fil, identifie les balises de champ (par exemple, field 1 est l'identifiant de l'examen, le champ 2 est l'horodatage), et reconstruit un objet lisible. Cette capacité à analyser le trafic binaire interne brut est ce qui différencie Ghunt des scrapers HTML de base.
Ghunt via Penligent

Partie II : La surface d'attaque modulaire

Ghunt V2 fonctionne selon une architecture modulaire. Chaque module cible un silo de données spécifique au sein de l'infrastructure Google.

Module A : Le moteur de pivotement de l'email (ghunt email)

C'est le point d'entrée le plus courant. Vous l'alimentez [email protected]et il interroge le point de terminaison interne https://clients6.google.com/rpc.

  • Résolution de l'ID GAIA: Le module résout l'e-mail en un ID GAIA (Administration des comptes et identifiants Google). Ce nombre entier à 21 chiffres constitue le noyau immuable de l'identité d'un utilisateur. Même si l'utilisateur change d'adresse électronique ou de nom d'affichage, l'ID GAIA persiste.
  • Enumération des services: Il vérifie l'existence de profils publics sur Photos, Maps et Calendar.
  • Fuite de l'IAM dans l'informatique dématérialisée: De manière cruciale, il peut identifier si l'utilisateur a une empreinte active dans Google Cloud Platform (GCP). Pour un Red Teamer, le fait de savoir qu'une cible est un "administrateur GCP" lui donne immédiatement la priorité pour les campagnes d'hameçonnage. gcloud les références.

Module B : La trilatération par géolocalisation (cartes de chasse)

Ce module regroupe les "avis" et les "photos" postés par la cible.

  • Analyse de l'horodatage: En établissant une corrélation entre les horodatages des avis et les coordonnées géographiques des entreprises ayant fait l'objet d'un avis, Ghunt construit une carte de vélocité.
    • Scénario : Une personne cible passe en revue un café à San Francisco à 9h00 et un restaurant à Palo Alto à 12h00. Cela confirme sa localisation physique et sa capacité à se déplacer.
  • Note de confiance: Ghunt V2 calcule un score de confiance pour la "base d'origine" de l'utilisateur en regroupant la densité des avis.

Module C : Télémétrie des appareils et API Play (ghunt play)

Il s'agit peut-être du module le plus dangereux pour l'exploitation du matériel. En interrogeant la bibliothèque Google Play, Ghunt dresse la liste des appareils liés au compte.

  • Données extraites: Fabricant (Samsung, Pixel, Xiaomi), numéro de modèle (SM-S918B) et date de la dernière apparition.
  • Armement: Il ne s'agit pas d'un simple détail. C'est la condition préalable à l'exécution de code à distance (RCE) spécifique au matériel.

Partie III : Ingénierie avancée - Automatiser la chasse

L'utilisation manuelle de l'interface de programmation est insuffisante pour une reconnaissance à l'échelle de l'entreprise. Vous trouverez ci-dessous une implémentation Python robuste, prête pour la production, qui intègre Ghunt dans une structure de classe asynchrone, adaptée à l'intégration dans un pipeline plus large.

Les GhuntAutomator Classe

Python

`import asyncio import json import logging from typing import Dict, Optional from ghunt.api import GHuntAPI from ghunt.objects import Target from ghunt.utils import get_httpx_client

Configurer la journalisation structurée pour le pipeline

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

classe GhuntAutomator : def init(self) : self.client = get_httpx_client() self.api = GHuntAPI(self.client) self.is_authenticated = False

async def authenticate(self) -> bool :
    """
    Initialise la session en utilisant les informations d'identification stockées.
    Suppose que les cookies sont déjà sérialisés dans le chemin par défaut.
    """
    try :
        self.is_authenticated = await self.api.login()
        if self.is_authenticated :
            logging.info("[+] Successfully authenticated to Google Internal APIs.")
            return True
        else :
            logging.error("[-] L'authentification a échoué. Vérifier la validité du cookie.")
            retour Faux
    except Exception as e :
        logging.critical(f"[-] Fatal Auth Error : {e}")
        return False

async def scan_target(self, email : str) -> Optional[Dict] :
    if not self.is_authenticated :
        logging.warning("[-] Cannot scan : Not authenticated.")
        return None

    logging.info(f"[*] Initiating Deep Scan for : {email}")
    
    try :
        target = Target(self.api, email)
        found = await target.hunt()
        
        if not found :
            logging.info(f"[-] Target {email} not found or hidden.")
            return None

        # 1. Intelligence de base
        intel_package = {
            "gaia_id" : target.person.gaia_id,
            "name" : target.person.name,
            "profile_pic" : target.person.profile_pic,
            "last_active" : target.person.last_active_service,
            "devices" : [],
            "locations" : []
        }

        # 2. Extraire les données télémétriques des appareils (essentiel pour la cartographie CVE)
        if target.person.devices :
            for device in target.person.devices :
                intel_package["devices"].append({
                    "model" : device.model,
                    "last_seen" : str(device.last_seen)
                })
        
        # 3. Extraire les données de géolocalisation des cartes
        if target.person.maps_contribs :
            for review in target.person.maps_contribs[:5] : # 5 avis les plus récents
                intel_package["locations"].append({
                    "lieu" : nom du lieu de l'examen,
                    "rating" : review.rating,
                    "timestamp" : str(review.date)
                })

        return intel_package

    except Exception as e :
        logging.error(f"[-] Error during scan logic : {e}")
        return None

async def cleanup(self) :
    await self.client.aclose()


Ghunt via Penligent

Harnais d'exécution

async def main() : automator = GhuntAutomator() if await automator.authenticate() : result = await automator.scan_target("[email protected]") if result : print(json.dumps(result, indent=4)) await automator.cleanup()

si nom == “principal" : asyncio.run(main())`

Ce code est prêt pour le pipeline. Il inclut la gestion des erreurs, une sortie JSON structurée et une conception modulaire. Il peut être conteneurisé et déclenché par une file d'attente de messages (comme Kafka ou RabbitMQ) dans un système distribué plus vaste.

Partie IV : La chaîne de la mort - L'intersection de l'OSINT et des CVE

La véritable valeur de Ghunt apparaît lorsque ses résultats sont superposés au paysage CVE (Common Vulnerabilities and Exposures) de 2026.

1. Le vecteur matériel : CVE-2026-21858 (CoreAudio RCE)

Contexte : CVE-2026-21858 est une vulnérabilité critique d'exécution de code à distance dans le moteur de traitement des médias d'Android 15 et des versions antérieures. Elle permet à un attaquant d'exécuter un code arbitraire en envoyant un fichier audio malformé par MMS ou WhatsApp.

  • Le problème : L'exploit dépend du matériel. L'envoi de la mauvaise charge utile à la mauvaise architecture (par exemple, l'envoi d'une charge utile Exynos à un appareil Snapdragon) provoque un plantage et alerte l'utilisateur.
  • La solution Ghunt : En courant ghunt playL'attaquant récupère le modèle exact (par exemple, "Pixel 7 Pro"). Ils croisent cela avec la matrice de compatibilité CVE-2026-21858.
  • Le résultat : Un compromis 100% fiable et sans clic. Ghunt fournit le solution de ciblage pour le missile.

2. Le vecteur d'identité : CVE-2025-68613 (fuite de jeton OAuth)

Contexte : CVE-2025-68613 implique une faille dans la manière dont certaines intégrations tierces gèrent les jetons de rafraîchissement Google OAuth.

  • Le problème : Les attaquants doivent savoir qui les intégrations qu'un utilisateur a autorisées. La diffusion d'exploits aveugles est bruyante.
  • La solution Ghunt : Les modules "SpiderDAL" (Digital Asset Links) et "Photos" de Ghunt peuvent souvent déduire des connexions tierces. Si Ghunt montre que l'utilisateur publie des photos à partir d'une application tierce spécifique, l'attaquant sait qu'il existe un jeton OAuth valide pour cette intégration.
  • Le résultat : L'attaquant initie le CVE-2025-68613 spécifiquement contre l'application identifiée par Ghunt, en volant les données persistantes de l'application. refresh_token et de réaliser une prise de contrôle permanente des comptes (ATO).

Partie V : L'avenir - Des scripts à l'IA agentique (Penligent.ai)

Bien que le script Python ci-dessus soit puissant, il représente "l'ère manuelle" de la sécurité. Il nécessite un humain pour interpréter le JSON, rechercher le CVE et élaborer la charge utile. En 2026, la vitesse sera le facteur décisif. C'est ici que IA agentique prend le relais.

Penligent.ai, la première Pirate de l'IA agentiqueLe système de gestion de l'information de la Commission européenne, absorbe la logique d'outils tels que Ghunt dans une architecture cognitive. Il ne se contente pas d'"exécuter" Ghunt, il en "comprend" les résultats.

Try Ghunt via Penligent

La boucle cognitive d'un agent négligent :

  1. Observation (le capteur) : L'agent déploie de manière autonome un capteur de type Ghunt sur une liste de courriels d'entreprise.
  2. Orientation (le contexte) :
    • Données brutes : "L'utilisateur A utilise un Samsung S24.
    • Recherche de connaissances : L'agent interroge sa base de données vectorielle interne de vulnérabilités. Il fait correspondre "Samsung S24" + "Android 15" à CVE-2026-21858.
  3. Décision (la stratégie) : L'agent calcule le chemin de moindre résistance.
    • Option A : Courriel d'hameçonnage (taux de réussite 12%).
    • Option B : Mobile RCE via CVE-2026-21858 (taux de réussite 95%).
    • Sélection : L'agent choisit l'option B.
  4. Action (la validation) : L'agent génère un Preuve de concept sûre (PoC) artefact. Il n'exploite pas l'appareil de manière malveillante ; il valide l'existence de la vulnérabilité (par exemple, en vérifiant si l'appareil accepte l'en-tête malformé) et enregistre la découverte.

C'est la différence entre un outil et un coéquipier. Penligent automatise la raisonnementet pas seulement le exécution. Pour une équipe de sécurité, cela signifie qu'il faut trouver le chemin critique vers la compromission en quelques minutes, et non en quelques jours.

Partie VI : Contre-mesures défensives et opSec

Si vous faites partie d'une équipe rouge, vous devez protéger votre infrastructure. Si vous êtes en équipe bleue, vous devez aveugler l'attaquant.

Pour l'opérateur (OpSec)

  • La dockérisation est obligatoire : N'exécutez jamais Ghunt sur votre système d'exploitation hôte. Google laisse des "miettes de pain" dans le système de fichiers. Utilisez l'image Docker officielle : docker run -v $(pwd)/resources:/usr/src/app/resources mxrch/ghunt login
  • Procurations résidentielles : Les adresses IP des centres de données (AWS, DigitalOcean) sont immédiatement signalées par Google. Vous devez faire passer le trafic de Ghunt par des Proxy résidentiels à haute réputation pour imiter le trafic normal de l'utilisateur.
  • Ancienneté du compte : N'utilisez pas un tout nouveau compte Gmail pour faire de la reconnaissance. Google fait confiance aux comptes ayant un historique. Utilisez des comptes de brûleurs "chevronnés".

Pour le défenseur (atténuation)

  • La liste des "blocs" : Vous ne pouvez pas bloquer Ghunt directement, car il ressemble à du trafic légitime. Vous devez réduire la surface des données.
  • Politique d'entreprise :
    1. Désactiver l'activité Web et applications: Appliquer cette mesure à tous les utilisateurs de l'entreprise via les règles d'administration de l'espace de travail Google. Cette mesure permet d'interrompre la collecte des évaluations de la carte et de l'historique des emplacements.
    2. Audit de l'informatique fantôme : Lancez régulièrement Ghunt contre votre propre les cadres. Si leurs appareils personnels sont répertoriés, cela signifie qu'ils mélangent leur identité personnelle et celle de l'entreprise, ce qui constitue une violation du principe de "séparation des fonctions".
    3. Isolation du point final : Veiller à ce que les appareils mobiles qui accèdent aux données de l'entreprise soient gérés (MDM). Si un appareil est identifié comme étant vulnérable aux CVE-2026-21858Le MDM devrait automatiquement révoquer ses jetons d'accès jusqu'à ce qu'il soit corrigé.

Conclusion

Ghunt V2 témoigne du fait que dans un monde hyperconnecté, nous laissons tous échapper des données. Pour l'ingénieur en sécurité, il fournit la granularité nécessaire pour simuler des acteurs de menaces sophistiquées.

Cependant, la corrélation manuelle des données OSINT avec des chaînes de vulnérabilité complexes telles que les CVE-2026-21858 et CVE-2025-68613 devient insoutenable pour les équipes humaines. L'avenir réside dans des plateformes telles que Penligent.aiqui associent la précision d'outils tels que Ghunt à la puissance de raisonnement de l'IA agentique, ce qui nous permet d'identifier et de fermer ces fenêtres d'exposition à la vitesse de la machine.

Références :

Partager l'article :
Articles connexes
fr_FRFrench