kerberos常见攻击方式和日志特征
本文由
创作,已纳入「FreeBuf原创奖励计划」,未授权禁止转载
kerberos介绍
Kerberos 是一种安全认证协议,后来被集成到 Windows server2000 系统中,用来替代旧的 NTLM 认证方式。它现在是AD 中较为常用得认证方法。在 Kerberos 系统里密钥分发机构(KDC),作用为:发放和验证票据。分发的票据可在网络中的资源互相确认身份来进行通信
kerberos认证过程
Kerberos 认证协议依赖于两个主要的服务:身份验证服务(Authentication Service, AS)和票证授予服务(Ticket Granting Service, TGS)。以下是这两个服务在认证过程中的作用:
- 身份验证服务(AS):用户的身份认证成功,AS 会生成一个票证授予票证(TGT),TGT 由 AS 使用其共享密钥进行加密,只有 TGS 可以解密。这个 TGT 将用于后续请求其他服务的票证。
- 票证授予服务(TGS):用户可使用tgt获取服务的票证(Service Ticket),来访问特定服务器或服务获取资源
- Kerberos 数据库:存储用户密码hash在ntds.dit中,管理这个资源的账户为krbtgt。
下图为认证过程
常见的kerberos攻击
1、用户名枚举
攻击复现
有用kerberos认证的时候账户名的存在与否返回的状态不同所以可以枚举出有效用户,从以下抓包可以看出
sudo nmap -p88 --script krb5-enum-users --script-args krb5-enum-users.realm='win',userdb=/home/kali/Desktop/user.txt 192.168.8.151
_ws.col.protocol == "KRB5"
不同的返回状态对应不同的用户状态,如下:
用户状态 | Kerberos错误 |
账户存在且正常使用 | KDC_ERR_PREAUTH_REQUIRED - 需要预认证 |
锁定/禁用 | KDC_ERR_CLIENT_REVOKED - 客户端凭证已被吊销 |
不存在的账户 | KDC_ERR_C_PRINCIPAL_UNKNOWN - 在Kerberos数据库中找不到客户端 |
日志特征
在域控设备的安全日志中可以观察id为4768的事件,观察字符串Status的值会记录不同的状态:
状态码 |
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录