首页 > 其他分享 >基于AD Event日志识别域用户密码攻击

基于AD Event日志识别域用户密码攻击

时间:2022-10-23 15:57:22浏览次数:54  
标签:count AD 登录 ID 密码 time 日志 Event

01、简介

针对域用户密码攻击,攻击者通常都会使用两种攻击方式进行测试,即:暴力破解(Brute Force)和密码喷洒(Password Spraying)。

暴力破解(Brute Force)攻击,攻击者通过利用大量猜测和穷举的方式来尝试获取用户口令的攻击方式。

密码喷洒(Password Spraying)攻击,针对不同的用户账户使用一两个通用密码进行自动化密码猜测,以此来避免单个账户连续密码猜测被锁定,提高密码猜测的成功率。

暴力破解与密码喷洒的区别在于,暴力破解(Brute Force)攻击是固定用户名,快速检查大量密码进行匹配。而密码喷洒(Password Spraying)攻击则是固定密码,遍历用户名进行验证。 

02、攻击过程

在Windows中,最常见的两种认证体系便是NTLM认证和Kerberos认证,针对登录认证过程中产生的日志进行分析,制定对应的检测规则。

(1)基于NTLM认证进行暴力破解

NTLM是一种网络认证协议,支持多种协议,例如:SMB、LDAP、HTTP等。AD域本身就是LDAP的一个应用实例,这里我们通过LDAP服务爆破域用户密码。

域用户暴力破解(Brute Force)攻击示例:

Windows安全日志:

开启审核策略,Windows安全日志会产生相应的审核日志,帐户登录失败,事件ID为2625,账户登录成功,事件ID为4624。

 

事件ID:4625 登录失败,日志里包含尝试登录的账号名称和域、登录类型和登录进程、登录的计算机名和登录IP地址。

事件ID:4624 登录成功,包括登录的用户名和域、登录类型、登录进程、身份验证包、登录的计算机名和登录IP地址。

 

(2)基于Kerberos预身份验证进行密码喷洒

Kerberos相比于NTLM而言,Kerberos的认证过程会相对复杂一些。

域用户密码喷洒(Password Spraying)攻击示例:

smartbrute.py brute -bU user.txt -bp abc123! kerberos -d evil.com

Windows安全日志:

开启审核策略,Windows安全日志会产生Kerberos身份验证服务的日志,

事件ID:4768,每次密钥分发中心颁发 Kerberos 票证授予票证 (TGT) 时,都会生成此事件,如果 TGT 问题失败,则会看到“ 结果代码 ”字段不等于“0x0”的失败事件。事件ID为4668表示已请求 Kerberos 身份验证票证 (TGT),事件ID为4771表示Kerberos 预身份验证失败。

域用户不存在,会产生一条事件ID为4768(审核失败)的日志记录。

域用户存在,密码错误,会产生一条事件ID为4771(审核失败)的日志记录。

域用户存在,密码正确,会产生两条事件ID为4768(审核成功),一条事件ID为4769(审核成功)的日志记录

03、攻击检测

通过模拟环境产生攻击事件,以攻击日志构建规则,提取关键特征,实时检测攻击行为。

(1)暴力破解(Brute Force)检测策略:在五分钟内,单一用户的密码登录失败次数超过10

index=ad EventCode=4624 OR EventCode=4625 bypass | bucket _time span=5m
| stats min(_time) as start_time max(_time) as end_time count(eval('EventCode'==4625)) as count_failure count(eval('EventCode'==4624)) as count_success values(dest) as dest by match_user src| nomv dest| eval start_time=strftime(start_time,"%Y-%m-%d %H:%M:%S")
| eval end_time=strftime(end_time,"%Y-%m-%d %H:%M:%S")|search count_failure>10 count_success>=0| eval message="在"+start_time+"到"+end_time+"时间段内,IP:"+src+ " User:"+match_user+"对内部地址( "+dest+" )进行暴力破解,失败:"+count_failure+" 次,成功:"+count_success+" 次" 
| table start_time end_time src dest match_user message

 

(2)密码喷洒(Password Spraying)检测策略:在五分钟内,单一来源IP认证失败错误超过50

index=ad EventCode=4771 host=WIN-DC01 user!="*$" | bucket _time span=5m
| stats min(_time) as start_time max(_time) as end_time count values(user) as user by Client_Address dest | nomv user | eval start_time=strftime(start_time,"%Y-%m-%d %H:%M:%S")
| eval end_time=strftime(end_time,"%Y-%m-%d %H:%M:%S")|search count>=0| eval message="在"+start_time+"到"+end_time+"时间段内,IP地址:"+Client_Address+ "对以下账号:"+user+"进行密码喷洒,认证失败:"+count+"次"
| table start_time end_time dest user message

 

标签:count,AD,登录,ID,密码,time,日志,Event
From: https://www.cnblogs.com/xiaozi/p/16818717.html

相关文章

  • 基于AD Event日志识别DCSync攻击
     01、简介DCSync攻击是一种常见的域控攻击方法,利用DCSync导出域内用户的哈希值,本质上就是利用DRS(DirectoryReplicationService)协议通过IDL_DRSGetNCChanges从域控......
  • 基于AD Event日志识别DCShadow攻击
    01、简介DCShadow攻击,是攻击者在获取到域管理员权限后,通过将沦陷的主机伪造成域控,将预先设定的对象或对象属性复制到正在运行的域控服务器中。DCSync&DCShadow区别在于,DC......
  • EBS:导入弹性域关键字的值(FND_FLEX_LOADER_APIS.up_value_set_value)
     EBSR12.1导入弹性域关键字的值第一步:创建一个临时表 CUX.CUX_FND_FLEX_VALUE_TEMP,其表结构同FND_FLEX_LOADER_APIS.up_value_set_value()过程的参数一致。导......
  • Android RecyclerView使用ListAdapter高效刷新数据
    原文:AndroidRecyclerView使用ListAdapter高效刷新数据-Stars-One的杂货小窝我们都知道,当RecyclerView数据源更新后,还需要通过adapter调用对应的方法,从而让Recycl......
  • Macad3d的编译
    Macad3d编译的条件比较苛刻地址:https://github.com/Macad3D/Macad3DVS2022VisualStudio2022:需要安装.net桌面开发,C++桌面开发,.net6组件,C++/CLI支持组件,最后一......
  • Git修改最近一次提交的日志信息
    一、问题由来当前自己所在的项目组中,每次发完一个版本后,就需要创建个人新版本的git提交凭证,其实就是系统自动生成的一串编码,如果没有这个凭证,代码是提交不了的,这是公......
  • Flink读mysql的时候报错java.net.SocketException: Connection timed out (Read faile
    通过flinkjoin表关联对mysql进行读取出现下面的问题?求指点atorg.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.ja......
  • Gradle学习之Jar,So文件管理
    Jar文件将jar包放到Libs文件中,使用一下方式将jar添加到依赖路径中implementationfiles('hibernate.jar','libs/spring.jar')implementationfileTree(dir:'libs',inc......
  • Gradle学习之依赖冲突解决
    强制依赖版本默认情况下依赖冲突Gradle会使用高版本的依赖但是很多时候不兼容,因此出现了强制依赖版本的几个关键字1)isFoceisFoce标记会强制使用该标记版本的依赖depe......
  • drools_08_event_listener
    KieSession除了提供丰富的API外,还提供三个eventlistener,方便对于规则执行状况的监控.AgendaEventListener该接口可以监控rule被fire,所以这个listener最常用,......