必看!工具缺陷
berbrute工具当使用密码喷洒功能的时候会导致一个问题,密码参数作为独立一个参数会被密码本身存在的特殊字符中断,比如#,$,@一类的东西。
解决方案是先用用户枚举看到用户都有什么之后,用密码爆破把想要喷洒的密码放在文本文件中,就可以实现
用户枚举(UserEnum)
原理
在AS_REQ过程中传递的用户信息在AD中存在与否,AS给返回的状态信息不一致,存在的用户还会额外返回e-data数据
-
三种状态码
- KRB5DC_ERR_PREAUTH_REQUIRED需要额外的预认证(用户存在)
- KRB5DC_ERR_CLIENT_REVOKED客户端凭证已被吊销(禁用 )
- KRB5DC_ERR_C_PRINCIPAL_UNKNOWN在Kerberos数据库中找不到客户端(不存在)
攻击原理
AS_REQ包配置中有两个和用户枚举相关的信息,一个是pre-authentication data 使用client hash加密时间戳,另一个client info包含用户信息。
而我们在进行用户枚举的时候只需要发送client info而不需要发送pre-authentication,因此返回包可以起到在不知道永辉是否存在和不知道密码的情况下,枚举用户的作用。
攻击手段
工具我会放在最后,有需要自取
1.直接使用kerbrute工具
那个指定dc建议加上,不加有概率会卡死
./kerbrute_windows_amd64.exe userenum --dc 10.10.10.10 -d de1ay.com usernames.txt
python2 EnumADUser.py 10.10.10.10 de1ay.com usernames.txt tcp
密码喷洒(Password Spraying)
原理
写作密码喷洒其实就是密码复用,当获