域内用户枚举&密码喷洒
域内用户枚举
正常域用户登录主机,我们可以通过 "net user /domain"来列举出域内的用户。但是当我们用非域用户进行登录时,是不能使用 "net user /domain"这条命令的。或者当主机不在域内但是能与域控通信时,以上两种情况我们可以通过以下方法对域内用户进行枚举。
枚举原理
Kerberos本身是一种基于身份认证的协议,在 Kerberos 协议认证的 第一阶段AS-REQ ,当用户不存在时,返回包提示错误。当用户名存在,密码正确和密码错误时,AS-REP的返回包不一样。所以可以利用这点,对域内进行域用户枚举和密码喷洒攻击。
在AS-REQ阶段客户端向AS发送用户名,AS对用户名进行验证,用户存在和不存在返回的数据包不一样
三种状态的错误代码分别为:
KRB5DC_ERR_PREAUTH_REQUIRED 需要额外的预认证(用户存在)
KRB5DC_ERR_CLIENT_REVOKED 客户端凭证已被吊销(禁用 )
KRB5DC_ERR_C_PRINCIPAL_UNKNOWN 在Kerberos数据库中找不到客户端(不存在)
使用EnumADUser
python2 EnumADUser.py 10.211.55.30 hacker user.txt tcp
python2 EnumADUser.py 10.211.55.30 hacker user.txt udp
#10.211.55.30为域控IP
使用kerbrute
./kerbrute_darwin_amd64 userenum --dc 10.211.55.30 -d hacker user.txt
密码喷洒攻击
在常规的爆破中,我们都是先用很多密码去碰撞一个账号,这样很容易导致账号被锁定。而密码喷洒就是先用一个密码去碰撞很多账号,此方法能有效的避免账号被锁定的问题
获取了域用户后,进行密码喷洒
喷洒原理
在确认用户存在后,客户端又会发送一个AS-REQ请求,如果密码正确,则返回AS-REP。否则返回 KRB5KDC_ERP_PREAUTH_FAILED
使用EnumADUser
python ADPwdSpray.py 10.211.55.30 hacker user.txt clearpassword 1qaz@WSX tcp
python ADPwdSpray.py 10.211.55.30 hacker user.txt clearpassword 1qaz@WSX udp
环境问题没成功
使用kerbrute
./kerbrute_darwin_amd64 passwordspray --dc 10.211.55.30 -d hacker.lab user.txt 1qaz@WSX
本文来自博客园,作者:九天揽月丶,转载请注明原文链接:https://www.cnblogs.com/-meditation-/articles/16580338.html