kerbeos暴力破解
1. 原理
- 用户发起登录请求时,客户端会向认证服务器(AS)发送一个包含用户名和密码的认证请求
- 认证服务器的任务是验证用户名和密码,若验证通过,则返回一个 TGT(票据授予票据)
- 即使密码错误也会提示用户名是否正确(可以帮助我们爆破出域内的用户)
2. 作用
- 在无域内账户时,爆破可以帮助我们获取到有效的域内用户
3. 优点
- 执行攻击不需要用到域帐户,只需连接到 KDC 。
- 使用
Kerberos pre-auth bruteforcing的速度更快 - Kerberos 预身份验证的错误不会在 Active Directory 中记录为正常登录失败事件(4625),而是记录在 Kerberos 预身份验证失败的特定日志里(4771)。
- Kerberos 在输入账号时就算密码错误,也会提示用户名是否正确,这样的话我们就不必再去枚举用户名了。
- 在 Kerberos 暴力破解中,还可以在不需要预身份验证的情况下发现用户帐户,这对于执行 AS-REP-Roasting攻击非常有用。
由于没有域用户的口令,所以无法通过LDAP协议枚举出所有域用户,而且使用LDAP协议进行暴力破解时会产生日志(4625 - An account failed to log on)
4. 攻击流程
4.1. 用户枚举
kerbrute userenum --dc 192.168.52.138 -d god.org user.txt
Note
参数含义
-userenum:用户枚举模式
--dc:指定域控ip
-d:指定域名
-user.txt:用户名字典文件,用户名可不加域名后缀
4.2. 密码枚举
kerbrute.exe passwordspray --dc 192.168.52.138 -d god.org user.txt P@ss1234
kerbrute.exe bruteuser --dc 192.168.52.138 -d god.org pass.txt administrator
Note
参数含义
-passwordspray:密码枚举模式
--dc:指定域控ip
-d:指定域名
-user.txt:用户名字典文件,用户名可不加域名后缀
5. 防御
- 启用 Kerberos 预认证(Pre-authentication)
- 限制失败认证尝试次数
- 设置强密码
- 启用多因素认证(MFA)