Die meisten OSINT-Tools veralten schnell: Websites ändern Endpunkte, Captchas werden strenger, HTML-Strukturen brechen, und nach zwei Jahren ist das Tool oft unbrauchbar. Maigret ist eine interessante Ausnahme. Es wird seit Jahren gepflegt, unterstützt über 3.000 Websites, bietet ein Python-Paket, einen Telegram-Bot und eine Weboberfläche — und zeigt technisch sehr gut, wie man Scanner baut, die nicht bei jeder Website-Änderung zerfallen.
Probieren Sie Apidog noch heute aus
Dieser Leitfaden richtet sich an Entwickler und Security-Teams. Er erklärt, was Maigret tut, wo legitime Einsatzbereiche liegen, wie die Architektur funktioniert und welche Muster Sie direkt auf API-Tests mit Apidog übertragen können: Signaturdatenbanken, Multi-Signal-Assertions, Drift-Erkennung und deterministische Verifikation.
Falls Sie es noch nicht gelesen haben: Unser Beitrag API-Tests ohne Postman im Jahr 2026 behandelt ähnliche Ideen zur Mustererkennung und Drift-Erkennung in einem API-Kontext.
TL;DR
- Maigret erstellt anhand eines Benutzernamens ein öffentliches Dossier, indem es über 3.000 Websites auf Profile prüft.
- Die Architektur basiert auf einer versionierten Site-Signaturdatenbank, rekursiver Suche, Drift-Erkennung und optionaler KI-Zusammenfassung.
- Legitime Einsatzfälle sind u. a. eigene Kontowiederherstellung, Markenschutz, autorisierte Red-Team-Einsätze, Journalismus und Suche nach vermissten Personen mit Zustimmung.
- Die Nutzung gegen Privatpersonen ohne Zustimmung kann Belästigung oder Stalking darstellen und rechtlich problematisch sein.
- Die technischen Muster lassen sich direkt auf API-Tests übertragen: definierte Signaturen, mehrere Prüfsignale, gespeicherte Fixtures und geplante Replays.
- Mit Apidog können Sie ähnliche Assertions und Drift-Prüfungen für APIs modellieren.
Was Maigret ist und was nicht
Maigret ist ein MIT-lizenziertes Python-Tool, gepflegt von soxoj. Der README-Slogan lautet sinngemäß: „Sammeln Sie ein Dossier über eine Person anhand eines Benutzernamens von über 3.000 Websites.“
Installation:
pip install maigret
Ein einfacher Lauf:
maigret username
Mit vollständiger Site-Datenbank:
maigret username -a
Wichtig sind drei Grenzen:
Maigret nutzt öffentliche Daten.
Kein Login, keine gestohlenen Zugangsdaten, keine privaten API-Schlüssel. Wenn ein Profil anonym öffentlich erreichbar ist, kann Maigret es prüfen.Maigret hat legitime Einsatzbereiche.
Dazu gehören OSINT-Recherche, Markenschutz, autorisierte Security-Tests, Kontowiederherstellung und Ermittlungen unter rechtlicher oder redaktioneller Aufsicht.Maigret kann missbraucht werden.
Die Anwendung gegen Privatpersonen ohne Zustimmung kann ethische und rechtliche Grenzen überschreiten. Prüfen Sie lokale Gesetze, bevor Sie OSINT-Tools auf Dritte anwenden.
Der Rest dieses Artikels konzentriert sich auf die technische Architektur und übertragbare Testmuster — nicht auf Workflows zur Personenidentifizierung.
Die Site-Signaturdatenbank
Der Kern von Maigret ist die Site-Signaturdatenbank. Jeder Eintrag beschreibt, wie eine Website geprüft wird:
- Welche URL wird abgefragt?
- Wie sieht eine gefundene Profilseite aus?
- Wie sieht eine „nicht gefunden“-Seite aus?
- Welche Felder lassen sich extrahieren?
- Gibt es Rate Limits, Captchas oder besondere Header?
Vereinfacht sieht das Prinzip so aus:
{
"name": "Example",
"urlMain": "https://example.com",
"url": "https://example.com/{username}",
"presenceStrs": ["Profile", "@{username}"],
"absenceStrs": ["User not found"],
"headers": {
"User-Agent": "Mozilla/5.0"
},
"tags": ["social", "global"]
}
Die Datenbank liegt als JSON im Repository, ist versioniert und kann automatisch aktualisiert werden. Dadurch muss nicht jede Maigret-Installation neu veröffentlicht werden, wenn sich eine einzelne Website ändert.
Das ist auch für API-Tests relevant. Ein API-Projekt mit 50, 500 oder 5.000 Endpunkten braucht ebenfalls Signaturen:
- erwarteter Statuscode
- erwartete Felder
- erwartete Header
- erlaubte Fehlermodelle
- Schema- und Contract-Regeln
Genau dieses Denken steckt auch in Contract-First-API-Entwicklung und im MCP-Server-Test-Playbook.
Wie Maigret „gefunden“ und „nicht gefunden“ erkennt
Ein naiver Scanner würde einfach prüfen:
GET https://example.com/user/<username>
Dann würde er den Statuscode auswerten:
200 = gefunden
404 = nicht gefunden
Das funktioniert in der Praxis nur selten. Viele Websites liefern auch bei fehlenden Benutzern 200 OK, zeigen aber eine „User not found“-Seite. Andere liefern eine Homepage, eine Suchseite oder eine Captcha-Seite.
Maigret nutzt deshalb mehrere Signale:
- URL-Template
- Presence-Strings
- Absence-Strings
- optionale Regex-Regeln
- optionale Header
- site-spezifische Tags
Ein Treffer gilt nur dann als belastbar, wenn die erwarteten Presence-Strings vorhanden sind und keine Absence-Strings gefunden werden.
Das gleiche Muster sollten Sie für API-Tests verwenden. Ein 200 OK reicht nicht.
Beispiel für eine robustere API-Assertion:
Statuscode: 200
Header: Content-Type enthält application/json
Body: $.id existiert
Body: $.status == "active"
Body: $.error existiert nicht
Mit Apidog können Sie Statuscode-, Header- und Body-Assertions in derselben Anfrage definieren. Das entspricht dem API-Test-Äquivalent von Maigrets Presence- und Absence-Regeln.
Rekursive Suche und Informationsgewinnung
Wenn Maigret ein Profil findet, endet der Prozess nicht automatisch. Das Tool kann weitere öffentliche Identifikatoren extrahieren:
- andere Benutzernamen
- angezeigte Namen
- öffentliche E-Mail-Adressen
- Telefonnummern, falls öffentlich sichtbar
- verlinkte Profile
- weitere Handles
Diese Extraktionsregeln sind ebenfalls site-spezifisch. Ein GitHub-Profil hat andere Felder als ein LinkedIn-, Reddit- oder Instagram-Profil.
Danach kann Maigret rekursiv weiterarbeiten: Neue Identifikatoren werden wieder in den Suchprozess eingespeist.
Für OSINT ist das der Unterschied zwischen:
Ein Profil wurde gefunden.
und:
Mehrere verknüpfte öffentliche Profile wurden über gemeinsame Identifier korreliert.
Für API-Tests gibt es ein ähnliches Muster. Wenn ein Endpunkt ein Feld zurückgibt, das auf ein anderes Objekt verweist, sollten Tests diesem Feld folgen.
Beispiel:
{
"userId": "u_123",
"organizationId": "org_456",
"billingProfileId": "bp_789"
}
Daraus entstehen Folgeprüfungen:
GET /users/u_123
GET /organizations/org_456
GET /billing-profiles/bp_789
So finden Sie fehlende Verträge, inkonsistente Datenmodelle und nicht dokumentierte Abhängigkeiten.
Captcha- und Rate-Limit-Handling
Maigret versucht nicht, aggressive Schutzmechanismen zu „brechen“. Es erkennt Rate Limits und Captchas und reagiert defensiv.
Typische Strategien sind:
- angepasste User Agents
- Beachtung site-spezifischer Retry-Header
- Fallback auf mobile oder vereinfachte Domains
- optionales Routing über Tor oder I2P, wenn die Website dies erlaubt
- Markierung als „Captcha erkannt“, wenn keine sichere automatische Prüfung möglich ist
Das ist wichtig: Maigret ist kein Tool zum Überwinden feindlicher Abwehrmaßnahmen. Es arbeitet mit öffentlich erreichbaren Oberflächen und markiert unklare Ergebnisse.
Für API-Test-Runner gilt dasselbe Prinzip. Wenn Ihre Tests auf ein Rate Limit treffen, sollten sie nicht aggressiv weiterfeuern.
Robustes Verhalten:
HTTP 429 erkannt
Retry-After auslesen
Testlauf pausieren oder abbrechen
Ergebnis als Rate-Limit-Ereignis melden
Schlechtes Verhalten:
429 ignorieren
Requests weiter senden
IP sperren lassen
falsche Fehlermeldungen erzeugen
Das Problem der Signaturdrift
Eine Datenbank mit über 3.000 Websites ist nur nützlich, wenn sie aktuell bleibt. Websites ändern:
- URL-Strukturen
- HTML-Klassen
- Fehlermeldungen
- Captcha-Verhalten
- Profilfelder
- Weiterleitungen
- Marken- oder Domainnamen
Eine alte Signatur erzeugt zwei Probleme:
- False Negative: Ein existierendes Profil wird nicht gefunden.
- False Positive: Ein nicht existierendes Profil wird fälschlich als Treffer erkannt.
Maigret begegnet diesem Problem mit mehreren Schichten:
- automatisches Update aus dem zentralen GitHub-Repository
- Community-Pull-Requests für einzelne Signaturen
-
--update-Flag für manuelle Aktualisierung - Test-Harness gegen bekannte existierende Benutzernamen
Beispiel:
maigret --update
maigret username -a
Der entscheidende Punkt ist das Test-Harness. Für viele Sites kann ein bekannter, existierender Benutzername verwendet werden, um zu prüfen, ob die Signatur noch funktioniert. Wenn ein bekannter Account nicht mehr erkannt wird, ist wahrscheinlich die Signatur kaputt.
Das ist exakt das Muster, das API-Teams brauchen:
- Speichern Sie pro Endpunkt ein bekannt gutes Fixture.
- Wiederholen Sie Requests regelmäßig gegen eine Test- oder Staging-Umgebung.
- Vergleichen Sie Statuscode, Header und Body.
- Melden Sie Drift, bevor produktive Clients brechen.
Mit Apidog können Sie solche bekannten Antworten und Assertions als Teil Ihrer API-Tests pflegen. Der DeepSeek V4 API-Leitfaden zeigt die manuelle Seite solcher Anbieterprüfungen.
Der optionale KI-Zusammenfassungsmodus
Maigrets --ai-Flag nutzt einen OpenAI-kompatiblen LLM-Endpunkt, um Rohergebnisse in eine kurze Zusammenfassung zu verwandeln. Der Nutzer stellt den API-Schlüssel bereit; Maigret übernimmt Prompt-Struktur und Aufruf.
Wichtig: Das Modell entscheidet nicht, ob ein Benutzername gefunden wurde. Diese Entscheidung bleibt regelbasiert und deterministisch. Das LLM fasst nur zusammen.
Das ist eine gute Architektur:
Deterministische Regeln → strukturierte Ergebnisse → LLM-Zusammenfassung
Nicht:
LLM entscheidet, ob der Test bestanden wurde
Dasselbe Muster funktioniert für API-Monitoring:
- Assertions entscheiden über Pass/Fail.
- Testergebnisse werden strukturiert gespeichert.
- Ein LLM fasst den Laufbericht für Slack, E-Mail oder Tickets zusammen.
Warum die strukturierte Ebene zuerst kommen sollte, erklären wir auch in Computernutzung vs. strukturierte APIs.
Legitime Anwendungsfälle
Es gibt klare Kontexte, in denen Maigret sinnvoll und angemessen eingesetzt werden kann.
1. Eigene Kontowiederherstellung
Sie können alte Konten suchen, die mit einem früheren Benutzernamen verknüpft sind. Das ist hilfreich für:
- Datenschutzprüfungen
- Löschen alter Profile
- Reduzierung des digitalen Fußabdrucks
- Account-Inventarisierung
2. Markenschutz
Unternehmen können nach Marken-, Produkt- oder Projektnamen suchen, um Nachahmerprofile zu erkennen.
Beispiele:
maigret yourbrand -a
maigret yourproduct --tags social
3. Suche nach vermissten Personen
Such- und Rettungsorganisationen oder spezialisierte Gruppen können Maigret mit Zustimmung der Familie und in Abstimmung mit Behörden einsetzen.
Wichtig: Eigenständige, unkoordinierte Ermittlungen können offizielle Untersuchungen stören.
4. Autorisierte Red-Team-Einsätze
Pentest- und Red-Team-Teams nutzen OSINT-Tools, um die öffentliche Angriffsfläche einer Organisation zu kartieren. Entscheidend ist ein schriftlicher Auftrag mit definiertem Scope.
Beispiel-Scope:
Ziel: example-corp.com
Erlaubt: öffentliche Profile, Markenhandles, Unternehmensaccounts
Nicht erlaubt: Privatpersonen außerhalb des Scopes
5. Investigativer Journalismus
Reporter können OSINT-Tools im Rahmen redaktioneller und rechtlicher Prüfung einsetzen, etwa bei Betrug, organisierter Kriminalität oder öffentlichem Fehlverhalten.
Nicht legitim sind neugierige Abfragen über Fremde, Überwachung von Ex-Partnern oder das Erstellen von Profilen über Personen ohne Zustimmung.
Muster von Maigret für API-Tests
Die spannendsten Teile von Maigret sind nicht OSINT-spezifisch. Sie sind allgemeine Engineering-Muster.
1. Signaturdatenbanken statt handgeschriebener Prüfungen
Definieren Sie erwartetes Verhalten als Daten, nicht nur als Code.
Beispiel:
{
"endpoint": "GET /users/{id}",
"expectedStatus": 200,
"requiredFields": ["id", "email", "status"],
"forbiddenFields": ["password", "internalToken"]
}
Das ist leichter zu versionieren, zu reviewen und zu erweitern.
2. Multi-Signal-Assertions
Prüfen Sie nicht nur den Statuscode.
Besser:
Statuscode == 200
Content-Type enthält application/json
$.id existiert
$.email ist String
$.password existiert nicht
3. Automatisch aktualisierte Signaturen
Wenn Ihre API-Contracts zentral verwaltet werden, sollten Tests regelmäßig die aktuelle Version nutzen. Apidog-Projekte unterstützen Cloud-Synchronisierung; nutzen Sie sie, wenn Teams parallel an Endpunkten arbeiten.
Der Workflow wird in API-Tests ohne Postman ausführlicher beschrieben.
4. Drift-Erkennung
Planen Sie Wiederholungen gegen bekannte Fixtures.
Beispiel-Checkliste:
[ ] Request gegen bekannten Datensatz ausführen
[ ] Statuscode vergleichen
[ ] Header vergleichen
[ ] JSON-Schema vergleichen
[ ] kritische Felder vergleichen
[ ] Diff im Fehlerfall speichern
5. LLM als Postprozessor, nicht als Richter
Lassen Sie deterministische Tests entscheiden. Verwenden Sie LLMs nur für Zusammenfassungen:
10 Tests fehlgeschlagen
3 Endpunkte mit Schema-Drift
1 Endpunkt liefert unerwartet 500
Zusammenfassung für Incident-Kanal generieren
So bleibt die Testentscheidung nachvollziehbar.
Häufige Fallstricke bei Maigret
Wenn Sie Maigret technisch evaluieren, vermeiden Sie diese Fehler.
Ohne -a ausführen und Vollständigkeit erwarten
Standardmäßig scannt Maigret nicht zwingend alle Sites. Für vollständige Läufe:
maigret username -a
Der Lauf dauert entsprechend länger.
Tags ignorieren
Mit Tags können Sie den Suchraum eingrenzen:
maigret username --tags social
maigret username --tags jp
maigret username --tags ru
Das ist nützlich, wenn bestimmte Regionen oder Plattformtypen relevant sind.
Updates überspringen
Alte Signaturen erzeugen schlechte Ergebnisse.
maigret --update
Führen Sie Updates vor ernsthaften Untersuchungen aus.
Tor-Ergebnisse falsch interpretieren
Einige Websites blockieren Tor-Exit-Knoten. Das ist kein Signal über den Benutzer, sondern über die Zugriffsumgebung.
Extrahierte Felder ungeprüft übernehmen
Maigret extrahiert, was öffentlich sichtbar ist. Profile können falsch, satirisch, gekapert oder absichtlich irreführend sein. Behandeln Sie Ergebnisse als Hinweise, nicht als Beweise.
Praktische Anwendungsszenarien
Red-Team-Scoping
Eine Sicherheitsberatung kann Maigret als ersten Schritt in einem autorisierten Red-Team-Engagement verwenden. Das Ergebnis fließt in den Kickoff-Bericht ein und zeigt dem Kunden, welche öffentlichen Profile, Handles oder Markenvarianten sichtbar sind.
Betrugsermittlung
Ein Ermittler kann einen vollständigen Scan ausführen und den optionalen KI-Modus nutzen, um aus vielen Treffern eine kurze, lesbare Zusammenfassung für nicht-technische Stakeholder zu erstellen.
maigret username -a --ai
Die Suche bleibt deterministisch; das LLM erzeugt nur die Zusammenfassung.
API-Testarchitektur
Ein Engineering-Team kann dieselben Prinzipien auf interne APIs anwenden:
- Signaturen pro Endpunkt
- gespeicherte Fixtures
- geplante Wiederholungen
- Drift-Erkennung
- lesbare Reports
Diese Patterns lassen sich in Apidog für API-Projekte modellieren.
Fazit
Maigret ist ein gutes Beispiel dafür, wie man ein langlebiges, signaturbasiertes Erkennungssystem baut. Auch wenn Sie nie OSINT-Recherchen durchführen, lohnt sich die technische Analyse.
Die wichtigsten Learnings:
- Maigret nutzt eine versionierte, aktualisierbare Signaturdatenbank für über 3.000 Websites.
- Multi-Signal-Erkennung ist zuverlässiger als reine Statuscode-Prüfung.
- Drift ist der Hauptfeind langlebiger Scanner und Testsuites.
- Bekannte Fixtures helfen, kaputte Signaturen früh zu erkennen.
- LLMs eignen sich gut für Zusammenfassungen, nicht für deterministische Entscheidungen.
- Dieselben Muster funktionieren für API-Tests mit Apidog.
Nächster praktischer Schritt: Lesen Sie das Maigret-Site-Datenbankformat, öffnen Sie dann Apidog und modellieren Sie einen Endpunkt nach demselben Prinzip: signaturgesteuert, mit Multi-Signal-Assertions und einem bekannten Fixture zur Drift-Erkennung.
FAQ
Ist die Verwendung von Maigret legal?
Das hängt von Gerichtsbarkeit, Ziel und Kontext ab. Die Anwendung auf eigene Konten, eigene Marken, autorisierte Unternehmensziele oder journalistische Arbeit unter rechtlicher Prüfung ist in der Regel unproblematischer. Die Anwendung gegen ahnungslose Privatpersonen kann Stalking- oder Belästigungsgesetze verletzen.
Funktioniert Maigret ohne Python?
Das offizielle Paket benötigt Python 3.10+. Zusätzlich gibt es einen Telegram-Bot und Cloud-Shell-Optionen für gelegentliche Nutzung ohne lokale Installation.
Wie genau ist die Angabe „über 3.000 Websites“?
Die Site-Datenbank enthält über 3.000 Einträge. Nicht alle sind jederzeit aktiv oder erreichbar. Updates, Community-Beiträge und Tags helfen, eine funktionierende und relevante Teilmenge zu nutzen.
Was macht der KI-Modus?
Das --ai-Flag verwendet einen OpenAI-kompatiblen LLM-Endpunkt, um deterministische Ergebnisse in einem lesbaren Bericht zusammenzufassen. Es verändert nicht die eigentliche Suche.
Kann ich Maigret in CI verwenden?
Für OSINT-Untersuchungen ist Maigret eher ein interaktives Werkzeug. Die Architektur dahinter — Signaturen, Fixtures, geplantes Replay und Drift-Erkennung — gehört dagegen direkt in CI-Pipelines für API-Tests. Apidog eignet sich dafür als API-Test- und Contract-Workflow.
Worin unterscheidet sich Maigret von Sherlock?
Sherlock ist der ältere und einfachere Vorgänger. Maigret erweitert den Ansatz um Informationsgewinnung, rekursive Suche, Captcha-Handling, KI-Zusammenfassungen und eine umfangreichere Site-Datenbank. Beide Projekte sind MIT-lizenziert.
Wo melde ich eine veraltete Signatur?
Im Maigret-Repository über GitHub-Issues oder Pull Requests. Üblich ist ein fokussierter PR pro veralteter oder korrigierter Website-Signatur.


Top comments (0)