简介
域内密码喷洒(Passwoerd Spraying)一般和域内用户名枚举一起使用
在Kerberos协议认证的AS-REQ阶段,在密码正确和密码错误两种情况下,AS-REP的返回包不一样。所以可以利用这一点对域内用户名进行密码喷洒攻击。如果目标域设置了用户锁定策略,可以提高爆破成功率
域内密码喷洒工具
Kerbrute
kerbrute是一款使用Go语言编写的域内用户名枚举和密码喷洒工具,域内用户名枚举命令如下
攻击命令,指定攻击方式 指定域控 指定域名 指定用户字典 指定密码,可明文自动转换Hash
如下图所示
如果没有密码锁定策略,可以针对某个用户进行爆破
pyKerbrute
在密码喷洒模式下,可以使用明文密码或密码Hash。密码喷洒命令如下,域内开放端口389LDAP服务端口,kerberos88端口
使用mimkatz获取到Hash:f1d00e96169019e87a5846e3812ee536
使用Hash进行攻击
DomainPasswordSpray.ps1
默认该脚本是利用LDAP从域中导出用户列表,去除锁定的用户
Import-Module xxx.ps1
Invoke-DomainPasswordSpray -Password p@ss1234
域内密码喷洒抓包分析
我们针对user.txt字典中如下用户名使用pyKerbrut工具进行密码喷洒攻击
admin01是不存在用户、用户wangwu密码不为p@ss1234、用户test密码为p@ss1234
在密码喷洒攻击的同时,使用Wireshark抓包分析Kerberos流量,数据包均为AS步骤包
admin01用户AS-REQ包
admin01用户AS-REP包
wangwu用户AS-REQ包
wangwu用户ASREP包报错为密码不对
test用户AS-REQ包
test用户AS-REP包,认证成功包
域内密码喷洒攻击防御
由于域内密码喷洒是通过发送大量的AS-REQ包,根据返回包的内容判断密码是否正确,因此可以通过以下方法进行检测
1.流量层面:可以通过检测同一IP在短时间内发送是否发送了大量的AS-REQ包来判断。如果同一个IP在短时间内发送大量的AS-REQ包(如1min内大于30个AS-REQ包)则可以判断为异常
2.日志层面:当口令爆破成功时,会产生windows日志为事件ID4768日志且结果代码为0x0的审核成功的kerberos身份验证服务事件日志。而当口令爆破失败时,默认情况下并不记录任何日志,因此日志层面不太好检测
针对域密码喷洒攻击,可以要求员工设置强口令域密码,这对于域密码喷洒攻击有很好的防御作用
注意:默认情况下,windows系统并不会记录用户名正确但密码错误发起的AS-REQ包的日志。如果想要开启此记录,需要在组策略中配置审核策略和高级策略。日志记录还和通信KDC有关,如果域中存在多个域控,则在不同的域控上记录日志不相同,并不是每个KDC上都有记录所有日志。
标签:用户名,渗透,REQ,用户,密码,详解,喷洒,日志 From: https://www.cnblogs.com/o-O-oO/p/18589633原创 起凡安全