LogonTracer v2 是一款通过可视化和分析 Windows Active Directory 事件日志来调查恶意登录的工具。该工具将登录相关事件中出现的主机名(或 IP 地址)与账户名关联起来,并以图形方式显示。这样一来,就可以查看哪些账户发生了登录尝试,以及使用了哪些主机。
该工具可以可视化以下与 Windows 登录相关的事件 ID。
| 事件 ID | 描述 |
|---|---|
| 4624 | 成功登录 |
| 4625 | 登录失败 |
| 4662 | 对对象执行了操作 |
| 4672 | 分配特殊权限 |
| 4719 | 系统审核策略已更改 |
| 4720 | 创建了用户账户 |
| 4726 | 删除了用户账户 |
| 4728 / 4732 / 4756 | 将成员添加到启用了安全性的组中 |
| 4729 / 4733 / 4757 | 从启用了安全性的组中移除成员 |
| 4768 | Kerberos 身份验证(TGT 请求) |
| 4769 | Kerberos 服务票据(ST 请求) |
| 4776 | NTLM 身份验证 |
| 5137 | 创建了目录服务对象 |
| 5141 | 删除了目录服务对象 |
更多详情请参考以下文档:

LogonTracer v2.0 集成了使用 OpenAI GPT 模型的 AI 分析引擎,提供超越传统基于规则的方法的智能威胁检测。
LogonTracer 使用 PageRank、隐马尔可夫模型 和 ChangeFinder 从事件日志中检测恶意主机和账户。

使用 LogonTracer,还可以按时间顺序显示事件日志。

Python 3.9 或更高版本(推荐 3.12)
Neo4j 5.x(社区版或企业版)
OpenAI API 密钥(可选 — 仅 AI 分析功能需要)
Python 模块
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。设置初始密码,并记下 Bolt 端口(默认:7687)。
vi config/config.yml
关键设置:
settings:
logontracer:
WEB_PORT: "8080"
default_user: "neo4j" # 默认 LogonTracer 账户的 Neo4j 用户名
default_password: "password" # 首次运行前请更改此密码
neo4j:
NEO4J_USER: "neo4j"
NEO4J_PASSWORD: "password" # 您的 Neo4j 密码
NEO4J_SERVER: "localhost"
WS_PORT: "7687"
python3 logontracer.py --run
在浏览器中打开 http://localhost:8080。
python3 logontracer.py -e <path/to/Security.evtx> -z <UTC offset> -s <Neo4j server> -u <user> -p <password>
python3 logontracer.py -x <path/to/event.xml> -z <UTC offset> -s <Neo4j server> -u <user> -p <password>
python3 logontracer.py --es -s <Neo4j server> -u <user> -p <password> --es-server <ES host:port>
添加 --sigma 标志以在导入期间运行 Sigma 规则检测:
python3 logontracer.py -e <path/to/Security.evtx> -z 9 -s localhost -u neo4j -p password --sigma
python3 logontracer.py -e <path/to/Security.evtx> -z 9 -s localhost -u neo4j -p password --add
启动 Web 应用程序后,点击左侧边栏中的 Upload Event Log。您可以:

在使用 Sigma 扫描上传后,或通过 API 触发重新扫描后,点击侧边栏中的 Sigma Scan Results 查看结果。








使用 Neo4j 企业版,LogonTracer 支持多个独立的调查案例——每个案例存储在单独的 Neo4j 数据库中。
docker run \
--detach \
--publish=7474:7474 --publish=7687:7687 --publish=8080:8080 \
-e LTHOSTNAME=<IP Address> \
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