Maigret : Scanner OSINT Indestructible - Découvrez Tout

Ashley Innocent

Ashley Innocent

11 May 2026

Maigret : Scanner OSINT Indestructible - Découvrez Tout

Apidog pour les entreprises

Déploiement sur site

SSO & RBAC

Conforme SOC 2

Découvrir Apidog Enterprise

La plupart des outils OSINT vieillissent vite. Le web évolue constamment, les sites déplacent leurs points d'accès, les captchas changent, et l'outil meurt en deux ans. Maigret fait exception. Il fonctionne depuis des années, prend en charge plus de 3 000 sites, est livré avec un package Python, un bot Telegram et une interface utilisateur web, et son ingénierie est un petit chef-d'œuvre sur la façon de construire un scanner qui ne tombe pas en panne chaque fois qu'un site change.

Ce guide est destiné aux ingénieurs, et non aux recherches occasionnelles. Il explique ce que fait Maigret, les cas d'utilisation légitimes en matière de recherche et de sécurité qui le justifient, l'architecture qui lui permet de s'adapter à des milliers de sites, et comment les mêmes modèles de test que Maigret utilise (bases de données de signatures, détection de dérive, vérification récursive) se traduisent dans le travail de test d'API que vous effectuez quotidiennement avec Apidog.

bouton

Si vous ne l'avez pas encore lu, notre article sur le test d'API sans Postman en 2026 aborde des idées similaires de correspondance de modèles et de détection de dérive dans un domaine plus convivial.

TL;DR

bouton

Ce que Maigret est et n'est pas

Maigret est un outil Python, sous licence MIT, maintenu par soxoj. Le pitch du README : « collecter un dossier sur une personne par nom d'utilisateur à partir de plus de 3 000 sites ». Exécutez pip install maigret, donnez-lui un nom d'utilisateur, et il interroge les sites de sa base de données, gratte toutes les informations de profil public qui se trouvent derrière chaque compte trouvé, et produit un rapport.

image

Trois points à clarifier.

Il n'utilise que des données publiques. Pas de connexion, pas d'abus d'identifiants, pas de clés API. Si un site expose un profil aux visiteurs anonymes, Maigret le lit ; sinon, il renvoie « nom d'utilisateur introuvable » ou une page signalée.

Il est largement utilisé dans des contextes de recherche légitimes. Les journalistes des grands médias d'investigation, les bénévoles pour les personnes disparues, les équipes de lutte contre la fraude et de protection des marques, ainsi que les équipes rouges (red teams) autorisées l'utilisent quotidiennement. Le README de Maigret lui-même répertorie des références dans les programmes universitaires d'OSINT.

Il peut être mal utilisé. Comme tout outil OSINT, l'exécuter sur un individu privé sans son consentement franchit des lignes éthiques et, dans de nombreuses juridictions, légales. Les lois sur le harcèlement s'appliquent dans l'UE, aux États-Unis et dans la plupart des autres régions. Lisez vos règles locales avant de l'utiliser sur n'importe quelle personne.

Le reste de cet article se concentre sur l'ingénierie et sur les modèles de test transférables, et non sur le processus de ciblage humain.

La base de données des signatures de sites

La meilleure idée d'ingénierie de Maigret est la base de données de signatures de sites. Chaque entrée décrit un site avec suffisamment d'informations pour que le scanner puisse décider :

La base de données est au format JSON, versionnée dans le dépôt, et mise à jour automatiquement depuis GitHub une fois toutes les 24 heures lorsque l'outil s'exécute. Si les mainteneurs mettent à jour une signature pour un site qui a récemment changé, chaque installation de Maigret la récupère le lendemain sans réinstallation.

Ce modèle est exactement celui que vous souhaitez pour une suite de tests d'API. Votre projet compte 50, 500 ou 5 000 points d'accès. Chaque point d'accès a une signature : codes de statut attendus, formes de réponse, enveloppes d'erreur. Lorsqu'un fournisseur modifie la forme, vous voulez que la suite de tests échoue rapidement avec une différence utile. Nous avons abordé la même idée dans le développement d'API contract-first et dans le guide de test de serveur MCP.

Comment Maigret détecte « nom d'utilisateur trouvé » vs « non trouvé »

Un scanner naïf effectue une requête HTTP GET sur https://example.com/user/<username> et vérifie le code de statut. Cela fonctionne pour peut-être 10 % des sites réels. Les 90 % restants renvoient un 200 avec une page « utilisateur introuvable », ou un 200 avec une page d'accueil mise en cache, ou un 200 avec un défi captcha.

La base de données de Maigret décrit chaque site avec un ensemble plus riche de règles de détection :

Un verdict « trouvé » nécessite que toutes les presenseStrs soient présentes dans la réponse et aucune des absenceStrs. Un verdict « non trouvé » est l'inverse. Tout le reste est un résultat « inconnu » que l'utilisateur peut enquêter manuellement.

C'est le même type d'assertion multi-signal que vous souhaitez lors du test d'APIs complexes. Un statut 200 ne suffit pas ; vous devez également faire des assertions sur le contenu du corps. Apidog prend en charge les assertions de code de statut et de contenu de corps dans la même requête, ce qui est l'équivalent, pour les tests d'API, des presenseStrs plus absenceStrs de Maigret.

Recherche récursive et extraction d'informations

Une fois que Maigret trouve un compte, il fait deux choses de plus.

Il gratte la page de profil public pour des identifiants supplémentaires : adresses e-mail liées, numéros de téléphone, noms réels, autres noms d'utilisateur. Les règles d'extraction sont également basées sur des signatures, définies par site. Un profil LinkedIn donne des champs différents d'un profil GitHub.

Ensuite, il récurse. Les nouveaux identifiants alimentent la boucle de recherche, élargissant le dossier sur les comptes liés. Un nom d'utilisateur sur un site peut mener à un nom réel ; ce nom peut débloquer un compte différent sur un autre site ; ce compte peut être lié à un pseudonyme Instagram ; et ainsi de suite.

Pour l'OSINT, c'est la différence entre « J'ai trouvé un compte Twitter » et « J'ai tracé cette personne sur 12 services ». Pour une suite de tests d'API, le même modèle est précieux : lorsque vous découvrez un champ non documenté dans la réponse d'un point d'accès, suivez-le. Il indique souvent un point d'accès connexe, un système en aval ou un cas de test manquant.

Gestion des captchas et des limites de débit

Maigret contourne partiellement les captchas et détecte les limites de débit en lisant la forme de la réponse. Les stratégies de contournement incluent :

Le README est honnête sur le fait que c'est partiel. Si un site a une anti-automatisation agressive, Maigret enregistre « captcha détecté » et laisse l'utilisateur enquêter manuellement. L'outil n'essaie pas de vaincre les défenses hostiles ; il fonctionne avec les sites qui autorisent un accès anonyme de base.

Le modèle se transfère : lorsque vous créez un client API ou un exécuteur de tests, concevez-le pour détecter les réponses de limitation de débit et se retirer gracieusement, et non pour forcer le passage. La même posture défensive qui maintient Maigret du bon côté des termes du fournisseur empêche vos tests d'API de faire bannir l'IP de l'équipe.

Le problème de la dérive des signatures

Une base de données de 3 000 sites n'est utile que si elle reste à jour. Les sites redesignent leurs pages de profil, modifient les modèles d'URL, ajoutent des captchas, ou sont acquis et renommés. Une signature obsolète renvoie des faux négatifs (votre recherche ne trouve rien) ou des faux positifs (elle trouve des comptes qui n'existent pas).

Maigret résout ce problème avec trois niveaux :

Le troisième élément est celui que la plupart des équipes d'ingénierie négligent. Maigret conserve un nom d'utilisateur connu et existant pour chaque site (généralement un développeur ou un mainteneur qui a donné son consentement). Le harnais interroge ce nom d'utilisateur et confirme que la signature fonctionne toujours. Dérive détectée, signature signalée, contributeurs avertis.

C'est exactement le genre de suite de régression que vous voulez pour vos propres contrats d'API. Apidog prend en charge le même modèle : sauvegardez une bonne réponse connue par point d'accès, rejouez-la par rapport au point d'accès en direct selon un calendrier, comparez le résultat et alertez en cas de dérive. Notre guide API DeepSeek V4 couvre l'aspect manuel de cela pour un fournisseur spécifique.

Le mode résumé IA optionnel

Le drapeau --ai transforme les découvertes brutes de Maigret en un bref résumé d'enquête en utilisant un point d'accès LLM compatible OpenAI. Vous apportez la clé API ; Maigret structure l'invite et l'appel.

C'est un bon exemple d'utilisation correcte d'un LLM comme post-processeur. Le modèle ne décide jamais si un nom d'utilisateur correspond ; c'est basé sur des règles et déterministe. Le modèle ne fait que résumer, ce qu'il fait bien, et il opère sur une entrée contrainte. Les hallucinations sont limitées.

La même architecture fonctionne bien pour la surveillance d'API : assertions déterministes basées sur des règles dans Apidog, avec un post-processeur LLM qui transforme le rapport d'exécution en un résumé convivial pour Slack à la fin. Notre article utilisation de l'ordinateur vs APIs structurées explique pourquoi la couche structurée doit toujours être privilégiée.

Cas d'utilisation légitimes à connaître

Cinq contextes où l'exécution de Maigret est clairement appropriée.

Ce qui ne figure pas sur cette liste : rechercher un inconnu par curiosité, surveiller un ex-partenaire ou constituer un ensemble de données sur des personnes qui n'ont pas donné leur consentement. Ces utilisations franchissent les limites légales dans la plupart des juridictions et les limites éthiques partout.

Modèles de Maigret que vous pouvez appliquer aux tests d'API

Cinq idées d'ingénierie qui se traduisent directement.

image

Appliquez ces principes et votre suite de tests d'API gagnera la même longévité que Maigret. La plupart des suites de tests meurent parce qu'elles ont été écrites une fois, codées à la main et jamais mises à jour. L'architecture de Maigret est un modèle pour une qui survit.

Pièges courants lors de l'exécution de Maigret

Pour les ingénieurs qui expérimentent l'outil lui-même.

Cas d'utilisation réels

Une société de conseil en sécurité utilise Maigret comme première étape de chaque engagement de cadrage d'équipe rouge (red-team). Le résultat est inclus dans le rapport de démarrage afin que le client voie sa surface d'attaque publique avant le début de l'engagement.

Un enquêteur en fraude indépendant utilise Maigret avec le drapeau --ai pour résumer un scan de 3 000 sites en un bref de 200 mots pour des clients non techniques. La recherche déterministe est la donnée ; le LLM est la couche lisible.

Une équipe d'ingénierie utilise les mêmes idées architecturales (base de données de signatures, détection de dérive, relecture périodique) pour maintenir à jour sa suite de tests d'API interne sur 200 microservices. Ils l'ont construite dans Apidog ; les principes sont ceux de Maigret.

Conclusion

Maigret est un exemple concret de la façon de construire un outil qui s'adapte à des milliers de règles de détection sans se casser chaque fois que les surfaces sous-jacentes changent. L'ingénierie vaut la peine d'être étudiée même si vous ne menez jamais d'enquête OSINT : les bases de données de signatures, les assertions multi-signaux, les données à mise à jour automatique, la détection de dérive et le post-traitement LLM sont tous transférables au travail de test d'API que vous effectuez quotidiennement.

Cinq points clés :

Étape suivante : lisez le format de la base de données de sites Maigret, puis ouvrez Apidog et concevez un point d'accès dans votre projet de la même manière : basé sur les signatures, multi-signal, avec une fixture enregistrée pour la détection de dérive. Cette discipline porte ses fruits la première fois qu'un fournisseur renomme un champ à 2 heures du matin et que votre suite le détecte avant les utilisateurs.

bouton

FAQ

Est-ce que Maigret est légal à utiliser ?

Cela dépend de la juridiction et de la cible. L'utiliser sur soi-même, sur des comptes que vous possédez, sur une entreprise pour laquelle vous avez une autorisation écrite de tester, ou dans le cadre d'un journalisme autorisé est généralement acceptable. L'utiliser sur un individu non averti peut enfreindre les lois sur le harcèlement et le harcèlement criminel dans l'UE, aux États-Unis, au Royaume-Uni et dans la plupart des autres régions. Lisez vos règles locales avant toute utilisation ciblant un tiers.

Maigret fonctionne-t-il sans Python ?

Le package officiel est Python 3.10+. L'auteur maintient un bot Telegram pour les recherches occasionnelles et une configuration Cloud Shell pour les utilisateurs qui ne veulent pas d'installation locale.

Quelle est la précision de l'affirmation des 3 000 sites ?

La base de données de sites dans le dépôt répertorie plus de 3 000 entrées ; toutes ne sont pas actives à un moment donné. La mise à jour automatique maintient à jour un sous-ensemble fonctionnel. Le filtrage par balises vous aide à vous concentrer sur les sites susceptibles d'être importants pour votre périmètre.

Qu'apporte le mode IA ?

Le drapeau --ai utilise un LLM compatible OpenAI pour résumer les résultats déterministes dans un rapport lisible. Il ne modifie pas la recherche elle-même ; il ne fait que post-traiter. Apportez votre propre clé API.

Puis-je utiliser Maigret en CI ?

Pour les enquêtes OSINT, non ; c'est un travail interactif. Les modèles architecturaux utilisés par Maigret (bases de données de signatures, détection de dérive, relecture planifiée) sont exactement ce qui doit figurer dans votre pipeline CI pour les tests d'API. Apidog les implémente nativement.

En quoi cela diffère-t-il de Sherlock ?

Sherlock est l'ancêtre plus ancien et plus simple. Maigret l'étend avec l'extraction d'informations, la recherche récursive, la gestion des captchas, le mode résumé IA et une base de données de sites plus riche. Les deux sont sous licence MIT et méritent d'être connus.

Où puis-je signaler une signature obsolète ?

Le README renvoie aux problèmes GitHub et aux demandes de tirage (pull requests) sur le dépôt Maigret. Les contributions de la communauté maintiennent la base de données à jour ; une PR par site obsolète est la norme.

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API