Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
latma — 收集并分析AD和Azure AD认证日志,使用基于图的异常检测来发现横向移动攻击,并通过交互式时间线和GIF动画可视化可疑模式。 | Kitploit
工具/GitHubGitHub/silverfort-open-source/latma
横向移动信息收集渗透测试云安全威胁情报事件响应异常检测日志分析
GitHubsilverfort-open-source/latma

latma

收集并分析AD和Azure AD认证日志,使用基于图的异常检测来发现横向移动攻击,并通过交互式时间线和GIF动画可视化可疑模式。

查看仓库
80143年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

横向移动分析工具

横向移动分析工具(LATMA)从域环境和 Azure AD 环境中收集身份验证日志,并搜索潜在的横向移动攻击及可疑活动。横向移动可能发生在 AD 环境中,也可能发生在云与本地之间。该工具通过图表展示横向移动模式的可视化结果。此工具包含两个模块:一个用于收集日志,另一个用于分析日志。您可以分别执行每个模块。事件日志收集器应在运行 Python 3.8 或更高版本的 Windows 机器上执行,且该机器需处于 Active Directory 域环境中。分析器可在 Linux 机器和 Windows 机器上执行。

收集器

事件日志收集器具有两个功能:扫描域控制器以获取成功的 NTLM 身份验证日志,扫描端点以获取成功的 Kerberos 身份验证日志;以及从 Azure AD 收集登录日志。从 AD 环境收集日志需要 LDAP/S 端口 389 和 636 以及 RPC 端口 135 对域控制器和客户端的访问权限。此外,还需要域管理员权限,或是事件日志读取者组中的用户,或具有同等权限的用户。这是从所有端点和域控制器拉取事件日志所必需的。

对于登录收集,您需要在 Azure AD 环境中拥有一个应用程序,并在配置文件中提供相关信息。确保用于登录收集的用户未配置双因素身份验证(2FA)。

收集 AD 日志

收集器从域控制器上的事件 8004 中收集 NTLM 日志,从客户端上的事件 4648 中收集 Kerberos 日志。它输出一个 CSV 逗号分隔格式的文件,包含所有可用的身份验证流量。输出包含以下字段:源主机、目标、用户名、身份验证类型、SPN 以及格式为 %Y/%m/%d %H:%M 的时间戳。收集器需要具有整个环境中事件查看器权限的有效用户的凭据,并查询每种协议的特定日志。

使用组策略验证环境中是否已审核 Kerberos 和 NTLM 协议:

  1. Kerberos - 计算机配置 -> 策略 -> Windows 设置 -> 安全设置 -> 本地策略 -> 审核策略 -> 审核登录事件
  2. NTLM - 计算机配置 -> 策略 -> Windows 设置 -> 安全设置 -> 本地策略 -> 安全选项 -> 网络安全:限制 NTLM:审核此域中的 NTLM 身份验证

收集 Azure AD 登录

收集器仅从混合或 Azure AD 加入的设备收集成功登录。这些登录表示资产在 Azure AD 环境与本地环境之间的成功移动。收集器需要以下信息来收集数据:

  1. 租户 ID
  2. 未启用双因素身份验证的用户
  3. 密码
  4. 客户端 ID
  5. 客户端密码 您可以使用预定义应用程序或创建一个新的应用程序。

分析器

分析器接收一个格式化为收集器输出结构的电子表格作为输入。它使用横向移动分析算法搜索可疑活动,并检测横向移动的其他 IoC。身份验证的源和目标应使用 NetBIOS 名称而非 IP 地址进行格式化。

LATMA 算法的预备知识与关键概念

LATMA 获取一批身份验证请求,并在发现可疑的横向移动攻击时发出警报。我们定义如下内容:

  • 身份验证图:一个包含环境中身份验证流量信息的有向图。图中的节点是计算机,边是计算机之间的身份验证。图边包含属性:协议类型、身份验证日期以及发出请求的账户。图节点包含其表示的计算机的信息,详见下文。

  • 横向移动图:身份验证图的一个子图,代表攻击者的移动。横向移动图并不总是子图中的一条路径;在某些攻击中,攻击者会向多个不同方向扩散。

  • 警报:算法怀疑属于横向移动图的一个子图。

LATMA 在执行过程中执行多项操作:

  • 信息收集:LATMA 监控用户和机器的正常行为并对其进行特征化。学习过程稍后用于判断哪些身份验证请求偏离正常行为,可能涉及横向移动攻击。在三周的学习期内,LATMA 不会发出任何警报,仅对环境进行学习。学习在三周后仍会继续。

  • 身份验证图构建:学习期后,每个相关的身份验证都会被添加到身份验证图中。必须仅过滤相关身份验证,否则图所拥有的边数可能过大。我们过滤以下协议类型:NTLM 和 Kerberos,服务为 "rpc"、"rpcss" 和 "termsrv"。

警报处理:

向图中添加身份验证可能会触发警报处理过程。通常,新边可以创建新警报、加入现有警报或合并两个警报。

信息收集

LATMA 监控的每个身份验证请求都用于学习,并存储在专用数据结构中。首先,我们识别接收端和中枢。我们将接收端定义为被许多(至少 50 个)不同账户访问的机器,例如公司门户或 Exchange 服务器。我们将中枢定义为许多不同账户(至少 20 个)从中进行身份验证的机器,例如代理和 VPN。对接收端的身份验证或从中枢发出的身份验证被视为良性,因此会从身份验证图中移除。

除了基本分类外,LATMA 还会将账户与其经常进行身份验证的机器进行匹配。如果一个账户在三周内至少有三天的不同日期从某台机器进行身份验证,则意味着该账户与该机器匹配,并且该账户从该机器发出的任何身份验证都被视为良性,会从身份验证图中移除。

横向移动的 IoC 包括:

白杖 - 用户账户在相对较短的时间内从单一机器向多台机器进行身份验证。

桥梁 - 用户账户 X 从机器 A 向机器 B 进行身份验证,随后又从机器 B 向机器 C 进行身份验证。此 IoC 可能表明攻击者从其初始立足点(A)向更有利于实现攻击目标的目标机器(C)实际推进。

切换桥梁 - 用户账户 X 从机器 A 向机器 B 进行身份验证,随后用户账户 Y 从机器 B 向机器 C 进行身份验证。此 IoC 可能表明攻击者在其路径上发现并攻破了另一个账户,并使用新账户向前推进(常见的例子是账户 X 为标准域用户,账户 Y 为管理员用户)。

权重转移 - 从机器 A 向机器 {B1,…, Bn} 的白杖(见上文),随后从机器 Bx 向机器 {C1,…,Cn} 的另一个白杖。此 IoC 可能表明攻击者已确定机器 B 更能满足攻击目的,并从那时起使用机器 B 作为进一步搜索的来源。

爆发 - 用户账户 X 在非常短的时间内从机器 A 向多台机器进行身份验证。常见的例子是攻击者同时向大量机器植入/执行勒索软件。

输出:

分析器输出多个不同的文件:

  1. 一个包含所有可疑身份验证(all_authentications.csv)及其角色分类的电子表格,以及另一个包含被怀疑属于横向移动的身份验证(propagation.csv)的电子表格。
  2. 一个 GIF 文件,表示进展过程,GIF 的每一帧精确显示可疑操作是什么。
  3. 一个包含所有可疑事件的交互式时间线。彼此相关的事件具有相同颜色。

依赖项:

  1. Python 3.8
  2. 库列表见 requirements.txt
  3. 运行 pip install . 以自动运行安装
  4. 在整个环境中审核 Kerberos 和 NTLM
  5. 对域控制器的 LDAP 查询
  6. 域管理员凭据或任何具有 MS-EVEN6 远程事件查看器权限的凭据

用法

收集器

必需参数:

  1. credentials [domain.com/]username[:password] 凭据格式 或者 [domain.com/]username,之后密码将以安全方式提示输入。 对于域,请插入 FQDN(完全限定域名)。 可选参数:
  2. -ntlm 从 DC 检索 NTLM 身份验证日志
  3. -kerberos 从域中所有计算机检索 Kerberos 身份验证日志
  4. -debug 开启 DEBUG 输出
  5. -help 显示此帮助消息并退出
  6. -filter 查询域中的特定 OU 或容器,将返回子 OU 中的所有工作站。每个 OU 应使用 DN(可分辨名称)格式。支持以分号分隔的多个 OU。例如: OU=subunit,OU=unit;OU=anotherUnit,DC=domain,DC=com 例如: CN=container,OU=unit;OU=anotherUnit,DC=domain,DC=com
  7. -date 开始收集事件日志的日期。格式为月-日-年。如果未指定,则获取所有可用数据
  8. -threads 使用的工作线程数量
  9. -ldap 使用不安全的 LDAP 而不是 LDAP/S
  10. -ldap_domain LDAP 登录凭据的自定义域。如果为空,将使用当前用户会话的域

二进制用法 打开命令提示符并导航到二进制文件夹。 使用上述参数运行可执行文件。

示例

在示例文件中,您有多个真实环境的样本(有些包含横向移动攻击,有些则没有),您可以将这些样本作为分析器的输入。

用法示例

  1. python eventlogcollector.py domain.com/username:password -ntlm -kerberos
下载工具