
Untersuchen Sie bösartige Windows-Anmeldungen durch Visualisierung und Analyse des Windows-Ereignisprotokolls.
LogonTracer v2 ist ein Tool zur Untersuchung bösartiger Anmeldungen durch Visualisierung und Analyse von Windows Active Directory-Ereignisprotokollen. Dieses Tool verknüpft einen Hostnamen (oder eine IP-Adresse) und einen Kontonamen, die in anmeldebezogenen Ereignissen gefunden werden, und zeigt sie als Graph an. Auf diese Weise ist es möglich zu sehen, in welchem Konto ein Anmeldeversuch stattfindet und welcher Host verwendet wird.
Dieses Tool kann die folgenden Ereignis-IDs visualisieren, die mit Windows-Anmeldungen zusammenhängen.
| Ereignis-ID | Beschreibung |
|---|---|
| 4624 | Erfolgreiche Anmeldung |
| 4625 | Fehlgeschlagene Anmeldung |
| 4662 | Ein Vorgang wurde an einem Objekt ausgeführt |
| 4672 | Besondere Berechtigungen zuweisen |
| 4719 | Systemüberwachungsrichtlinie wurde geändert |
| 4720 | Ein Benutzerkonto wurde erstellt |
| 4726 | Ein Benutzerkonto wurde gelöscht |
| 4728 / 4732 / 4756 | Ein Mitglied wurde zu einer sicherheitsaktivierten Gruppe hinzugefügt |
| 4729 / 4733 / 4757 | Ein Mitglied wurde aus einer sicherheitsaktivierten Gruppe entfernt |
| 4768 | Kerberos-Authentifizierung (TGT-Anforderung) |
| 4769 | Kerberos-Dienstticket (ST-Anforderung) |
| 4776 | NTLM-Authentifizierung |
| 5137 | Ein Verzeichnisdienstobjekt wurde erstellt |
| 5141 | Ein Verzeichnisdienstobjekt wurde gelöscht |
Weitere Einzelheiten werden in den folgenden Dokumenten beschrieben:

LogonTracer v2.0 integriert eine KI-Analyse-Engine mit OpenAI GPT-Modellen, um eine intelligente Bedrohungserkennung zu bieten, die über traditionelle regelbasierte Ansätze hinausgeht.
LogonTracer verwendet PageRank, Hidden Markov Model und ChangeFinder, um bösartige Hosts und Konten aus Ereignisprotokollen zu erkennen.

Mit LogonTracer ist es auch möglich, Ereignisprotokolle in chronologischer Reihenfolge anzuzeigen.

Python 3.9 oder neuer (3.12 empfohlen)
Neo4j 5.x (Community oder Enterprise)
OpenAI-API-Schlüssel (optional – nur für KI-Analysefunktionen erforderlich)
Python-Module
numpy
evtx
lxml
scipy
changefinder
flask
hmmlearn>=0.2.8
scikit-learn
elasticsearch-dsl>=7.0.0,<8.0.0
pyyaml
flask-sqlalchemy
flask-login
flask_wtf
flask-limiter
wtforms
GitPython
pysigma>=0.11.0
pysigma-backend-sqlite
openai>=1.0.0
aiohttp
neo4j
git clone https://github.com/JPCERTCC/LogonTracer.git
cd LogonTracer
pip3 install -r requirements.txt
Neo4j herunterladen und starten. Das anfängliche Passwort setzen und den Bolt-Port (Standard: 7687) notieren.
vi config/config.yml
Wichtige Einstellungen:
settings:
logontracer:
WEB_PORT: "8080"
default_user: "neo4j" # Neo4j-Benutzername für das Standard-LogonTracer-Konto
default_password: "password" # Vor dem ersten Start ändern
neo4j:
NEO4J_USER: "neo4j"
NEO4J_PASSWORD: "password" # Ihr Neo4j-Passwort
NEO4J_SERVER: "localhost"
WS_PORT: "7687"
python3 logontracer.py --run
Öffnen Sie Ihren Browser unter http://localhost:8080.
python3 logontracer.py -e <pfad/zu/Security.evtx> -z <UTC-Offset> -s <Neo4j-Server> -u <Benutzer> -p <Passwort>
python3 logontracer.py -x <pfad/zu/event.xml> -z <UTC-Offset> -s <Neo4j-Server> -u <Benutzer> -p <Passwort>
python3 logontracer.py --es -s <Neo4j-Server> -u <Benutzer> -p <Passwort> --es-server <ES-Host:Port>
Fügen Sie das Flag --sigma hinzu, um die Sigma-Regelerkennung während des Imports auszuführen:
python3 logontracer.py -e <pfad/zu/Security.evtx> -z 9 -s localhost -u neo4j -p password --sigma
python3 logontracer.py -e <pfad/zu/Security.evtx> -z 9 -s localhost -u neo4j -p password --add
Nach dem Start der Webanwendung klicken Sie in der linken Seitenleiste auf Event Log hochladen. Sie können:

Nach dem Hochladen mit aktiviertem Sigma-Scan oder nach dem Auslösen eines erneuten Scans über die API klicken Sie in der Seitenleiste auf Sigma-Scan-Ergebnisse, um die Funde anzuzeigen.








Mit der Neo4j Enterprise Edition unterstützt LogonTracer mehrere unabhängige Untersuchungsfälle – jeder in einer separaten Neo4j-Datenbank gespeichert.
docker run \
--detach \
--publish=7474:7474 --publish=7687:7687 --publish=8080:8080 \
-e LTHOSTNAME=<IP-Adresse> \
jpcertcc/docker-logontracer
cd docker-compose
docker compose build
docker compose up -d
cd docker-compose-with-nginx
docker compose build
docker compose up -d
cd docker-compose-with-elasticstack
docker compose build
docker compose up -d
Das folgende YouTube-Video zeigt die Verwendung von LogonTracer.
Weitere Details finden Sie im LogonTracer-Wiki.
| Option | Beschreibung |
|---|
-r, --run | Webanwendung starten |
-o PORT | Port der Webanwendung (Standard: 8080) |
--host HOST | Bindungsadresse (Standard: 0.0.0.0) |
-e EVTX [...] | EVTX-Datei(en) importieren |
-x XML [...] | XML-Ereignisprotokolldatei(en) importieren |
-s SERVER | Neo4j-Serveradresse (Standard: localhost) |
-u USER | Neo4j-Benutzername (Standard: neo4j) |
-p PASSWORD | Neo4j-Passwort |
--wsport PORT | Neo4j-Bolt-Port (Standard: 7687) |
-z UTC | Zeitzonen-Offset (z. B. 9 für JST) |
-f DATE | Protokolle ab diesem Datum/Uhrzeit parsen (z. B. 2024-01-01T00:00:00) |
-t DATE | Protokolle bis zu diesem Datum/Uhrzeit parsen |
--add | Daten anhängen, ohne die Datenbank zu löschen |
--delete | Datenbank vor dem Import löschen |
--sigma | Sigma-Regel-Scan während des Imports ausführen |
--sigma-only | Nur Sigma-Scan ausführen (keine Neo4j-Verarbeitung) |
--sigma-rules PFAD | Pfad zum Sigma-Regelordner (Standard: sigma) |
--es | Daten aus Elasticsearch importieren |
--postes | Analyseergebnisse an Elasticsearch senden |
--es-server HOST:PORT | Elasticsearch-Server |
--es-index INDEX | Elasticsearch-Index (Standard: winlogbeat-*) |
--es-prefix PRÄFIX | Elasticsearch-Ereignispräfix (Standard: winlog) |
--case NAME | Fallname für den Neo4j Enterprise-Mehrdatenbankmodus |
-c DATEI | Pfad zur Konfigurationsdatei (Standard: config/config.yml) |
--create_user USER | Neuen Neo4j-Benutzer erstellen |
--create_password PASS | Passwort für den neuen Neo4j-Benutzer |
--role ROLLE | Rolle für den neuen Benutzer (admin, architect, reader) |
--delete_user USER | Neo4j-Benutzer löschen |
-l, --learn | Maschinenlernanalyse ausführen (Hidden Markov Model) |