如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 许多渗透测试人员和攻击者通常都会使用一种被称为“密码喷洒(Password Spraying)”的技术来进行测试和攻击。对密码进行喷洒式的攻击,这个叫法很形象,因为它属于自动化密码猜测的一种。这种针对所有用户的自动密码猜测通常是为了避免帐户被锁定,因为针对同一个用户的连续密码猜测会导致帐户被锁定。

如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

许多渗透测试人员和攻击者通常都会使用一种被称为“密码喷洒(Password Spraying)”的技术来进行测试和攻击。对密码进行喷洒式的攻击,这个叫法很形象,因为它属于自动化密码猜测的一种。这种针对所有用户的自动密码猜测通常是为了避免帐户被锁定,因为针对同一个用户的连续密码猜测会导致帐户被锁定。所以只有对所有用户同时执行特定的密码登录尝试,才能增加破解的概率,消除帐户被锁定的概率。

攻击者首先会从他们已有的密码列表开始尝试,并以最脆弱的密码开始(“Fall2017”,“Winter2018”“123456”等)入手。

关于“密码喷洒(Password Spraying)”的概念,我是在BSidesCharm 2017的有关“如何检测难以寻找的攻击活动目录”的演讲中提到的。

当密码开始喷洒时,往往会从列表中的第一个密码开始。第一个密码用于尝试对活动目录中的每个用户进行身份验证。针对活动目录中的每个用户,攻击者都会尝试用这个密码进行登录,并且当所有用户都使用该密码进行了测试后,就会自动转到下一个密码,执行重复的测试。

由于活动目录中的每个用户的测试上限次数都会是5次,因此攻击者会为每个用户进行4个不同密码的尝试。此时msDS-LockoutObservationWindow,设置复位帐户锁定计数器为0:00:30:00(30分钟)。至于如何收集有关活动目录环境的密码策略的信息并使密码喷洒工具自动适应这些信息,对攻击者来说是小菜一碟。

如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

上图显示了测试者是如何使用AD PowerShell cmdlet Get-ADDefaultDomainPasswordPolicy cmdlet.来显示实验室域环境的域密码策略的,应该说,这种策略在大多数情况下都适用,因为用户的密码设置,往往都非常地脆弱。比如,用户的密码通常是一些小于10位的纯数字。

由于密码喷洒通常连接到SMB共享或网络服务,因此让我先从连接到PDC的netlogon共享(\\PDC\ netlogon)开始分析,该共享在许多网络中很常见。在密码喷洒运行一段时间后,我会发现许多用户的密码,这些用户密码也可能包含特权帐户。

下图就是我自己编写的一个快速PowerShell脚本的密码喷洒:

如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

在域控制器上针对SMB的密码喷洒会导致域控制器上的记录事件ID 4625表示为“登录失败”,并且大多数事件都会显示在记录日志中,因此发生这种情况时,应该能够检测到。

如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

上图显示了在密码喷洒的过程中,在域控制器上的登录事件ID 4625。然而,目前许多组织还没有创建关联规则,如果在发生密码喷洒的过程中,发生登录事件ID 4625,就会发生密码喷洒。

如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

上图显示在密码喷洒的过程中,我在实验室域环境中所记录的众多事件ID 4625。不过,还有另一种方法可以在活动目录中发现密码喷洒。由于每个用户帐户都有一个名为“Bad-Password-Time”的关联属性,该属性在使用Active Directory PowerShell cmdlet Get-ADUser时显示为“lastbadpasswordtry”。它可以显示出黑客尝试登录该帐户的最后一个错误密码的日期和时间。运行以下PowerShell cmdlet可显示活动目录域中具有与错误密码尝试相关的属性的用户。

get-aduser -filter * -prop lastbadpasswordattempt,badpwdcount | select name,lastbadpasswordattempt,badpwdcount | format-table –auto

如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

上图显示在我实施密码喷洒后,实验室域环境中的具有lastbadpasswordattempt和badpwdcount属性的活动目录用户帐户。

你可以注意一下上面显示的PowerShell命令的结果,所有错误的密码尝试都是在同一分钟内进行的,其中大多数都是在几秒钟内,这个现象很不寻常。

由于攻击者可以通过更改他们连接的服务来避免事件ID 4625被记录,所以我并不是连接到SMB,而是连接到域控制器上的LDAP服务的。这样一来,ID 4625就可能躲过记录。

如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

上图显示当针对LDAP进行密码喷洒时,你是发现不了事件ID 4625的。

由于目前许多网络安防组织都会通过监控事件ID 4625,来保护网络。所以为了避免被监测到,攻击者可能会连接到LDAP服务进行密码喷洒。但前提是你,他们需要将Kerberos 事件日志记录记录到事件ID 4771中,并监视“Kerberos预验证失败”。在事件ID 4771中,验证失败的话,会用代码 “0x18”表示。

如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

上图就是显示的事件ID 4771,当根据LDAP进行密码喷洒时,就会在域控制器上启用Kerberos日志记录时记录该事件。

当攻击者在一个域连接的计算机上使用密码喷洒时,会记录到事件ID 4648(“尝试使用显式凭据登录”)。有许多4648事件显示,一个叫做Joe的用户多次尝试登录并使用“Alexis Phillips”或“Christopher Kelley”或whomever的密码,并且这些记录在几秒钟内就被记录下来。所以,这种类型的活动是不寻常的。

以下四个图显示在执行密码喷洒的工作站上记录的事件ID 4648,不过必须启用审计日志记录才能记录该事件ID。

如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

如何对密码喷洒进行检测?

密码喷洒发生在许多活动目录环境中,并且可以通过适当的日志记录启用和有效关联来检测。

检测的主要方法包括:

1.启用适当的日志记录:

1.1域控制器:事件ID 4625的“审计登录”(成功与失败)。

1.2域控制器:事件ID 4771的“审计Kerberos验证服务”(成功与失败)。

1.3所有系统:事件ID 4648的“审计登录”(成功与失败)。

2.在1分钟内配置50 4625多个事件的警报。

3.在1分钟内为50 4771多个事件的警报的设置失败代码“0x18”。

4.在1分钟内为工作站上的100 4648多个事件配置警报。

5.根据以下命令,编写一个每天运行的PowerShell脚本并报告可能的密码喷洒:

get-aduser -filter * -prop lastbadpasswordattempt,badpwdcount | select name,lastbadpasswordattempt,badpwdcount | format-table –auto。

每个警报规则都需要根据你的运行环境进行调整,具体方法就是增加警报的数量或缩短警报的时间。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
10天前
|
存储 监控 安全
云日志管理|从云端进行安全日志管理
Log360 Cloud 是一款基于云的SIEM解决方案,旨在为企业提供灵活、安全的日志管理。它从本地和云环境中收集日志并存储于云端,通过实时图形仪表板提供网络安全的全面视图。用户可随时随地访问日志,减少存储成本,轻松扩展,并确保符合IT合规性要求。该平台支持代理和无代理日志收集,具备强大的搜索、分析、审计和实时警报功能,帮助企业及时检测和解决潜在威胁,保障信息安全。
|
3月前
|
人工智能 监控 算法
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
3D-Speaker是阿里巴巴通义实验室推出的多模态说话人识别开源项目,结合声学、语义和视觉信息,提供高精度的说话人识别和语种识别功能。项目包含工业级模型、训练和推理代码,以及大规模多设备、多距离、多方言的数据集,适用于多种应用场景。
528 18
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
|
3月前
|
缓存 安全 网络协议
使用事件日志识别常见 Windows 错误
事件查看器是Windows操作系统中的标准诊断工具,用于记录系统事件,包括硬件问题、软件中断和系统行为等详细信息。通过分析这些日志,管理员能够追踪和解决系统错误。访问方法包括使用快捷键Win + R输入eventvwr.msc,或通过控制面板进入。事件查看器中的每条记录包含事件ID、来源和描述,帮助识别和解决问题。常见错误如蓝屏死机、DLL错误、驱动程序错误等,可通过更新驱动程序、运行系统诊断、使用恢复功能等方式解决。
138 4
|
3月前
|
存储 监控 安全
什么是事件日志管理系统?事件日志管理系统有哪些用处?
事件日志管理系统是IT安全的重要工具,用于集中收集、分析和解释来自组织IT基础设施各组件的事件日志,如防火墙、路由器、交换机等,帮助提升网络安全、实现主动威胁检测和促进合规性。系统支持多种日志类型,包括Windows事件日志、Syslog日志和应用程序日志,通过实时监测、告警及可视化分析,为企业提供强大的安全保障。然而,实施过程中也面临数据量大、日志管理和分析复杂等挑战。EventLog Analyzer作为一款高效工具,不仅提供实时监测与告警、可视化分析和报告功能,还支持多种合规性报告,帮助企业克服挑战,提升网络安全水平。
124 2
|
7月前
|
存储 安全 Python
[python]使用标准库logging实现多进程安全的日志模块
[python]使用标准库logging实现多进程安全的日志模块
115 1
|
7月前
|
监控 安全 Linux
在Linux中,如何查看和审计系统日志文件以检测异常活动?
在Linux中,如何查看和审计系统日志文件以检测异常活动?
|
9月前
|
SQL 安全 关系型数据库
关系性数据库错误日志安全审计
【6月更文挑战第4天】
87 8
|
10月前
|
存储 监控 安全
基于日志审计服务解读网络数据时代新安全
《网络安全法》、《数据安全法》及《等保2.0》为网络时代数字化经济的安全健康发展提供了有力支撑,也对企业数字安全管理提出了更高要求。日志审计App可视、可控、可溯的日志全生命周期安全保护方案及阿里云各类云安全服务,全方位地帮助守护企业云上资产及数据安全,保障数字经济产业的健全发展。
基于日志审计服务解读网络数据时代新安全
|
10月前
|
存储 运维 监控
一键式开启:IDaaS日志接入SLS日志审计发布
应用身份服务IDaaS(Identity as a Service)是阿里云原生身份管理系统,可以统一管理各应用中分散的账号,并集中分配应用访问控制权限,降低低效、重复的账号访问配置和运维工作。
一键式开启:IDaaS日志接入SLS日志审计发布
|
10天前
|
存储 缓存 关系型数据库
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
26 5
图解MySQL【日志】——Redo Log
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等