31
en´ efices de l’acc ` es direct aux disques ` a l’aide du framework Metasploit Danil Bazin <[email protected]> HSC by Deloitte 7 avril 2016 1/31 Tous droits r´ eserv´ es HSC by Deloitte - 2016

Ben´ efices de l’acc´ es direct aux disques` a` l’aide du ... · a utiliser un acc` es direct au disque pour le r` ecup´ erer ... Dislocker utilise avec la cl´ e de recouvrement

  • Upload
    vudieu

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Benefices de l’acces direct aux disques al’aide du framework Metasploit

Danil Bazin <[email protected]>

HSC by Deloitte

7 avril 2016

1/31 Tous droits reserves HSC by Deloitte - 2016

HSC by DeloitteConseil en securite des systemes d’information depuis 1989.

PME francaise avec 26 ans d’experience.Exclusivement des interventions d’expertise SSI:

Pas de distribution, ni integration, ni infogerance, ni delegation depersonnel ;Prestations : conseil, etudes, audits, tests d’intrusion, formations ;Garantie d’independance.

Domaines d’expertiseSecurite Windows / Unix et linux / embarque / informatique industrielle /applicationsEnquetes inforensiques / Expertise judiciaireSecurite des reseaux : TCP/IP, telephonie, reseaux operateurs, reseauxindustriels...Organisation de la securite, droit des systemes d’information

2/31 Tous droits reserves HSC by Deloitte - 2016

Modules MetasploitDeveloppees par HSC

Modules de post-exploitation de Metasploit:file from raw ntfs : permet de contourner les verrous en ecriture deWindows sur des fichiers cles comme les fichiers de ruches Windows oule fichier NTDS.DITbitlocker fvek : permet de recuperer la cle de chiffrement maitre deBitlocker

Point commun de ces deux modules : utilisation d’unacces direct aux partitions / disques.

3/31 Tous droits reserves HSC by Deloitte - 2016

MetasploitFramework de tests d’intrusion

Framework OpenSource sous licence libre (BSD)cree par H.D Moore en 2003

OpenSource signifiant que n’importe qui peut acceder au code sourceLa licence libre autorise la modification du programme

Rachetee par Rapid7 en octobre 2009Developpe en RubyHeberge sur Github.io

4/31 Tous droits reserves HSC by Deloitte - 2016

MetasploitFramework de tests d’intrusion

La force de Metasploit lui vient de la separation entre:Les exploits (1524 dans la version 4.11.19) : le code qui permet dedeclencher la vulnerabilite et d’executer du code arbitraire, par exemple:

Un PDF forge pour une version vulnerable d’Adobe ReaderPSexec pour executer du code a distance sur un Windows...

les payloads (charges utiles) (436 dans la version 4.11.19) : le codearbitraire qui sera execute sur le poste de la victime, par exemple:

Une porte derobee en ecoute sur le port 443Un reverse-shell allant se connecter sur le port 80 de l’attaquant...

les modules de post-exploitation (260 dans la version 4.11.19) : le codequi utilise la connexion avec la payload pour piller la victime ou l’utiliserpour rebondir:

cachedump : recupere les condensats des mots de passe des comptes du domaines quise sont connectes sur le poste Windows

5/31 Tous droits reserves HSC by Deloitte - 2016

MetasploitFramework de tests d’intrusion

Intensivement utilise en test d’intrusions internes:Peut etre couple avec une base de donnees PostgreSQLPeut etre alimentes avec le resultat de scan nmapContient de nombreux modules d’attaque par force brute et dictionnairesde comptes par defautAjout automatique des mots de passe trouves a la base de donnees

Gere l’execution de code malveillant sur de nombreuxsystemes d’exploitation:

WindowsLinuxAndroidAIX...

6/31 Tous droits reserves HSC by Deloitte - 2016

MeterpreterInterpreteur Metasploit

Le Meterpreter est la payload la plus puissante deMetasploit

Silencieuse : n’ecrit aucun fichier sur le disqueUtilise des communications chiffresExtensible : Des fonctionnalites peuvent etre ajoutes dynamiquementpendant l’executionMulti-canaux : Plusieurs connexions en paralleles peuvent etre transmisesa travers le meme Meterpreter

La version Windows est celle qui possede le plus defonctionnalites:

Permet de s’injecter dans la memoire d’un processus et de migrerdynamiquement dans d’autresUn keylogger permet de saisir les frappes claviers de l’utilisateurLa webcam de la victime peut etre utilise pour prendre des photos

7/31 Tous droits reserves HSC by Deloitte - 2016

MeterpreterDeveloppement

Quelques astuces de developpeur Metasploit:Apres deploiement du Meterpreter, la commande irb lance un terminalruby permettant de tester le code du module en cours de developpementLa commande reload applique sur le module en cours de developpementpermet de recharger le module depuis le code sourceLa commande reload ne s’applique qu’au module courant, il est donc plusrapide pour les tests de grouper toutes les classes en developpementdans le fichier du module

8/31 Tous droits reserves HSC by Deloitte - 2016

MeterpreterRailgun

Railgun : fonctionnalite de post-exploitationpermettant de dialoguer avec l’API Windows de lavictime en utilisant la connexion avec un Meterpreter.

Peut etre facilement appele depuis un Meterpreter avec irbles appels s’effectuent avec des commandes de typesession.railgun.nomdll.nomfonction(liste des arguments de la fonction)

5 fonctions de l’API Windows suffisent pour lesmodules d’acces direct aux disques:

kernel32.GetFileAttributesWkernel32.CreateFileWkernel32.CloseHandlekernel32.ReadFilekernel32.SetFilePointer

9/31 Tous droits reserves HSC by Deloitte - 2016

Win32 Device Namespaces

La fonction kernel32.CreateFileW de l’API Windowspermet d’ouvrir les fichiers sous Windows sous laforme d’un descripteur de fichier.Mais aussi des disques, volumes etc. , en utilisant leprefixe ”\\.\”

Par exemple le volume C peut s’ouvrir avec ”\\.\C:”Celui-ci permet d’acceder a la partition NTFS, (meme si Bitlocker estutilise)L’acces direct a un disque s’effectue avec ”\\.\PhysicalDrive0”Ce descripteur de fichier accede au disque qui commence generalementpar la table des partitionspuis les partitions sont accessibles, en version chiffre si Bitlocker est utilise

10/31 Tous droits reserves HSC by Deloitte - 2016

Contournement du verrou Windows sur lesfichiers systemesObjectifs

Lors de la compromission d’un controleur de domaineWindows, un attaquant cherche a recuperer le fichierNTDS.dit.

Ce fichier contient entres autres la liste des utilisateurs du domaine et lescondensats de leurs mots de passeMais ce fichier est verrouille par le systeme pour eviter des actionsconcurrentes :

11/31 Tous droits reserves HSC by Deloitte - 2016

Contournement du verrou Windows sur lesfichiers systemesSolutions existantes

Afin de contourner cette restriction, la technique laplus couramment employee est d’utiliser les VolumeShadow Copy :

(Get-WmiObject -list win32 shadowcopy).create(”C:\”, ”ClientAccessible”)vssadmin.exe List Shadowscmd /c mklink /D C:\vss2\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\

Mais cette technique genere un instantane de lapartition entiere, ce qui est assez ”bruyant” et intrusif

12/31 Tous droits reserves HSC by Deloitte - 2016

Contournement du verrou Windows sur lesfichiers systemesNTFS

Une autre solution pour recuperer ce fichier consistea utiliser un acces direct au disque pour le recuperer

Mais une fois la partition ouverte, il faut parcourir la structure NTFS pouracceder aux fichiers

Windows utilise son pilote NTFS pour parser lessystemes de fichier NTFS mais ne propose pas d’APILes outils de Forensics comme FTKimager ou TheSleuth Kit utilisent l’acces direct aux disques pourextraire des fichiers

Mais ils sont difficilement integrable a Metasploit

13/31 Tous droits reserves HSC by Deloitte - 2016

Contournement du verrou Windows sur lesfichiers systemesNTFS - Premiers octets

Une partition NTFS commence par un secteur deBoot :

Dans cette section, les tailles des unites sont definiesen fonction de la taille totale de la partition:

Nombre d’octets par secteurNombre de secteur par clusterNombre de cluster par enregistrement de la MFTNumero de cluster de la MFT et de la copie de la MFT (MFTMirr)Numero de serie du volume NTFS

14/31 Tous droits reserves HSC by Deloitte - 2016

Contournement du verrou Windows sur lesfichiers systemesNTFS - Premiers octets

Par exemple avec l’outil de The Sleuth Kit, fsstat :

15/31 Tous droits reserves HSC by Deloitte - 2016

Contournement du verrou Windows sur lesfichiers systemesNTFS - MFT - Premiers enregistrements

La MFT est un tableau d’enregistrement de taille fixeChaque enregistrement represente un fichier/dossierLes premiers enregistrements sont fixes:

0 - $MFT Represente la MFT1 - $MFTMirr represente une copie des premiers enregistrements de laMFT...5 - $ Racine du systeme de fichier

16/31 Tous droits reserves HSC by Deloitte - 2016

Contournement du verrou Windows sur lesfichiers systemesNTFS - MFT - Attributs

Chaque enregistrement de la MFT est un tableaud’attribut

Un attribut peut etre stocke dans la MFT s’il est suffisamment petit, onparle d’attribut residantou seule ses adresses peuvent etre stockes sous forme de data-run (listesd’adresses), on parle d’attribut non-residantPlusieurs type d’attributs existent:

$DATA contient le contenu du fichier$STANDARD INFORMATION contient le proprietaire et les dates de creation, dernieremodification, acces et modification des metadonnees$FILENAME : nom, dates de creation, derniere modification, acces et modification desmetadonnees (valeurs moins precise que celles stockes dans$STANDARD INFORMATION)$INDEX ROOT et $INDEX ALLOCATION sont presents pour les enregistrements derepertoires et stockent la liste des fichiers qu’ils contiennent

17/31 Tous droits reserves HSC by Deloitte - 2016

Demonstration

Module file from raw ntfs

18/31 Tous droits reserves HSC by Deloitte - 2016

Indicateurs de compromission (IOC)

Sans compter ceux generes par l’execution duMeterpreter : Aucun

19/31 Tous droits reserves HSC by Deloitte - 2016

References

Brian Carrier. (2005). File System Forensic Analysis.

20/31 Tous droits reserves HSC by Deloitte - 2016

Extraction de la cle maitre BitlockerObjectifs

Un attaquant cherche toujours a perenniser sonacces le plus discretement possible.

Si acces physique ulterieur possible (cas d’un ordinateur portable parexemple) : recuperation des cles de chiffrement pour acceder au systemede fichiers ulterieurement.

21/31 Tous droits reserves HSC by Deloitte - 2016

Solutions existantes pour l’extraction de laFVEK

Deux solutions pour extraire la cle maitre:Dislocker utilise avec la cle de recouvrement (par exemple) si une imagehors-ligne est disponible

En mode verbeux, la cle maitre est affichee

Depuis une image de la RAM (avec winpmem par exemple)Puis analyse avec Volatility avec le plugin bitlocker de elceef

22/31 Tous droits reserves HSC by Deloitte - 2016

BitlockerCles de chiffrement intermediaires

Plusieurs secrets peuvent etre utilises pour dechiffrerune partition Bitlocker:

TPM (Trusted Platform Module)Mot de passeFichier de cle (Startup key), presente sur une autre partition ou sur une cleUSBCle de recouvrement...

23/31 Tous droits reserves HSC by Deloitte - 2016

BitlockerCle de recouvrement

Les cles de recouvrement sont de la forme:709434-416845-498971-632753-185251-065296-323609-146927

Elles peuvent etre generees depuis un volumeBitlocker ouvert a l’aide de la commande

manage-bde -protectors -add -rp C:

Extraites a l’aide de la commande:manage-bde -protectors -get C:

Derivees selon la recette suivante:Chaque partie est divisee par 11 puis concateneeUn sel est ajoute, la stretch keyCondensee 1048576 fois (0x100000) avec la fonction SHA256

24/31 Tous droits reserves HSC by Deloitte - 2016

BitlockerCles

Toutes ces cles de chiffrement permettent dedechiffrer une cle de volume (Volume Master Key(VMK))Cette cle de volume va dechiffrer la cle AES (FullVolume Encryption Key(FVEK)) utilisee pour chiffrerle volume

La FVEK ne peut etre changee, en cas de compromission, le disque doitetre dechiffre puis rechiffre

25/31 Tous droits reserves HSC by Deloitte - 2016

BitlockerStructures du disque

Une partition Bitlocker commence par un en-tete autroisieme octet : ”-FVE-FS-”L’offset 176 contient l’adresse de la structurecontenant les cles de chiffrement du volume:

26/31 Tous droits reserves HSC by Deloitte - 2016

BitlockerOpenssl-CCM

Les cles sont chiffres en utilisantAES-{128,256}-CCMLa bibliotheque Openssl de ruby ne contient pas cemode de chiffrementUne implemenation openssl-ccm en ruby estdisponible sur GitHub mais ne fonctionnait pas :

A cause d’une confusion entre taille de cle et taille deblock

27/31 Tous droits reserves HSC by Deloitte - 2016

Demonstration

Module bitlocker fvek

28/31 Tous droits reserves HSC by Deloitte - 2016

Indicateurs de compromission (IOC)

Generation puis suppression d’une cle derecouvrement si celle-ci n’existait pas

29/31 Tous droits reserves HSC by Deloitte - 2016

References

La documentation de libbde est tres comprehensible:https://github.com/libyal/libbde/blob/master/

documentation/BitLockerDriveEncryption(BDE)

format.asciidoc

30/31 Tous droits reserves HSC by Deloitte - 2016

Questions ?

31/31 Tous droits reserves HSC by Deloitte - 2016