SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
mimikatz 2.0
Benjamin DELPY `gentilkiwi`
Petit programme
Qui suis-je ? Pourquoi mimikatz ?
mimikatz 2.0 et sekurlsa
Focus sur Windows 8.1 et 2012r2
Kerberos & authentification forte
Questions / Réponses (si je les ai !)
Et bien sur, des démos tout au long…
(et des stickers)
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 2
Qui suis-je ? Pourquoi mimikatz ?
Benjamin DELPY `gentilkiwi`
– Kiwi addict ;
– feignant efficace ;
`mimikatz`
– est né en 2007 ;
– n’est pas un outil de hacking (si si !) ;
– est codé selon mes besoins personnels ;
– interagit avec les composants de sécurité de Windows ;
– permet de prouver certains concepts de sécurité ;
• Avez-vous déjà essayé d’exposer des risques « théoriques » et d’obtenir des
réactions ? des décisions ? (des budgets ?)
– essaye de suivre les évolutions de Microsoft ;
– n’est pas assez documenté ! (je sais…)
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 3
mimikatz 2.0
Recodé entièrement en C, en utilisant les runtimes système (≠ VC9, 10…)
– Codage plus strict (no goto ;))
– Plus léger (175 ko signé)
– Gère de manière relativement transparente la mémoire courante/les processus/les
dumps ainsi que l’accès au registre/aux hives.
Fonctionne sur XP/2003, Vista/2008, Seven/2008r2, 8/2012 et 8.1/2012r2
– x86 & x64 ;)
– plus de support de Windows 2000 depuis la version 1.0
Inclus deux autres composants non obligatoires :
1. mimidrv ; un driver permettant d’interagir avec le noyau de Windows (hooks, tokens,
process…)
2. mimilib ; une librairie contenant quelques joyeusetés :
• AppLocker bypass ;
• Package d’authentification ;
• Filtre de changement de mot de passe ;
• mimikatz::sekurlsa sous forme d’extension pour WinDBG.
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 4
mimikatz :: sekurlsa
Fonctionnement de LSA (niveau )
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 5
LsaSSWinLogon
Authentication
Packages
msv1_0
tspkg
wdigest
livessp
kerberos
Authentication
msv1_0
kerberos
SAM
Challenge
Response
user:domain:password
PLAYSKOOL
mimikatz :: sekurlsa
Fonctionnement de LSA (niveau )
Les packages d’authentification :
– prennent les credentials de l’utilisateur ;
– font à leur sauce (calcul de hash, négociation de ticket…) ;
– gardent en mémoire assez de données pour calculer les réponses aux
challenges (Single Sign On).
• Dans certains cas! Ex : LiveSSP n’a pas de raisons de conserver de données lors d’une
authentification sur le domaine par carte à puce.
Si nous récupérons les données, puis les injectons dans une autre
session de LSASS, nous évitons l’authentification, tout en offrant
l’opportunité aux packages de répondre aux challenges.
C’est le principe du « Pass-the-hash »
– En fait, du « Pass-the-* »
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 6
PLAYSKOOL
mimikatz :: sekurlsa
Qu’est ce donc que cette diablerie ?
Ce module de mimikatz lit des données depuis le service SamSs
(plus communément appelé LSASS) ou depuis un dump mémoire !
Le module sekurlsa récupère :
– MSV1_0 hash & clés
– TsPkgmot de passe
– WDigest mot de passe
– LiveSSP mot de passe
– Kerberos mot de passe, tickets et code pin
– SSP mot de passe
Il permet aussi le :
– pass-the-hash (écriture en mémoire)
– pass-the-ticket (API officielle)
• via un sous module Kerberos ;)
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 7
mimikatz :: sekurlsa
demo ! - sekurlsa::logonpasswords
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 8
mimikatz :: sekurlsa
LsaEncryptMemory
Tous les mots de passe sont dans la mémoire du processus LSASS,
chiffrés, mais de manière réversible
Le chiffrement est symétrique, et les clés sont dans la mémoire du
processus LSASS
– Cela revient à chiffrer un fichier ZIP, et l’envoyer par mail avec son mot de passe…
– Le chiffrement est effectué par LsaProtectMemory, le déchiffrement LsaUnprotectMemory
Les fonctions de cryptographiques reposent sur LsaEncryptMemory
Selon la taille du secret, l’algorithme et les clés utilisés sont différentes :
NT5 NT6
– RC4 – 3DES
– DESx – AES
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 9
g_pRandomKey
g_cbRandomKey
lsass
lsasrv
mimikatz
lsasrv/emul
copy…
h3DesKey
g_Feedback
g_pDESXKey
hAesKey
InitializationVector
mimikatz :: sekurlsa
memo
Security Packages
Protection Keys
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 10
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
LIST_ENTRY
ULONG
ssp msv1_0!SspCredentialList LIST_ENTRY
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
mimikatz :: sekurlsa
workflow
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 11
for each session
typedef struct _KIWI_struct {
LUID LocallyUniqueIdentifier;
[…]
LSA_UNICODE_STRING UserName;
LSA_UNICODE_STRING Domaine;
LSA_UNICODE_STRING Password;
[…]
} KIWI_struct, *PKIWI_struct;
module!symbol
search list/AVL for LUID
KIWI_struct
Credentials
in clear !
lsasrv!LogonSessionList
lsasrv!LogonSessionListCount
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
LIST_ENTRY
ULONG
ssp msv1_0!SspCredentialList LIST_ENTRY
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
mimikatz :: sekurlsa
demo ! - sekurlsa::logonpasswords
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 12
mimikatz
Focus sur Windows 8.1 et 2012r2
Devant toutes ces informations disponibles, Microsoft a réagi avec Windows 8.1
et sa déclinaison serveur, Windows 2012r2.
“In Windows Server 2012 R2 and Windows 8.1, new credential protection and domain
authentication controls have been added to address credential theft.”
– http://technet.microsoft.com/library/dn344918.aspx#BKMK_CredentialsProtectionManagement
“Restricted Admin mode for Remote Desktop Connection”
Empêche les credentials d’être envoyés sur le serveur distant
Permet de s’authentifier par « pass-the-hash » et « pass-the-ticket » via CredSSP
“LSA Protection”
Empêche l’accès à la mémoire du processus LSASS (protected process)
Est contournée par un simple pilote
“Protected Users security group”
Plus de NTLM, WDigest, CredSSP, fini la délégation et le SSO... Kerberos renforcé seulement !
Les tickets Kerberos peuvent encore être récupérés, et rejoués…14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 13
mimikatz
Focus sur Windows 8.1 et 2012r2
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 14
.#####. mimikatz 2.0 alpha (x64) release "Kiwi en C" (Jan 31 2014 21:57:34)
.## ^ ##.
## /  ## /* * *
##  / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
'## v ##' http://blog.gentilkiwi.com/mimikatz (oe.eo)
'#####' with 14 modules * * */
Primary CredentialKeys tspkg wdigest kerberos livessp ssp dpapi
LM NTLM SHA1 NTLM SHA1 Root DPAPI off on off on pass 1 PIN 4 tickets
Windows XP/2003
Local Account 2
Domain Account 2 5
Windows Vista/2008 & 7/2008r2
Local Account
Domain Account
Windows 8/2012
Microsoft Account
Local Account
Domain Account
Windows 8.1/2012r2
Microsoft Account 3 3
Local Account 3 3
Domain Account 3 3
Domain Protected Users 3 3
Windows 8.1 vault for user's authentication
PIN Picture Fingerprint
code pass gestures pass pass not applicable
Microsoft Account data in memory
Local Account no data in memory
1.can need an unlock on NT5, not available with smartcard
2.tspkg is not installed by default on XP, not available on 2003
3.tspkg is off by default (but needed for SSO with remoteapps/ts), wdigest too
http://technet.microsoft.com/library/dn303404.aspx
4.PIN code when SmartCard used for native Logon
5.PIN code is NOT encrypted in memory (XP/2003)
Démonstration s’il reste
un peu de temps ;)
Dernière version sur :
http://1drv.ms/1fCWkhu
mimikatz :: kerberos
« Kerberos est un protocole d'authentification
réseau qui repose sur un mécanisme de clés
secrètes (chiffrement symétrique) et l'utilisation
de tickets »
– http://fr.wikipedia.org/wiki/
Kerberos_%28protocole%29
Deux sortes de tickets :
– TGT : représentant l’utilisateur auprès du domaine
– TGS : représentant l’utilisateur auprès d’un service sur
un nœud
Quelques ressources bien plus précises que moi :
– http://technet.microsoft.com/library/bb742516.aspx
– http://www.ietf.org/rfc/rfc4120.txt
– http://msdn.microsoft.com/library/windows/desktop/
aa378170.aspx
– http://msdn.microsoft.com/library/cc237917.aspx14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 15
mimikatz :: kerberos 1/3 authentification
Fonctionnement de Kerberos (niveau )
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 16
① AS-REQ
Je désire un ticket
pour ‘Administrateur’
sur le
domaine ‘chocolate’
② AS-REP
Voici un ticket TGT pour ‘Administrateur’ sur
le domaine ‘chocolate’
Si tu détiens ses credentials (bon mot de passe/
hash), tu pourras me demander des TGS grâce à
ta connaissance de la clé de session.
rid username ntlm
500Administrateur cc36cf7a8514893efccd332446158b1a
502krbtgt 310b643c5316c8c3c70a10cfb17e2e31
1106Equipement 57a087d98bfac9df10df27a564b77ad6
1107Utilisateur 8e3a18d453ec2450c321003772d678d5
1108serveur$ 77d4b1409b7e5b97263b0f0230f73041
Debut / Fin / Renouvellement Max
krbtgt / chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
Administrateur
PLAYSKOOL
pré-authentification
et cartes à puce/tokens
non abordées !
KDC
Debut / Fin / Renouvellement Max
krbtgt / chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
SID : S-1-5-21-a-b-c
User RID : 500 (Administrateur)
Groups RID : 520,512,519,518,572
(Admins du domaine, entreprise, …)
Dernier changmt. 04/02/2014 23:21:07
Expire Jamais
Modifiable 05/02/2014 23:21:07
krbtgt TGT
username password ntlm
Administrateur waza1234/ cc36cf7a8514893efccd332446158b1a
mimikatz :: kerberos 2/3 demande d’accès
Fonctionnement de Kerberos (niveau )
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 17
③ TGS-REQ
Je désire un ticket pour le service ‘cifs’
sur ‘serveur’ du domaine ‘chocolate’
Voici mon TGT et des informations chiffrées
avec la clé de session. J’en ai la connaissance
puisque je suis bien ‘Administrateur’.
④ TGS-REP
Voici un ticket TGS pour ‘cifs/serveur’ sur le
domaine ‘chocolate’
Si tu détiens la clé de session initiale, tu pourras
déchiffrer la clé de session du TGS et t’en servir
pour communiquer avec ‘serveur’
rid username ntlm
500Administrateur cc36cf7a8514893efccd332446158b1a
502krbtgt 310b643c5316c8c3c70a10cfb17e2e31
1106Equipement 57a087d98bfac9df10df27a564b77ad6
1107Utilisateur 8e3a18d453ec2450c321003772d678d5
1108serveur$ 77d4b1409b7e5b97263b0f0230f73041
PLAYSKOOL
KDC
Debut / Fin / Renouvellement Max
Administrateur @ chocolate.local
krbtgt / chocolate.local
Clé de session + metadata
SID : S-1-5-21-a-b-c
User RID : 500 (Administrateur)
Groups RID : 520,512,519,518,572
(Admins du domaine, entreprise, …)
Dernier changmt. 04/02/2014 23:21:07
Expire Jamais
Modifiable 05/02/2014 23:21:07
krbtgt
TGT
req-data
Clé de session
Debut / Fin / Renouvellement Max
cifs/serveur @ chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
Clé de session
Debut / Fin / Renouvellement Max
cifs/serveur @ chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
SID : S-1-5-21-a-b-c
User RID : 500 (Administrateur)
Groups RID : 520,512,519,518,572
(Admins du domaine, entreprise, …)
Dernier changmt. 04/02/2014 23:21:07
Expire Jamais
Modifiable 05/02/2014 23:21:07
serveur$ TGS
mimikatz :: kerberos 3/3 accès
Fonctionnement de Kerberos (niveau )
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 18
e Hello ‘serveur’, voici un TGS t’étant destiné. Celui-ci t’indique le KDC m’a reconnu en tant
qu‘Administrateur’ sur le domaine ‘chocolate’ pour accéder à ton service ‘cifs’.
Ceci avec tous les avantages que le KDC me reconnait (groupes, privilèges, horaires…)
Tu pourras le vérifier car tu connais les credentials qui ont servis à le chiffrer, et donc
valider la clé de session et ma requête.
PLAYSKOOL
rid username ntlm
1108serveur$ 77d4b1409b7e5b97263b0f0230f73041
Debut / Fin / Renouvellement Max
cifs/serveur @ chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
SID : S-1-5-21-a-b-c
User RID : 500 (Administrateur)
Groups RID : 520,512,519,518,572
(Admins du domaine, entreprise, …)
Dernier changmt. 04/02/2014 23:21:07
Expire Jamais
Modifiable 05/02/2014 23:21:07
serveur$ TGS
req-data
Clé de session
mimikatz :: kerberos
pass-the-ticket
Vol de TGT – ticket d’identité complète d’un utilisateur
Vol de TGS – ticket d’accès à un service sur un serveur particulier
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 19
KDC
Debut / Fin / Renouvellement Max
cifs/serveur @ chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
Clé de session
Debut / Fin / Renouvellement Max
cifs/serveur @ chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
SID : S-1-5-21-a-b-c
User RID : 500 (Administrateur)
Groups RID : 520,512,519,518,572
(Admins du domaine, entreprise, …)
Dernier changmt. 04/02/2014
23:21:07
Expire Jamais
Modifiable 05/02/2014 23:21:07
serveur1$ TGS
Debut / Fin / Renouvellement Max
krbtgt / chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
SID : S-1-5-21-a-b-c
User RID : 500 (Administrateur)
Groups RID : 520,512,519,518,572
(Admins du domaine, entreprise, …)
Dernier changmt. 04/02/2014 23:21:07
Expire Jamais
Modifiable 05/02/2014 23:21:07
krbtgt
TGT
Debut / Fin / Renouvellement Max
krbtgt / chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
Debut / Fin / Renouvellement Max
cifs/serveur @ chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
Clé de session
Debut / Fin / Renouvellement Max
cifs/serveur @ chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
SID : S-1-5-21-a-b-c
User RID : 500 (Administrateur)
Groups RID : 520,512,519,518,572
(Admins du domaine, entreprise, …)
Dernier changmt. 04/02/2014
23:21:07
Expire Jamais
Modifiable 05/02/2014 23:21:07
serveur2$ TGS
Debut / Fin / Renouvellement Max
cifs/serveur @ chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
Debut / Fin / Renouvellement Max
cifs/serveur @ chocolate.local
Administrateur @ chocolate.local
Clé de session + metadata
SID : S-1-5-21-a-b-c
User RID : 500 (Administrateur)
Groups RID : 520,512,519,518,572
(Admins du domaine, entreprise, …)
Dernier changmt. 04/02/2014
23:21:07
Expire Jamais
Modifiable 05/02/2014 23:21:07
serveur1$ TGS
mimikatz :: kerberos
demo ! - sekurlsa::tickets
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 20
mimikatz :: kerberos
Golden Ticket – quelques rappels…
Les TGT ont une durée de vie limitée à 10h et peuvent être renouvelables
– durée configurable
Les TGT ne sont rien de plus que des TGS pour le service ‘krbtgt’ à destination
des serveurs KDC d’un domaine
De ce fait, ils sont chiffrés avec une clé commune à chaque KDC : le hash du
compte fictif ‘krbtgt’
Pour des raisons relativement obscures, cette clé n’est pas renouvelée
automatiquement
– L’utilisation de l’historique de l’ancienne clé permettrait pourtant un renouvellement glissant
Que pourrions nous donc bien faire d’une clé « permanente » disponible dans
l’AD pouvant créer des TGT ?
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 21
Nom d’utilisateur krbtgt
Commentaire Compte de service du centre de distribution de clés
Compte : actif Non
rid username ntlm
502krbtgt 310b643c5316c8c3c70a10cfb17e2e31
mimikatz :: kerberos
Golden Ticket – Création d’un TGT (extrait)
Client name : Administrateur
Service name : krbtgt/chocolate.local
Validité
– Start Time 14/03/2014 16:25:00
– End Time 14/03/2024 16:25:00
…
Données d’autorisation Microsoft (PAC)
– Le nom d’utilisateur : Administrateur
– Le SID du domaine
• S-1-5-21-130452501-2365100805-3685010670
– Le compte représenté par le ticket
• 500 Administrateur
– La liste des groupes
• 512 Admins du domaine
• 519 Administrateurs de l’entreprise
• 518 Administrateurs du schéma
• …
– …
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 22
rid username ntlm
502krbtgt 310b643c5316c8c3c70a10cfb17e2e31
mimikatz :: kerberos
demo ! - kerberos::golden
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 23
mimikatz
quoi d’autre ?
Récupérer les secrets système/utilisateurs (mots de passe
enregistrés)
Exporter les clés/certificats non exportables (logiciels CAPI & CNG)
Arrêter l’Observateur d’évènements…
Eviter Applocker / SRP
Manipuler quelques Handles
Patcher Terminal Server
Eviter certaines GPO
Driver
– Jouer avec les Tokens & Privilèges
– Afficher la SSDT x86 & x64
– Lister les MiniFiltres
– Lister les Notifications (process/thread/image/registry)
– Lister les hooks et procédures associés aux Objects14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 24
mimikatz :: sekurlsa
Que pouvez-vous faire ?
Première approche
– Pas d’accès physique aux postes / serveurs
• Chiffrement des volumes / disques dans une moindre mesure
– Pas de droits admin ! (surtout pour les VIP) - Pas de privilège Debug !
– Désactivation des comptes admin locaux
– Mot de passe fort (haha, je plaisante bien sur J)
– Eviter les connexions interactives (privilégier les connexions réseaux via RPC)
– Auditer, auditer et auditer…!
– Utiliser des réseaux séparés, des forêts dédiées pour les tâches d’administration !
Plus en profondeur
– Forcer l’authentification forte (SmartCard & Token) : $ / €
– Diminuer la durée de vie des tickets Kerberos
– Désactiver la délégation
– Désactiver LM et NTLM (forcer Kerberos)
– Pas de Biométrie ni de SSO « exotique »
– Laisser la possibilité de ne plus être rétro-compatible
A étudier
– TPM sous Windows 8.1
• Virtual SmartCard semble prometteur
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 25
Déléguer les opérations cryptographiques
à des HSM / Kerberos Box.
mimikatz
That’s all Folks!
Merci à :
– la St’Hack, son staff, ses partenaires…
• en particulier Florian Gaultier pour son invitation ;
– Microsoft pour changer certaines mauvaises habitudes et faire
évoluer quelques modes de fonctionnement J ;
– la communauté pour ses idées (∞) ;
– les proches me supportant soutenant tous les jours (oe.eo)
– vous, pour votre attention et vos gentils messages !
Questions, remarques ?
àJ’accepte un petit verre ;)
àQuelques exemples de commandes mimikatz sont en annexe =)
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 26
Blog, Code Source & Contact
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 27
blog http://blog.gentilkiwi.com
mimikatz http://blog.gentilkiwi.com/mimikatz
source https://code.google.com/p/mimikatz/
contact @gentilkiwi / benjamin@gentilkiwi.com
mimikatz :: Annexe 1
packages d’authentification
TsPkg – facilite les connexions au RemoteApps et TerminalServer
en envoyant le mot de passe via CredSSP…
WDigest – répond par challenge/response
le Realm du serveur étant variable, le mot de passe doit être disponible pour recalculer le hash.
LiveSSP – Compte Microsoft pour connexions avec compte Live
Kerberos – système de tickets d’accès à des services en
domaine
MSV1_0 – Pour répondre en challenge/response sur LM/NTLM
Le secret partagé reste le(s) hash.
SSP – Pas véritablement un package d’authentification, mais
maintient une table des connexions distantes explicites…
14/03/2014 Benjamin DELPY `gentilkiwi` @ OSSIR 02/2013 - benjamin@gentilkiwi.com ; blog.gentilkiwi.com 28
mimikatz :: Annexe 2
quelques commandes 1/2
log
privilege::debug
sekurlsa::logonpasswords
sekurlsa::tickets /export
crypto::capi
crypto::cng
crypto::certificates /export
crypto::certificates /export /systemstore:CERT_SYSTEM_STORE_LOCAL_MACHINE
crypto::keys /export
crypto::keys /machine /export
vault::cred
vault::list
token::elevate
vault::cred
vault::list
lsadump::sam
lsadump::secrets
lsadump::cache
token::revert
exit14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 29
mimikatz :: Annexe 2
quelques commandes 2/2
sekurlsa::logonpasswords
sekurlsa::pth /user:Administrateur /domain:winxp /ntlm:f193d757b4d487ab7e5a3743f038f713
/run:cmd
sekurlsa::tickets /export
kerberos::list /export
kerberos::ptt c:chocolate.kirbi
kerberos::golden /admin:administrateur /domain:chocolate.local /sid:S-1-5-21-130452501-
2365100805-3685010670 /krbtgt:310b643c5316c8c3c70a10cfb17e2e31 /ticket:chocolate.kirbi
process::start "mstsc /restrictedadmin /v:srvcharly.chocolate.local"
14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 30

Contenu connexe

En vedette

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
 
1º la pedagogía que vendrá
1º la pedagogía que vendrá1º la pedagogía que vendrá
1º la pedagogía que vendráAdalberto
 
Retos y oportunidades en África
Retos y oportunidades en ÁfricaRetos y oportunidades en África
Retos y oportunidades en ÁfricaEnrique Farez
 
Chroniques de Fouesnant - yg-nunz
Chroniques de Fouesnant -  yg-nunzChroniques de Fouesnant -  yg-nunz
Chroniques de Fouesnant - yg-nunzFoenizella.com
 
140422 Museomix Basse-Normandie aperomix 1
140422 Museomix Basse-Normandie aperomix 1140422 Museomix Basse-Normandie aperomix 1
140422 Museomix Basse-Normandie aperomix 1Coralie Galmiche
 
09 2014.03.27 conférence obe emploi-chômage bxl sud-est
09   2014.03.27 conférence obe emploi-chômage bxl sud-est09   2014.03.27 conférence obe emploi-chômage bxl sud-est
09 2014.03.27 conférence obe emploi-chômage bxl sud-estdynamicemploi
 
Por qué la internacionalización ya no es una decisión que pueda posponerse
Por qué la internacionalización ya no es una decisión que pueda posponersePor qué la internacionalización ya no es una decisión que pueda posponerse
Por qué la internacionalización ya no es una decisión que pueda posponerseEnrique Farez
 
No culpes a_nadie_de_pablo_neruda
No culpes a_nadie_de_pablo_nerudaNo culpes a_nadie_de_pablo_neruda
No culpes a_nadie_de_pablo_nerudaAdalberto
 
Présentation dream tim 2014
Présentation dream tim 2014Présentation dream tim 2014
Présentation dream tim 2014PESLERBE
 
Ander profesorado
Ander profesoradoAnder profesorado
Ander profesoradoAdalberto
 
Laexpresindelconocimientocientfico 090623120646-phpapp01
Laexpresindelconocimientocientfico 090623120646-phpapp01Laexpresindelconocimientocientfico 090623120646-phpapp01
Laexpresindelconocimientocientfico 090623120646-phpapp01Adalberto
 
Evaluac ión
Evaluac iónEvaluac ión
Evaluac iónAdalberto
 
Moscu rusia otra distinta
Moscu rusia otra distintaMoscu rusia otra distinta
Moscu rusia otra distintaAdalberto
 
Convention agefice-of-mallette du dirigeant-2015 validée
Convention agefice-of-mallette du dirigeant-2015 validéeConvention agefice-of-mallette du dirigeant-2015 validée
Convention agefice-of-mallette du dirigeant-2015 validéeMP CONSULTANTS
 
Ecoles du Pays de Fouesnant - uh37kl
Ecoles du Pays de Fouesnant -  uh37klEcoles du Pays de Fouesnant -  uh37kl
Ecoles du Pays de Fouesnant - uh37klFoenizella.com
 
Chateau & seignerie de Fouesnant z-qe7kp
Chateau &  seignerie de Fouesnant z-qe7kpChateau &  seignerie de Fouesnant z-qe7kp
Chateau & seignerie de Fouesnant z-qe7kpFoenizella.com
 
Talleres de periodismo emprendedor
Talleres de periodismo emprendedorTalleres de periodismo emprendedor
Talleres de periodismo emprendedorEnrique Farez
 
Nie r hills of radiant wind ver. 2.0
Nie r hills of radiant wind ver. 2.0Nie r hills of radiant wind ver. 2.0
Nie r hills of radiant wind ver. 2.0trogdor0090
 

En vedette (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
 
Convenio de
Convenio deConvenio de
Convenio de
 
1º la pedagogía que vendrá
1º la pedagogía que vendrá1º la pedagogía que vendrá
1º la pedagogía que vendrá
 
Retos y oportunidades en África
Retos y oportunidades en ÁfricaRetos y oportunidades en África
Retos y oportunidades en África
 
Chroniques de Fouesnant - yg-nunz
Chroniques de Fouesnant -  yg-nunzChroniques de Fouesnant -  yg-nunz
Chroniques de Fouesnant - yg-nunz
 
140422 Museomix Basse-Normandie aperomix 1
140422 Museomix Basse-Normandie aperomix 1140422 Museomix Basse-Normandie aperomix 1
140422 Museomix Basse-Normandie aperomix 1
 
09 2014.03.27 conférence obe emploi-chômage bxl sud-est
09   2014.03.27 conférence obe emploi-chômage bxl sud-est09   2014.03.27 conférence obe emploi-chômage bxl sud-est
09 2014.03.27 conférence obe emploi-chômage bxl sud-est
 
Por qué la internacionalización ya no es una decisión que pueda posponerse
Por qué la internacionalización ya no es una decisión que pueda posponersePor qué la internacionalización ya no es una decisión que pueda posponerse
Por qué la internacionalización ya no es una decisión que pueda posponerse
 
No culpes a_nadie_de_pablo_neruda
No culpes a_nadie_de_pablo_nerudaNo culpes a_nadie_de_pablo_neruda
No culpes a_nadie_de_pablo_neruda
 
Présentation dream tim 2014
Présentation dream tim 2014Présentation dream tim 2014
Présentation dream tim 2014
 
Ander profesorado
Ander profesoradoAnder profesorado
Ander profesorado
 
Laexpresindelconocimientocientfico 090623120646-phpapp01
Laexpresindelconocimientocientfico 090623120646-phpapp01Laexpresindelconocimientocientfico 090623120646-phpapp01
Laexpresindelconocimientocientfico 090623120646-phpapp01
 
Evaluac ión
Evaluac iónEvaluac ión
Evaluac ión
 
Moscu rusia otra distinta
Moscu rusia otra distintaMoscu rusia otra distinta
Moscu rusia otra distinta
 
Convention agefice-of-mallette du dirigeant-2015 validée
Convention agefice-of-mallette du dirigeant-2015 validéeConvention agefice-of-mallette du dirigeant-2015 validée
Convention agefice-of-mallette du dirigeant-2015 validée
 
Ecoles du Pays de Fouesnant - uh37kl
Ecoles du Pays de Fouesnant -  uh37klEcoles du Pays de Fouesnant -  uh37kl
Ecoles du Pays de Fouesnant - uh37kl
 
Chateau & seignerie de Fouesnant z-qe7kp
Chateau &  seignerie de Fouesnant z-qe7kpChateau &  seignerie de Fouesnant z-qe7kp
Chateau & seignerie de Fouesnant z-qe7kp
 
Talleres de periodismo emprendedor
Talleres de periodismo emprendedorTalleres de periodismo emprendedor
Talleres de periodismo emprendedor
 
Démocratie Locale
Démocratie LocaleDémocratie Locale
Démocratie Locale
 
Nie r hills of radiant wind ver. 2.0
Nie r hills of radiant wind ver. 2.0Nie r hills of radiant wind ver. 2.0
Nie r hills of radiant wind ver. 2.0
 

Similaire à StHack 2014 - Benjamin "@gentilkiwi" Delpy Mimikatz

Qui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeQui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeDamien Seguy
 
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et JenkinsBuild automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et JenkinsCocoaHeads France
 
Quand on change de code, on prévient !(1)
Quand on change de code, on prévient !(1)Quand on change de code, on prévient !(1)
Quand on change de code, on prévient !(1)Guillaume Renaudin
 
Reverse Engineering d'un ransomware
Reverse Engineering d'un ransomwareReverse Engineering d'un ransomware
Reverse Engineering d'un ransomwareNinaSAMMUT
 
GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...
GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...
GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...AZUG FR
 
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...Microsoft Technet France
 
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...Microsoft Décideurs IT
 
Partagez votre code et non vos secrets
Partagez votre code et non vos secretsPartagez votre code et non vos secrets
Partagez votre code et non vos secretsOpen Source Experience
 
Sthack 2015 - David Berard & Vincent Fargues - Attack the cache to get some cash
Sthack 2015 - David Berard & Vincent Fargues - Attack the cache to get some cashSthack 2015 - David Berard & Vincent Fargues - Attack the cache to get some cash
Sthack 2015 - David Berard & Vincent Fargues - Attack the cache to get some cashStHack
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Jean Gabès
 
aMS Strasbourg Cybersec et M365 en action 14102021
aMS Strasbourg Cybersec et M365 en action 14102021aMS Strasbourg Cybersec et M365 en action 14102021
aMS Strasbourg Cybersec et M365 en action 14102021Sébastien Paulet
 
aMS Strasbourg CyberSec et M365 en action
aMS Strasbourg CyberSec et M365 en actionaMS Strasbourg CyberSec et M365 en action
aMS Strasbourg CyberSec et M365 en actionClément SERAFIN
 
Cryptographie 101 Pour les programmeurs (PHP)
Cryptographie 101 Pour les programmeurs (PHP)Cryptographie 101 Pour les programmeurs (PHP)
Cryptographie 101 Pour les programmeurs (PHP)Philippe Gamache
 
AKT un outil pour sécuriser vos données et documents sensibles
AKT un outil pour sécuriser vos données et documents sensiblesAKT un outil pour sécuriser vos données et documents sensibles
AKT un outil pour sécuriser vos données et documents sensiblesStephane Carrez
 
L’hygiène informatique des réseaux sociaux : bilan catastrophique
L’hygiène informatique des réseaux sociaux : bilan catastrophiqueL’hygiène informatique des réseaux sociaux : bilan catastrophique
L’hygiène informatique des réseaux sociaux : bilan catastrophiqueITrust - Cybersecurity as a Service
 
Rapport sécurité
Rapport sécuritéRapport sécurité
Rapport sécuritédihiaselma
 
Le PowerShell et la ModernAuth
Le PowerShell et la ModernAuthLe PowerShell et la ModernAuth
Le PowerShell et la ModernAuthClément SERAFIN
 

Similaire à StHack 2014 - Benjamin "@gentilkiwi" Delpy Mimikatz (20)

Qui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeQui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le code
 
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et JenkinsBuild automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
 
Quand on change de code, on prévient !(1)
Quand on change de code, on prévient !(1)Quand on change de code, on prévient !(1)
Quand on change de code, on prévient !(1)
 
Comprendre la securite web 2017
Comprendre la securite web 2017Comprendre la securite web 2017
Comprendre la securite web 2017
 
Reverse Engineering d'un ransomware
Reverse Engineering d'un ransomwareReverse Engineering d'un ransomware
Reverse Engineering d'un ransomware
 
GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...
GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...
GAB 2017 PARIS - Tester la sécurité de vos annuaires Active Directory et Azur...
 
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
 
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et...
 
Partagez votre code et non vos secrets
Partagez votre code et non vos secretsPartagez votre code et non vos secrets
Partagez votre code et non vos secrets
 
Sthack 2015 - David Berard & Vincent Fargues - Attack the cache to get some cash
Sthack 2015 - David Berard & Vincent Fargues - Attack the cache to get some cashSthack 2015 - David Berard & Vincent Fargues - Attack the cache to get some cash
Sthack 2015 - David Berard & Vincent Fargues - Attack the cache to get some cash
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
 
aMS Strasbourg Cybersec et M365 en action 14102021
aMS Strasbourg Cybersec et M365 en action 14102021aMS Strasbourg Cybersec et M365 en action 14102021
aMS Strasbourg Cybersec et M365 en action 14102021
 
aMS Strasbourg CyberSec et M365 en action
aMS Strasbourg CyberSec et M365 en actionaMS Strasbourg CyberSec et M365 en action
aMS Strasbourg CyberSec et M365 en action
 
Hackerspace jan-2013
Hackerspace jan-2013Hackerspace jan-2013
Hackerspace jan-2013
 
Cryptographie 101 Pour les programmeurs (PHP)
Cryptographie 101 Pour les programmeurs (PHP)Cryptographie 101 Pour les programmeurs (PHP)
Cryptographie 101 Pour les programmeurs (PHP)
 
AKT un outil pour sécuriser vos données et documents sensibles
AKT un outil pour sécuriser vos données et documents sensiblesAKT un outil pour sécuriser vos données et documents sensibles
AKT un outil pour sécuriser vos données et documents sensibles
 
Comprendre la securite web
Comprendre la securite webComprendre la securite web
Comprendre la securite web
 
L’hygiène informatique des réseaux sociaux : bilan catastrophique
L’hygiène informatique des réseaux sociaux : bilan catastrophiqueL’hygiène informatique des réseaux sociaux : bilan catastrophique
L’hygiène informatique des réseaux sociaux : bilan catastrophique
 
Rapport sécurité
Rapport sécuritéRapport sécurité
Rapport sécurité
 
Le PowerShell et la ModernAuth
Le PowerShell et la ModernAuthLe PowerShell et la ModernAuth
Le PowerShell et la ModernAuth
 

Plus de StHack

Sthack 2015 - Ramon Vicens & Victor Acin - Cyber threats "the reality"
Sthack 2015 - Ramon Vicens & Victor Acin - Cyber threats "the reality"Sthack 2015 - Ramon Vicens & Victor Acin - Cyber threats "the reality"
Sthack 2015 - Ramon Vicens & Victor Acin - Cyber threats "the reality"StHack
 
Sthack 2015 - Wilfrid "@WilfridBlanc" Blanc & Adrien Revol - Cybersécurité In...
Sthack 2015 - Wilfrid "@WilfridBlanc" Blanc & Adrien Revol - Cybersécurité In...Sthack 2015 - Wilfrid "@WilfridBlanc" Blanc & Adrien Revol - Cybersécurité In...
Sthack 2015 - Wilfrid "@WilfridBlanc" Blanc & Adrien Revol - Cybersécurité In...StHack
 
Sthack 2015 - Aris "@aris_ada" Adamantiadis - DUAL_EC_DRBG : Une histoire de ...
Sthack 2015 - Aris "@aris_ada" Adamantiadis - DUAL_EC_DRBG : Une histoire de ...Sthack 2015 - Aris "@aris_ada" Adamantiadis - DUAL_EC_DRBG : Une histoire de ...
Sthack 2015 - Aris "@aris_ada" Adamantiadis - DUAL_EC_DRBG : Une histoire de ...StHack
 
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...StHack
 
Sthack 2015 - Renaud "@nono2357" Lifchitz - Quantum computing in practice
Sthack 2015 - Renaud "@nono2357" Lifchitz - Quantum computing in practiceSthack 2015 - Renaud "@nono2357" Lifchitz - Quantum computing in practice
Sthack 2015 - Renaud "@nono2357" Lifchitz - Quantum computing in practiceStHack
 
StHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFG
StHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFGStHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFG
StHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFGStHack
 
StHack 2013 - Florian "@agixid" Gaultier No SQL injection but NoSQL injection
StHack 2013 - Florian "@agixid" Gaultier No SQL injection but NoSQL injectionStHack 2013 - Florian "@agixid" Gaultier No SQL injection but NoSQL injection
StHack 2013 - Florian "@agixid" Gaultier No SQL injection but NoSQL injectionStHack
 
StHack 2013 - Nicolas "@baldanos" Oberli Please insert inject more coin
StHack 2013 - Nicolas "@baldanos" Oberli Please insert inject more coinStHack 2013 - Nicolas "@baldanos" Oberli Please insert inject more coin
StHack 2013 - Nicolas "@baldanos" Oberli Please insert inject more coinStHack
 
StHack 2014 - Ninon Eyrolles Obfuscation 101
StHack 2014 - Ninon Eyrolles Obfuscation 101StHack 2014 - Ninon Eyrolles Obfuscation 101
StHack 2014 - Ninon Eyrolles Obfuscation 101StHack
 

Plus de StHack (9)

Sthack 2015 - Ramon Vicens & Victor Acin - Cyber threats "the reality"
Sthack 2015 - Ramon Vicens & Victor Acin - Cyber threats "the reality"Sthack 2015 - Ramon Vicens & Victor Acin - Cyber threats "the reality"
Sthack 2015 - Ramon Vicens & Victor Acin - Cyber threats "the reality"
 
Sthack 2015 - Wilfrid "@WilfridBlanc" Blanc & Adrien Revol - Cybersécurité In...
Sthack 2015 - Wilfrid "@WilfridBlanc" Blanc & Adrien Revol - Cybersécurité In...Sthack 2015 - Wilfrid "@WilfridBlanc" Blanc & Adrien Revol - Cybersécurité In...
Sthack 2015 - Wilfrid "@WilfridBlanc" Blanc & Adrien Revol - Cybersécurité In...
 
Sthack 2015 - Aris "@aris_ada" Adamantiadis - DUAL_EC_DRBG : Une histoire de ...
Sthack 2015 - Aris "@aris_ada" Adamantiadis - DUAL_EC_DRBG : Une histoire de ...Sthack 2015 - Aris "@aris_ada" Adamantiadis - DUAL_EC_DRBG : Une histoire de ...
Sthack 2015 - Aris "@aris_ada" Adamantiadis - DUAL_EC_DRBG : Une histoire de ...
 
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
 
Sthack 2015 - Renaud "@nono2357" Lifchitz - Quantum computing in practice
Sthack 2015 - Renaud "@nono2357" Lifchitz - Quantum computing in practiceSthack 2015 - Renaud "@nono2357" Lifchitz - Quantum computing in practice
Sthack 2015 - Renaud "@nono2357" Lifchitz - Quantum computing in practice
 
StHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFG
StHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFGStHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFG
StHack 2014 - Mario "@0x6D6172696F" Heiderich - JSMVCOMFG
 
StHack 2013 - Florian "@agixid" Gaultier No SQL injection but NoSQL injection
StHack 2013 - Florian "@agixid" Gaultier No SQL injection but NoSQL injectionStHack 2013 - Florian "@agixid" Gaultier No SQL injection but NoSQL injection
StHack 2013 - Florian "@agixid" Gaultier No SQL injection but NoSQL injection
 
StHack 2013 - Nicolas "@baldanos" Oberli Please insert inject more coin
StHack 2013 - Nicolas "@baldanos" Oberli Please insert inject more coinStHack 2013 - Nicolas "@baldanos" Oberli Please insert inject more coin
StHack 2013 - Nicolas "@baldanos" Oberli Please insert inject more coin
 
StHack 2014 - Ninon Eyrolles Obfuscation 101
StHack 2014 - Ninon Eyrolles Obfuscation 101StHack 2014 - Ninon Eyrolles Obfuscation 101
StHack 2014 - Ninon Eyrolles Obfuscation 101
 

StHack 2014 - Benjamin "@gentilkiwi" Delpy Mimikatz

  • 2. Petit programme Qui suis-je ? Pourquoi mimikatz ? mimikatz 2.0 et sekurlsa Focus sur Windows 8.1 et 2012r2 Kerberos & authentification forte Questions / Réponses (si je les ai !) Et bien sur, des démos tout au long… (et des stickers) 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 2
  • 3. Qui suis-je ? Pourquoi mimikatz ? Benjamin DELPY `gentilkiwi` – Kiwi addict ; – feignant efficace ; `mimikatz` – est né en 2007 ; – n’est pas un outil de hacking (si si !) ; – est codé selon mes besoins personnels ; – interagit avec les composants de sécurité de Windows ; – permet de prouver certains concepts de sécurité ; • Avez-vous déjà essayé d’exposer des risques « théoriques » et d’obtenir des réactions ? des décisions ? (des budgets ?) – essaye de suivre les évolutions de Microsoft ; – n’est pas assez documenté ! (je sais…) 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 3
  • 4. mimikatz 2.0 Recodé entièrement en C, en utilisant les runtimes système (≠ VC9, 10…) – Codage plus strict (no goto ;)) – Plus léger (175 ko signé) – Gère de manière relativement transparente la mémoire courante/les processus/les dumps ainsi que l’accès au registre/aux hives. Fonctionne sur XP/2003, Vista/2008, Seven/2008r2, 8/2012 et 8.1/2012r2 – x86 & x64 ;) – plus de support de Windows 2000 depuis la version 1.0 Inclus deux autres composants non obligatoires : 1. mimidrv ; un driver permettant d’interagir avec le noyau de Windows (hooks, tokens, process…) 2. mimilib ; une librairie contenant quelques joyeusetés : • AppLocker bypass ; • Package d’authentification ; • Filtre de changement de mot de passe ; • mimikatz::sekurlsa sous forme d’extension pour WinDBG. 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 4
  • 5. mimikatz :: sekurlsa Fonctionnement de LSA (niveau ) 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 5 LsaSSWinLogon Authentication Packages msv1_0 tspkg wdigest livessp kerberos Authentication msv1_0 kerberos SAM Challenge Response user:domain:password PLAYSKOOL
  • 6. mimikatz :: sekurlsa Fonctionnement de LSA (niveau ) Les packages d’authentification : – prennent les credentials de l’utilisateur ; – font à leur sauce (calcul de hash, négociation de ticket…) ; – gardent en mémoire assez de données pour calculer les réponses aux challenges (Single Sign On). • Dans certains cas! Ex : LiveSSP n’a pas de raisons de conserver de données lors d’une authentification sur le domaine par carte à puce. Si nous récupérons les données, puis les injectons dans une autre session de LSASS, nous évitons l’authentification, tout en offrant l’opportunité aux packages de répondre aux challenges. C’est le principe du « Pass-the-hash » – En fait, du « Pass-the-* » 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 6 PLAYSKOOL
  • 7. mimikatz :: sekurlsa Qu’est ce donc que cette diablerie ? Ce module de mimikatz lit des données depuis le service SamSs (plus communément appelé LSASS) ou depuis un dump mémoire ! Le module sekurlsa récupère : – MSV1_0 hash & clés – TsPkgmot de passe – WDigest mot de passe – LiveSSP mot de passe – Kerberos mot de passe, tickets et code pin – SSP mot de passe Il permet aussi le : – pass-the-hash (écriture en mémoire) – pass-the-ticket (API officielle) • via un sous module Kerberos ;) 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 7
  • 8. mimikatz :: sekurlsa demo ! - sekurlsa::logonpasswords 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 8
  • 9. mimikatz :: sekurlsa LsaEncryptMemory Tous les mots de passe sont dans la mémoire du processus LSASS, chiffrés, mais de manière réversible Le chiffrement est symétrique, et les clés sont dans la mémoire du processus LSASS – Cela revient à chiffrer un fichier ZIP, et l’envoyer par mail avec son mot de passe… – Le chiffrement est effectué par LsaProtectMemory, le déchiffrement LsaUnprotectMemory Les fonctions de cryptographiques reposent sur LsaEncryptMemory Selon la taille du secret, l’algorithme et les clés utilisés sont différentes : NT5 NT6 – RC4 – 3DES – DESx – AES 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 9 g_pRandomKey g_cbRandomKey lsass lsasrv mimikatz lsasrv/emul copy… h3DesKey g_Feedback g_pDESXKey hAesKey InitializationVector
  • 10. mimikatz :: sekurlsa memo Security Packages Protection Keys 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 10 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 LIST_ENTRY ULONG ssp msv1_0!SspCredentialList LIST_ENTRY 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
  • 11. mimikatz :: sekurlsa workflow 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 11 for each session typedef struct _KIWI_struct { LUID LocallyUniqueIdentifier; […] LSA_UNICODE_STRING UserName; LSA_UNICODE_STRING Domaine; LSA_UNICODE_STRING Password; […] } KIWI_struct, *PKIWI_struct; module!symbol search list/AVL for LUID KIWI_struct Credentials in clear ! lsasrv!LogonSessionList lsasrv!LogonSessionListCount 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 LIST_ENTRY ULONG ssp msv1_0!SspCredentialList LIST_ENTRY 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
  • 12. mimikatz :: sekurlsa demo ! - sekurlsa::logonpasswords 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 12
  • 13. mimikatz Focus sur Windows 8.1 et 2012r2 Devant toutes ces informations disponibles, Microsoft a réagi avec Windows 8.1 et sa déclinaison serveur, Windows 2012r2. “In Windows Server 2012 R2 and Windows 8.1, new credential protection and domain authentication controls have been added to address credential theft.” – http://technet.microsoft.com/library/dn344918.aspx#BKMK_CredentialsProtectionManagement “Restricted Admin mode for Remote Desktop Connection” Empêche les credentials d’être envoyés sur le serveur distant Permet de s’authentifier par « pass-the-hash » et « pass-the-ticket » via CredSSP “LSA Protection” Empêche l’accès à la mémoire du processus LSASS (protected process) Est contournée par un simple pilote “Protected Users security group” Plus de NTLM, WDigest, CredSSP, fini la délégation et le SSO... Kerberos renforcé seulement ! Les tickets Kerberos peuvent encore être récupérés, et rejoués…14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 13
  • 14. mimikatz Focus sur Windows 8.1 et 2012r2 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 14 .#####. mimikatz 2.0 alpha (x64) release "Kiwi en C" (Jan 31 2014 21:57:34) .## ^ ##. ## / ## /* * * ## / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com ) '## v ##' http://blog.gentilkiwi.com/mimikatz (oe.eo) '#####' with 14 modules * * */ Primary CredentialKeys tspkg wdigest kerberos livessp ssp dpapi LM NTLM SHA1 NTLM SHA1 Root DPAPI off on off on pass 1 PIN 4 tickets Windows XP/2003 Local Account 2 Domain Account 2 5 Windows Vista/2008 & 7/2008r2 Local Account Domain Account Windows 8/2012 Microsoft Account Local Account Domain Account Windows 8.1/2012r2 Microsoft Account 3 3 Local Account 3 3 Domain Account 3 3 Domain Protected Users 3 3 Windows 8.1 vault for user's authentication PIN Picture Fingerprint code pass gestures pass pass not applicable Microsoft Account data in memory Local Account no data in memory 1.can need an unlock on NT5, not available with smartcard 2.tspkg is not installed by default on XP, not available on 2003 3.tspkg is off by default (but needed for SSO with remoteapps/ts), wdigest too http://technet.microsoft.com/library/dn303404.aspx 4.PIN code when SmartCard used for native Logon 5.PIN code is NOT encrypted in memory (XP/2003) Démonstration s’il reste un peu de temps ;) Dernière version sur : http://1drv.ms/1fCWkhu
  • 15. mimikatz :: kerberos « Kerberos est un protocole d'authentification réseau qui repose sur un mécanisme de clés secrètes (chiffrement symétrique) et l'utilisation de tickets » – http://fr.wikipedia.org/wiki/ Kerberos_%28protocole%29 Deux sortes de tickets : – TGT : représentant l’utilisateur auprès du domaine – TGS : représentant l’utilisateur auprès d’un service sur un nœud Quelques ressources bien plus précises que moi : – http://technet.microsoft.com/library/bb742516.aspx – http://www.ietf.org/rfc/rfc4120.txt – http://msdn.microsoft.com/library/windows/desktop/ aa378170.aspx – http://msdn.microsoft.com/library/cc237917.aspx14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 15
  • 16. mimikatz :: kerberos 1/3 authentification Fonctionnement de Kerberos (niveau ) 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 16 ① AS-REQ Je désire un ticket pour ‘Administrateur’ sur le domaine ‘chocolate’ ② AS-REP Voici un ticket TGT pour ‘Administrateur’ sur le domaine ‘chocolate’ Si tu détiens ses credentials (bon mot de passe/ hash), tu pourras me demander des TGS grâce à ta connaissance de la clé de session. rid username ntlm 500Administrateur cc36cf7a8514893efccd332446158b1a 502krbtgt 310b643c5316c8c3c70a10cfb17e2e31 1106Equipement 57a087d98bfac9df10df27a564b77ad6 1107Utilisateur 8e3a18d453ec2450c321003772d678d5 1108serveur$ 77d4b1409b7e5b97263b0f0230f73041 Debut / Fin / Renouvellement Max krbtgt / chocolate.local Administrateur @ chocolate.local Clé de session + metadata Administrateur PLAYSKOOL pré-authentification et cartes à puce/tokens non abordées ! KDC Debut / Fin / Renouvellement Max krbtgt / chocolate.local Administrateur @ chocolate.local Clé de session + metadata SID : S-1-5-21-a-b-c User RID : 500 (Administrateur) Groups RID : 520,512,519,518,572 (Admins du domaine, entreprise, …) Dernier changmt. 04/02/2014 23:21:07 Expire Jamais Modifiable 05/02/2014 23:21:07 krbtgt TGT username password ntlm Administrateur waza1234/ cc36cf7a8514893efccd332446158b1a
  • 17. mimikatz :: kerberos 2/3 demande d’accès Fonctionnement de Kerberos (niveau ) 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 17 ③ TGS-REQ Je désire un ticket pour le service ‘cifs’ sur ‘serveur’ du domaine ‘chocolate’ Voici mon TGT et des informations chiffrées avec la clé de session. J’en ai la connaissance puisque je suis bien ‘Administrateur’. ④ TGS-REP Voici un ticket TGS pour ‘cifs/serveur’ sur le domaine ‘chocolate’ Si tu détiens la clé de session initiale, tu pourras déchiffrer la clé de session du TGS et t’en servir pour communiquer avec ‘serveur’ rid username ntlm 500Administrateur cc36cf7a8514893efccd332446158b1a 502krbtgt 310b643c5316c8c3c70a10cfb17e2e31 1106Equipement 57a087d98bfac9df10df27a564b77ad6 1107Utilisateur 8e3a18d453ec2450c321003772d678d5 1108serveur$ 77d4b1409b7e5b97263b0f0230f73041 PLAYSKOOL KDC Debut / Fin / Renouvellement Max Administrateur @ chocolate.local krbtgt / chocolate.local Clé de session + metadata SID : S-1-5-21-a-b-c User RID : 500 (Administrateur) Groups RID : 520,512,519,518,572 (Admins du domaine, entreprise, …) Dernier changmt. 04/02/2014 23:21:07 Expire Jamais Modifiable 05/02/2014 23:21:07 krbtgt TGT req-data Clé de session Debut / Fin / Renouvellement Max cifs/serveur @ chocolate.local Administrateur @ chocolate.local Clé de session + metadata Clé de session Debut / Fin / Renouvellement Max cifs/serveur @ chocolate.local Administrateur @ chocolate.local Clé de session + metadata SID : S-1-5-21-a-b-c User RID : 500 (Administrateur) Groups RID : 520,512,519,518,572 (Admins du domaine, entreprise, …) Dernier changmt. 04/02/2014 23:21:07 Expire Jamais Modifiable 05/02/2014 23:21:07 serveur$ TGS
  • 18. mimikatz :: kerberos 3/3 accès Fonctionnement de Kerberos (niveau ) 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 18 e Hello ‘serveur’, voici un TGS t’étant destiné. Celui-ci t’indique le KDC m’a reconnu en tant qu‘Administrateur’ sur le domaine ‘chocolate’ pour accéder à ton service ‘cifs’. Ceci avec tous les avantages que le KDC me reconnait (groupes, privilèges, horaires…) Tu pourras le vérifier car tu connais les credentials qui ont servis à le chiffrer, et donc valider la clé de session et ma requête. PLAYSKOOL rid username ntlm 1108serveur$ 77d4b1409b7e5b97263b0f0230f73041 Debut / Fin / Renouvellement Max cifs/serveur @ chocolate.local Administrateur @ chocolate.local Clé de session + metadata SID : S-1-5-21-a-b-c User RID : 500 (Administrateur) Groups RID : 520,512,519,518,572 (Admins du domaine, entreprise, …) Dernier changmt. 04/02/2014 23:21:07 Expire Jamais Modifiable 05/02/2014 23:21:07 serveur$ TGS req-data Clé de session
  • 19. mimikatz :: kerberos pass-the-ticket Vol de TGT – ticket d’identité complète d’un utilisateur Vol de TGS – ticket d’accès à un service sur un serveur particulier 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 19 KDC Debut / Fin / Renouvellement Max cifs/serveur @ chocolate.local Administrateur @ chocolate.local Clé de session + metadata Clé de session Debut / Fin / Renouvellement Max cifs/serveur @ chocolate.local Administrateur @ chocolate.local Clé de session + metadata SID : S-1-5-21-a-b-c User RID : 500 (Administrateur) Groups RID : 520,512,519,518,572 (Admins du domaine, entreprise, …) Dernier changmt. 04/02/2014 23:21:07 Expire Jamais Modifiable 05/02/2014 23:21:07 serveur1$ TGS Debut / Fin / Renouvellement Max krbtgt / chocolate.local Administrateur @ chocolate.local Clé de session + metadata SID : S-1-5-21-a-b-c User RID : 500 (Administrateur) Groups RID : 520,512,519,518,572 (Admins du domaine, entreprise, …) Dernier changmt. 04/02/2014 23:21:07 Expire Jamais Modifiable 05/02/2014 23:21:07 krbtgt TGT Debut / Fin / Renouvellement Max krbtgt / chocolate.local Administrateur @ chocolate.local Clé de session + metadata Debut / Fin / Renouvellement Max cifs/serveur @ chocolate.local Administrateur @ chocolate.local Clé de session + metadata Clé de session Debut / Fin / Renouvellement Max cifs/serveur @ chocolate.local Administrateur @ chocolate.local Clé de session + metadata SID : S-1-5-21-a-b-c User RID : 500 (Administrateur) Groups RID : 520,512,519,518,572 (Admins du domaine, entreprise, …) Dernier changmt. 04/02/2014 23:21:07 Expire Jamais Modifiable 05/02/2014 23:21:07 serveur2$ TGS Debut / Fin / Renouvellement Max cifs/serveur @ chocolate.local Administrateur @ chocolate.local Clé de session + metadata Debut / Fin / Renouvellement Max cifs/serveur @ chocolate.local Administrateur @ chocolate.local Clé de session + metadata SID : S-1-5-21-a-b-c User RID : 500 (Administrateur) Groups RID : 520,512,519,518,572 (Admins du domaine, entreprise, …) Dernier changmt. 04/02/2014 23:21:07 Expire Jamais Modifiable 05/02/2014 23:21:07 serveur1$ TGS
  • 20. mimikatz :: kerberos demo ! - sekurlsa::tickets 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 20
  • 21. mimikatz :: kerberos Golden Ticket – quelques rappels… Les TGT ont une durée de vie limitée à 10h et peuvent être renouvelables – durée configurable Les TGT ne sont rien de plus que des TGS pour le service ‘krbtgt’ à destination des serveurs KDC d’un domaine De ce fait, ils sont chiffrés avec une clé commune à chaque KDC : le hash du compte fictif ‘krbtgt’ Pour des raisons relativement obscures, cette clé n’est pas renouvelée automatiquement – L’utilisation de l’historique de l’ancienne clé permettrait pourtant un renouvellement glissant Que pourrions nous donc bien faire d’une clé « permanente » disponible dans l’AD pouvant créer des TGT ? 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 21 Nom d’utilisateur krbtgt Commentaire Compte de service du centre de distribution de clés Compte : actif Non rid username ntlm 502krbtgt 310b643c5316c8c3c70a10cfb17e2e31
  • 22. mimikatz :: kerberos Golden Ticket – Création d’un TGT (extrait) Client name : Administrateur Service name : krbtgt/chocolate.local Validité – Start Time 14/03/2014 16:25:00 – End Time 14/03/2024 16:25:00 … Données d’autorisation Microsoft (PAC) – Le nom d’utilisateur : Administrateur – Le SID du domaine • S-1-5-21-130452501-2365100805-3685010670 – Le compte représenté par le ticket • 500 Administrateur – La liste des groupes • 512 Admins du domaine • 519 Administrateurs de l’entreprise • 518 Administrateurs du schéma • … – … 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 22 rid username ntlm 502krbtgt 310b643c5316c8c3c70a10cfb17e2e31
  • 23. mimikatz :: kerberos demo ! - kerberos::golden 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 23
  • 24. mimikatz quoi d’autre ? Récupérer les secrets système/utilisateurs (mots de passe enregistrés) Exporter les clés/certificats non exportables (logiciels CAPI & CNG) Arrêter l’Observateur d’évènements… Eviter Applocker / SRP Manipuler quelques Handles Patcher Terminal Server Eviter certaines GPO Driver – Jouer avec les Tokens & Privilèges – Afficher la SSDT x86 & x64 – Lister les MiniFiltres – Lister les Notifications (process/thread/image/registry) – Lister les hooks et procédures associés aux Objects14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 24
  • 25. mimikatz :: sekurlsa Que pouvez-vous faire ? Première approche – Pas d’accès physique aux postes / serveurs • Chiffrement des volumes / disques dans une moindre mesure – Pas de droits admin ! (surtout pour les VIP) - Pas de privilège Debug ! – Désactivation des comptes admin locaux – Mot de passe fort (haha, je plaisante bien sur J) – Eviter les connexions interactives (privilégier les connexions réseaux via RPC) – Auditer, auditer et auditer…! – Utiliser des réseaux séparés, des forêts dédiées pour les tâches d’administration ! Plus en profondeur – Forcer l’authentification forte (SmartCard & Token) : $ / € – Diminuer la durée de vie des tickets Kerberos – Désactiver la délégation – Désactiver LM et NTLM (forcer Kerberos) – Pas de Biométrie ni de SSO « exotique » – Laisser la possibilité de ne plus être rétro-compatible A étudier – TPM sous Windows 8.1 • Virtual SmartCard semble prometteur 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 25 Déléguer les opérations cryptographiques à des HSM / Kerberos Box.
  • 26. mimikatz That’s all Folks! Merci à : – la St’Hack, son staff, ses partenaires… • en particulier Florian Gaultier pour son invitation ; – Microsoft pour changer certaines mauvaises habitudes et faire évoluer quelques modes de fonctionnement J ; – la communauté pour ses idées (∞) ; – les proches me supportant soutenant tous les jours (oe.eo) – vous, pour votre attention et vos gentils messages ! Questions, remarques ? àJ’accepte un petit verre ;) àQuelques exemples de commandes mimikatz sont en annexe =) 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 26
  • 27. Blog, Code Source & Contact 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 27 blog http://blog.gentilkiwi.com mimikatz http://blog.gentilkiwi.com/mimikatz source https://code.google.com/p/mimikatz/ contact @gentilkiwi / benjamin@gentilkiwi.com
  • 28. mimikatz :: Annexe 1 packages d’authentification TsPkg – facilite les connexions au RemoteApps et TerminalServer en envoyant le mot de passe via CredSSP… WDigest – répond par challenge/response le Realm du serveur étant variable, le mot de passe doit être disponible pour recalculer le hash. LiveSSP – Compte Microsoft pour connexions avec compte Live Kerberos – système de tickets d’accès à des services en domaine MSV1_0 – Pour répondre en challenge/response sur LM/NTLM Le secret partagé reste le(s) hash. SSP – Pas véritablement un package d’authentification, mais maintient une table des connexions distantes explicites… 14/03/2014 Benjamin DELPY `gentilkiwi` @ OSSIR 02/2013 - benjamin@gentilkiwi.com ; blog.gentilkiwi.com 28
  • 29. mimikatz :: Annexe 2 quelques commandes 1/2 log privilege::debug sekurlsa::logonpasswords sekurlsa::tickets /export crypto::capi crypto::cng crypto::certificates /export crypto::certificates /export /systemstore:CERT_SYSTEM_STORE_LOCAL_MACHINE crypto::keys /export crypto::keys /machine /export vault::cred vault::list token::elevate vault::cred vault::list lsadump::sam lsadump::secrets lsadump::cache token::revert exit14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 29
  • 30. mimikatz :: Annexe 2 quelques commandes 2/2 sekurlsa::logonpasswords sekurlsa::pth /user:Administrateur /domain:winxp /ntlm:f193d757b4d487ab7e5a3743f038f713 /run:cmd sekurlsa::tickets /export kerberos::list /export kerberos::ptt c:chocolate.kirbi kerberos::golden /admin:administrateur /domain:chocolate.local /sid:S-1-5-21-130452501- 2365100805-3685010670 /krbtgt:310b643c5316c8c3c70a10cfb17e2e31 /ticket:chocolate.kirbi process::start "mstsc /restrictedadmin /v:srvcharly.chocolate.local" 14/03/2014 Benjamin DELPY `gentilkiwi` @ St’Hack 4.0 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 30