Mit Maltego / Sudo Null einen Fischer finden IT News

Das Sicherheitsteam von REG.RU trifft bei seiner Arbeit häufig auf Betrüger, Spammer, Phishing-Domains, Account-Hacking, Versuche, Domains zu kapern usw. Am Beispiel der Suche nach dem Ersteller von Phishing-Sites werde ich Ihnen sagen, wie wir solche Übertreter erkennen Maltego.

Ich bemerke vorab:

  • Nur Strafverfolgungsbehörden können die Tatsache des Betrugs feststellen und Strafen verhängen. Wir führen aber auch eigene Ermittlungen auf Basis der uns vorliegenden Daten durch, um im Falle eines offensichtlichen Verstoßes eigenständig rechtliche Schritte einzuleiten;

  • Der Artikel ist keine Werbung, alle Beispiele, Fälle, Namen (sowohl Eigen- als auch Domänennamen) sind frei erfunden, alle Übereinstimmungen sind zufällig.

Ein bisschen über Maltego

Maltego ist ein Programm, um Informationen aus verschiedenen Quellen zu sammeln und sie dann auf bequeme Weise zu präsentieren. Es wird aktiv bei Ermittlungen und Informationen auf der Grundlage offener und geschlossener Quellen eingesetzt.

Informationen im Programm werden in Form einer Grafik visualisiert:

Der Graph besteht aus Objekten (Entitäten) und Verbindungen zwischen ihnen (Links). Jede Informationseinheit kann als Objekt fungieren: Domänenname, IP-Adresse, Organisation, Kundendaten (vollständiger Name und Telefonnummer) usw.

Sie können Objekte und Verbindungen manuell oder automatisch mithilfe von Transformationen (Transforms) hinzufügen – Skripten, die Daten zu vorhandenen Objekten in verschiedenen Quellen finden und diese Daten bereits in Form neuer Objekte zum Diagramm hinzufügen. Es gibt eine Reihe vorgefertigter Transformationen für verschiedene Aufgaben. Wenn Sie beispielsweise Informationen zu einer IP-Adresse benötigen, können Sie mithilfe der integrierten Transformationen Daten aus Whois, Standort, Adressreputation (Fraud-Check) ermitteln und mit Tor’a-Knoten vergleichen.

Sie können den Transformationssatz im Transforms Hub, einem integrierten Marktplatz, erweitern.

Für einige Transformationen benötigen Sie möglicherweise den API-Schlüssel des Dienstes, von dem Sie Daten abrufen möchten.

Um mit Daten aus internen Quellen zu arbeiten, können Sie Ihre eigenen Transformationen erstellen.

Maltego wird in zwei Versionen vertrieben – kostenlos und kostenpflichtig. Kostenlose Versionen sind CaseFile und Community Edition. Die kommerzielle Variante heißt Maltego One und hat drei Pläne: Pro, Enterprise und Enterprise On-Premise. Aktuelle Editionen und deren Features stehen zur Verfügung auf der offiziellen Seite.

Fall mit Phishing-Seiten

Und nun betrachten wir eine fiktive, aber durchaus typische Untersuchung.

Aufgabe: Finden Sie den Ersteller von Phishing-Sites sowie alle seine Domains und Konten. Bevor Sie die Konten eines Betrügers sperren und ein Verfahren zur Identifizierung von Administratordaten in seinen Domänen einleiten, müssen Sie sicherstellen, dass es sich bei den Domänen um Phishing handelt.

Was wir haben: Um ein neues Konto bei REG.RU zu registrieren, müssen Sie Ihre E-Mail-Adresse und Telefonnummer angeben. Und um eine Domain zu registrieren, auch ein vollständiger Name mit Passdaten (abhängig von der Domainzone). In den Protokollen finden Sie IP-Adressen, Cookies, User-Agent und andere Parameter des Systems des Angreifers. Aus all diesen Daten lässt sich ein digitaler Fingerabdruck des mutmaßlichen Eindringlings erstellen. Je mehr Daten eingegeben werden, desto größer ist die Chance, Beziehungen zu finden.

Die manuelle Handhabung und Zusammenstellung großer Datenmengen aus verschiedenen Quellen ist zeitaufwändig und langweilig. Daher werde ich Maltego verwenden. Mit seiner Hilfe können Sie, nachdem Sie Ihre eigenen Skripte geschrieben haben, Protokolle und Datenbanken lesen und das Ergebnis dann in Form eines Diagramms mit Objekten und Beziehungen zwischen ihnen anzeigen.

Zuerst müssen Sie ein neues Diagramm erstellen und die Domäne MOB-VTB24.RU darauf platzieren. Die Symbolleiste (Elementpalette) enthält Objekte verschiedener Typen, die in den Arbeitsbereich verschoben werden können. Ich ziehe das Objekt „Domain“ aus dem Bedienfeld in das Diagramm und gebe den gewünschten Domainnamen an.

Weitere Objekte können aus der Zwischenablage mit automatischer Typerkennung hinzugefügt werden. Wenn es falsch erkannt wird, können Sie es manuell über das Menü “Typ ändern” korrigieren.

Hinzufügen neuer Objekttypen

Jetzt können Sie Informationen über den Inhaber der bei der Registrierung angegebenen Domain erhalten:

Wir müssen einen neuen Objekttyp erstellen – „Benutzer“, und Transformationen schreiben, um in unserer Datenbank nach einer Domäne zu suchen (im Artikel werden alle Abfragen an die Datenbank vereinfacht).

Auf der Registerkarte „Entitäten“ erstelle ich ein „Benutzer“-Objekt und lege die Haupteigenschaft dafür fest – „user_id“.

Das Objekt wurde erstellt. Es ist an der Zeit, eine Transformation zu schreiben, die Domänen- und Kontodaten in Form von Objekten und Links in einem Diagramm anzeigt.

Transformationen erstellen

Um Transformationen zu schreiben, habe ich die Bibliothek verwendet maltego_trx für Python 3.6 und höher. Befehl zum Installieren:

pip installiere maltego-trx

Befehl zum Erstellen eines neuen Projekts:

maltego-trx starte neues_projekt

Transformationsdateien werden gespeichert in neues_projekt/transformiert/.

Lassen Sie uns nun eine neue Klasse erstellen und diese von „DiscoverableTransform“ erben. Ich überschreibe die Methode “create_entities”, in der sich die gesamte Logik zum Suchen von Daten und zum Hinzufügen von Objekten zum Diagramm befindet. Die Methode „response.addEntity“ ist für das Platzieren von Objekten auf dem Diagramm verantwortlich.

from maltego_trx.transform import DiscoverableTransform import MySQLdb # Erben Sie unsere Klasse von DiscoverableTransform class SearchDomain(DiscoverableTransform): “”” Führt eine Domänensuche durch. “”” # Überschreiben Sie create_entities @classmethod def create_entities(cls, request, response): # Erhalten Sie die eingehenden value email = request.Value # Datenbankverbindung initialisieren db = MySQLdb.connect(host=”database.host”, port=”3306″, user=”user”, passwd=’password’, db=’db’, charset= “utf8”) cursor = db.cursor(MySQLdb.cursors.DictCursor) # Suche in der Domänentabelle cursor.execute(“””wähle user_id, name, phone, email from domain where domain = %s “””, [domain]) rows = cursor.fetchall() # Fügen Sie je nach Feld Objekte der entsprechenden Typen zum Diagramm hinzu # für zeilenweise: response.addEntity(‘yourorganization.User’, row[‘user_id’]) response.addEntity(‘maltego.Person’, Zeile[‘name’]) response.addEntity(‘maltego.PhoneNumber’, Zeile[‘phone’]) response.addEntity(‘maltego.EmailAddress’, Zeile[’email’])

Beim Hinzufügen eines Objekts müssen Sie den “Unique Type Name” verwenden, der beim Erstellen des Objekts “User” angegeben wurde. In meinem Fall ist es “yourorganization.User”. Klassen für eingebaute Objekte können aus der Bibliothek importiert werden.

aus maltego_trx.entities import Person … response.addEntity(Person, row[‘name’])

Wenn viele Objekte vorhanden sind, können Sie Felder und Objekte zuordnen.

field_map = { ‘user_id’: ‘yourorganization.User’, ‘name’: ‘maltego.Person’, ‘phone’: ‘maltego.PhoneNumber’, ’email’: ‘maltego.EmailAddress’ } for row in rows: for field in Zeile: if field_map.get(field): response.addEntity(field_map[field]die Zeile[field])

Transformationen hinzufügen

Die fertige Transformation muss Maltego hinzugefügt werden. Wählen Sie dazu auf der Registerkarte „Transformationen“ „Neue lokale Transformation“ und füllen Sie die Felder aus. Im Feld „Input Entity Type“ wähle ich den Objekttyp aus, mit dem die Transformation funktioniert:

Ich gebe den Pfad zum Python3-Interpreter an:

Wo:

  • project.py ist das Hauptskript;

  • local – gibt an, dass die Transformation lokal funktioniert;

  • Suchdomäne ist der Transformationsname, der dem Klassennamen entspricht.

Um zu überprüfen, ob die Klasse korrekt erstellt wurde, können Sie mit dem Befehl alle Transformationen des Projekts auflisten python3 project.py-Liste.

Transformationen starten

Jetzt können wir mit der Transformation beginnen:

Als Ergebnis der Arbeit an der Grafik erschienen Objekte:

Protokolle der Transformationsarbeit werden in Output geschrieben. Dort können Sie sich auch Debugging-Informationen anzeigen lassen, um nach Fehlern im Skript zu suchen. Dazu müssen Sie in den Transformationseinstellungen „Show debug info“ aktivieren.

Über die Schnittstelle oder den Code können Sie Objekte im Diagramm markieren und Kommentare hinzufügen:

aus maltego_trx.maltego import BOOKMARK_CLRS … … me = response.addEntity( ‘yourorganization.User’, user_id ) me.setBookmark(BOOKMARK_CLRS[“red”]) #Hinzufügen einer Notiz me.setNote(“Registriert Phishing-Domains”) #Hinzufügen eines Kontrollkästchens

Inzwischen wurde der Verdächtige bereits ermittelt. Auf dem Diagramm gibt es seinen vollen Namen, Post und Telefon. Basierend auf diesen Daten können Sie eine Rückwärtssuche durchführen.

Rückwärtssuche

Rückwärtssuche erfordert neue Transformationen. Ich füge sie analog zu „SearchDomain“ hinzu und starte die Suche. Das Ergebnis sind neue Domains und ein Konto.

Die gefundenen Domainnamen sehen verdächtig aus, da sie mit Banken und Diensten von BlaBlaCar und Drom in Verbindung gebracht werden.

Nach einer zweiten Suche nur nach Nummer bekomme ich weitere 88 Domains:

Ich lade Informationen zu neuen Konten hoch und bekomme neue Postfächer und Telefone. Um die IP-Adressen zu finden, von denen die Konten angemeldet wurden, verwende ich Autorisierungsprotokolle bei der Suche.

Wiederholte Suchen mit neuen Objekten führten zu folgendem Netzwerk:

Um eine vollständige Liste der Domänen zu erhalten, werde ich ein großes und unverständliches Diagramm vereinfachen, indem ich die Daten nach Typ sortiere. Die resultierende Liste kann bereits im gewünschten Format exportiert werden.

Es bleibt, unnötige Objekte aus dem Diagramm zu entfernen und die endgültige Liste der Domänen und Konten hochzuladen. Damit können Sie bereits an der Sperrung von Accounts und Domains arbeiten.

Dies ist eine der möglichen Optionen für die Zusammenarbeit mit Maltego bei der Untersuchung und Analyse einer großen Menge an Informationen. In Zukunft können weitere Quellen hinzugefügt und Skripte verbessert werden, um potenzielle Opfer vor Betrug zu schützen.

Fazit

Maltego vereinfacht Ermittlungen durch Suchautomatisierung und übersichtliche Datenvisualisierung. Das Tool eignet sich sowohl für interne Ermittlungen als auch für die Suche nach Informationen in offenen Quellen (OSINT – Open Source Intelligence). Offensichtlich habe ich in dem Artikel nicht alle seine Möglichkeiten behandelt: Es gibt praktische Funktionen zum Analysieren von Informationen in einem Diagramm, es gibt Datenexportoptionen und die Suche kann verbessert werden, indem Skripte zu „Maschinen“ kombiniert werden. Lassen Sie mich wissen, wenn Sie daran interessiert sind, mehr über etwas zu erfahren.

Ich empfehle auch eine Artikelserie über Maltego von @Wolchara000.

Zyklus Artikel

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *