在攻击 Active Directory 域时,直接针对账号通常是一个很好的起点。这可能为攻击者提供初始访问权限,并帮助其进行横向移动操作。最简单的获取账户控制的方法是进行密码猜测或密码喷洒攻击。这类攻击的效果通常取决于用户的安全意识水平。
然而,通常会有一些技术性防护措施到位,迫使攻击者在密码尝试的次数和速度之间做出权衡。
为了更好地调整攻击策略,攻击者可以获取目标系统的密码策略。这些策略有时可以通过空会话(即 7.MS-RPC > 2.2. 空会话 或 LDAP 匿名绑定)来枚举获得。
在类 UNIX 系统中,有多种工具可以用来获取密码策略,例如:
# polenum(通过 MS-RPC 获取密码策略)
polenum -d $DOMAIN -u $USER -p $PASSWORD -d $DOMAIN
# netexec(通过 MS-RPC 获取密码策略)
nxc smb $DOMAIN_CONTROLLER -d $DOMAIN -u $USER -p $PASSWORD --pass-pol
# ldapsearch-ad(通过 LDAP 获取密码策略)
ldapsearch-ad.py -l $LDAP_SERVER -d $DOMAIN -u $USER -p $PASSWORD -t all
# enum4linux-ng(通过 MS-RPC 获取密码策略)
enum4linux-ng -P -w -u $USER -p $PASSWORD $DOMAIN_CONTROLLER
# 从加入域的机器上,可以使用 net 命令获取密码策略
net accounts
net accounts /domain
# 从未加入域的机器上,可以使用 PowerView(PowerShell 工具)获取密码策略
Get-DomainPolicy
对于能触发账户锁定机制的账号,适合用 SprayHound 这种凭证喷洒攻击工具。因为喷洒攻击通常尝试少量密码,避免触发锁定机制,适合有锁定保护的账号环境。
对于没有账户锁定机制的账号,可以直接用 Kerbrute 进行暴力破解,因为不存在因多次失败而被锁定的问题,可以尽可能多地尝试密码。