LogonTracer:用关系图谱揪出域内异常登录
原创
信安路漫漫
信安路漫漫
信安路漫漫
2026年10月13日 07:00
上海
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
前言
本次在介绍一个用来分析win日志的工具,主要是通过图的方式来找出域内异常的登录,在应急响应中可以用来快速分析win日志。
LogonTracer简介
在Windows域环境中,安全事件日志是调查入侵行为最重要的证据来源。4624登录成功、4625登录失败、4768 Kerberos认证、4776 NTLM认证,这些事件ID记录了每一次账户与主机之间的交互。然而当日志量达到数十万条时,事件查看器几乎无法完成有效的关联分析,导出的文本文件也很难让人快速锁定关键线索——比如哪个账户在短时间内登录了大量主机,或者哪台主机上出现了不该出现的特权账户。
日本JPCERT/CC开发的LogonTracer,正是为解决这个问题而生的工具。它通过将登录事件中的主机名、IP地址和账户名关联起来,以图结构的方式呈现,让分析师能够直观地看到账户与主机之间的登录关系。2026年发布的v2.0版本集成了OpenAI GPT模型驱动的AI分析引擎,可自动完成威胁检测、MITRE ATT&CK战术映射,并能将分析结果转化为可部署的Sigma检测规则。
图结构让登录关系一目了然
LogonTracer的核心思路很简洁:将每个账户和每台主机视为图中的一个节点,将登录行为视为连接两个节点的边。账户节点用红色表示特权账户、蓝色表示普通账户,主机节点用绿色表示。
这种可视化方式带来的直接好处是,那些在传统日志视图中需要交叉比对才能发现的模式,在图结构中会自然浮现。一个被攻击者窃取的域管账户如果被用于登录多台主机,它在图中会呈现出明显的“星形”连接模式;一台被感染的主机如果出现了异常账户的登录记录,这个异常的连接会在图的边缘位置显得格外突出。
在事件ID覆盖方面,LogonTracer支持的登录相关事件包括4624、4625、4672、4768、4769、4776等,此外还纳入了4720/4726用户账户创建与删除、4728/4732/4756安全组添加、5137/5141目录服务对象操作等事件。这意味着它不仅能追踪登录行为本身,还能捕捉到攻击者在域内建立持久化或进行权限提升的痕迹。
PageRank与ChangeFinder:让算法替你盯异常
如果仅仅是画一张图,LogonTracer的价值会大打折扣。它真正有分析价值的地方在于对图结构本身做了进一步的计算。
LogonTracer使用PageRank算法对图中的节点进行重要性排名。PageRank最初是Google用来衡量网页重要性的算法,其核心逻辑是:如果一个节点被很多其他节点连接,它的重要性就更高。在登录事件的语境下,一个被攻击者窃取的账户通常会被用来登录多台不同的主机,因此它在图中会获得较高的PageRank值,自然排在排名列表的前列。同理,一台被多台异常账户访问过的主机也会因为连接了多个“问题节点”而获得较高的排名。
除了PageRank,LogonTracer还引入了ChangeFinder来检测时间线上的异常突变。它按小时统计每个账户的事件日志数量,当某个账户在短时间内出现日志量的急剧增加时,ChangeFinder会自动将这个时段标记出来。这在实战中很有用——暴力破解攻击会在短时间内产生大量4625失败日志,而攻击者横向移动时的批量登录也会造成日志量的突增。人工翻看时间线容易遗漏这些异常,但算法不会。
此外,工具还内置了Hidden Markov Model用于恶意主机和账户的检测。这些统计方法的组合使用,使得LogonTracer不仅仅是一个“日志看图工具”,而是一个带有分析能力的调查辅助平台。
v2.0的AI增强:从规则驱动到智能研判
LogonTracer v2.0引入的AI分析引擎,是工具诞生以来最大的一次能力升级。
v2.0集成了基于OpenAI GPT模型的安全分析功能,能够自动解读图查询结果并生成风险评估,同时将发现映射到MITRE ATT&CK战术分类。更值得注意的是其中的“自主LLM代理”设计——AI代理可以自行生成Cypher查询语句,对Neo4j图数据库进行迭代式的威胁发现,无需分析师手动编写每一条查询。对于不熟悉Cypher查询语言的应急响应人员来说,这个能力显著降低了使用门槛。
v2.0还集成了Sigma规则引擎,内置完整的SigmaHQ规则集,可以在上传EVTX文件时自动执行规则扫描,也支持通过REST API对已上传的文件重新扫描。AI分析发现的威胁模式还可以被转化为可部署的Sigma检测规则。
AI分析结果支持英语、日语、法语三种语言输出。这些AI功能需要OpenAI API密钥才能启用,属于可选项。如果不使用AI分析,LogonTracer的核心可视化和统计功能仍然完全可用,且不依赖任何外部服务。
系统要求与安装部署
LogonTracer的部署门槛不高。官方推荐的环境是Python 3.9以上版本(推荐3.12)配合Neo4j 5.x图数据库。AI功能需要OpenAI API Key,属于可选项。
源码安装方式如下:
git clone https://github.com/JPCERTCC/LogonTracer.gitcd LogonTracerpip3 install -r requirements.txt
配置Neo4j连接信息vi config/config.ymlpython3 logontracer.py --run# 访问 http://localhost:8080
对于不想手动配置依赖的用户,JPCERTCC提供了Docker镜像,一条命令即可启动完整环境:
docker run \\ --detach \\ --publish=7474:7474 --publish=7687:7687 --publish=8080:8080 \\ -e LTHOSTNAME= \\ jpcertcc/docker-logontracer
PS:注意使用docker启动的时候一定要加LTHOSTNAME,不然启动会报错
本次安装我采用了docker的方式
docker pull jpcertcc/docker-logontracer
安装好了打开是这样的页面
默认密码:neo4j/password
实际使用场景
工具的典型使用流程是:从域控或受影响主机上导出Security.evtx文件,通过Web界面上传,LogonTracer会自动解析日志并将数据写入Neo4j,随后即可在浏览器中查看和操作关系图谱。
在实际的应急响应场景中,LogonTracer最常被用于几个关键调查方向:确认恶意软件感染主机上使用了哪些账户、检查特权账户是否出现在不应出现的主机上、排查RDP远程登录的异常记录,以及识别短时间内的大量认证失败。这些正是域环境入侵调查中最核心的几个问题。
JPCERT/CC在最初的工具介绍中也提到,LogonTracer定位于“辅助日志分析”而非“自动检测未授权登录”,它的价值在于让分析师更快地定位到值得深入排查的节点,而不是替代人的判断。
从更宏观的角度看,LogonTracer代表了一种思路转变:将图论和网络分析的方法引入日志分析领域,用关系的视角而非记录列表的视角来审视安全事件。当攻击者在一个域网络中横向移动时,他们不可避免地会在账户与主机之间留下连接痕迹。LogonTracer所做的,就是让这些连接变得可见。
可以用本地的日志做一个测试,先导出本地的win日志,然后导入这个工具,如下图
分析完成以后就可以正常进行查看
项目地址
https://github.com/JPCERTCC/LogonTracer
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论