Voyage (rapide) au cœur de la mémoire

Documents pareils
SRS Day. Attaque BitLocker par analyse de dump mémoire

Croisière au cœur d un OS Étape 4 : Mise en place de la pagination

Initiation à la sécurité

Windows Server Chapitre 1: Découvrir Windows Server 2008

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

Leçon 1 : Les principaux composants d un ordinateur

Table des matières 1. Introduction. 1. Avant-propos Remerciements Chapitre 1 Virtualisation de serveurs

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Exchange 2007 : Améliorations et nouvelles fonctionnalités Atelier 136. Société GRICS

Le modèle de sécurité windows

JOSY VIRTUALISATION 9 ET 10 JUIN 2011 POSTE DE TRAVAIL ET VIRTUALISATION. Sébastien Geiger IPHC

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

Programmation impérative

Java et les bases de données

Cours Informatique 1. Monsieur SADOUNI Salheddine

Crédits... xi. Préface...xv. Chapitre 1. Démarrer et arrêter...1. Chapitre 2. L interface utilisateur...25

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Parallels Transporter Lisez-moi

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

Les défis du VDI Le cas de XenDesktop. Les défis du VDI

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

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

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Mise en œuvre d un poste virtuel

Table des matières 1. Avant-propos. Chapitre 1 Virtualisation du poste de travail

Partie 7 : Gestion de la mémoire

Architecture des ordinateurs

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Bootkit REvisited. Samuel Chevet Sogeti ESEC

Hyper-V v2 : une évolution majeure des services de virtualisation

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

Mise en route d'une infrastructure Microsoft VDI

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Prise en main. Norton Ghost Pour trouver des informations supplémentaires. A propos de Norton Ghost

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Systèmes d exploitation

Plan global. Programmation système II. Socket du domaine UNIX. Plan. Socket UNIX, Terminaux, Async IO, Mémoire, ELF.

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

Table des matières. A - Introduction 13. B - Qu'est-ce que la virtualisation? 13

Manuel logiciel client Java

La Pédagogie au service de la Technologie

Authentification à deux facteurs Cryptage portable gratuit des lecteurs USB Cryptage du disque dur

Windows XP niveau 2. D. Hourquin, Médiapôle St Ouen l'aumône

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Windows 7 - Installation du client

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

Un ordinateur, c est quoi?

Description. Lorsque vous essayez d activer, désactiver ou mettre à jour la technologie Hyper V, le processus cesse de répondre.

Première édition en format électronique. Parallels Desktop 7 pour Mac OS X.

Cours de Système : Gestion de Fichiers

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Sauvegardes sous Mac OS X

Fiche Technique. Cisco Security Agent

McAfee Data Loss Prevention Endpoint

2X ThinClientServer Guide d utilisation

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Adressage des données des contrôleurs du WAGO-I/O-SYSTEM 750. Note d application

Nicolas Hanteville. for(e=n;s<i;c++){attitude();} Sur environnement Microsoft Windows

Technologie de déduplication de Barracuda Backup. Livre blanc

Guide d installation d AppliDis Free Edition sur Windows Serveur 2008 R2

2 disques en Raid 0,5 ou 10 SAS

L état de l ART. Évolution récente des technologies. Denis Szalkowski Formateur Consultant

Les nouveautés d AppliDis Fusion 4 Service Pack 3

Outils en ligne de commande

Démarrer et quitter... 13

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Secrets d authentification sous Windows

Java Licence Professionnelle CISII,

TD Architecture des ordinateurs. Jean-Luc Dekeyser

La gestion du poste de travail en 2011 : Panorama des technologies

ANTI-VIRUS / PROTECTION DES POSTES DE TRAVAIL ET DES SERVEURS DE FICHIERS

Premiers pas sur l ordinateur Support d initiation

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Programmation C. Apprendre à développer des programmes simples dans le langage C

EN Télécom & Réseau S Utiliser VMWARE

Clé Flash USB2.0 Acer

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

CommandCenter Secure Gateway

Panorama des moyens de contrôle des ports USB sous Windows XP

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

BAP E Gestionnaire de parc informatique et télécommunications MI2 / MI3 Ouverts au titre de 2010 Arrêté du 7/04/10 - J.

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

Exigences système Edition & Imprimeries de labeur

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

Windows 8 Installation et configuration

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Traitement de données

Tout d abord les pré-requis : Au menu un certain nombre de KB

Nouveautés Symantec Backup Exec 11d pour serveurs Windows

McAfee Data Loss Prevention Endpoint 9.4.0

Aide à l installation et à la migration en HelloDoc 5.60

Ordinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un

Introduction à l informatique en BCPST

Hyper-V Virtualisation de serveurs avec Windows Server 2008 R2 - Préparation à l'examen MCTS

MANUEL D INSTALLATION DE WATCHDOC 2011 (EVALUATION)

Segmentation d'images à l'aide d'agents sociaux : applications GPU

SEAhawk. CryptoMill FRENCH/ FRANCÉS/ FRANÇAIS

Transcription:

Voyage (rapide) au cœur de la mémoire Damien AUMAITRE damien(at)security-labs.org damien.aumaitre(at)sogeti.com Voyage (rapide) au cœur de la mémoire 1 / 30

Introduction M. Dornseif en 2005 et A. Boileau en 2006 montrent comment compromettre un poste utilisateur en utilisant le bus Firewire. Pendant mon stage, reproduction des démos. Les connaissances acquises ont débouché sur le développement d un outil permettant l analyse et la reconstruction de la mémoire virtuelle à partir de la mémoire physique. Voyage (rapide) au cœur de la mémoire 2 / 30

Pourquoi utiliser la mémoire physique? Avantages Vue de la mémoire indépendante de l API du système d exploitation. Multiples points d accès à la représentation de la mémoire physique. Inconvénients Besoin de reconstruire l espace d adressage virtuel pour retrouver les données. Structures très dépendantes du système d exploitation. Voyage (rapide) au cœur de la mémoire 3 / 30

Plan Organisation de la mémoire Segmentation / pagination Reconstruction de la mémoire virtuelle 1 Organisation de la mémoire Segmentation / pagination Reconstruction de la mémoire virtuelle 2 3 Voyage (rapide) au cœur de la mémoire 4 / 30

Plan Organisation de la mémoire Segmentation / pagination Reconstruction de la mémoire virtuelle 1 Organisation de la mémoire Segmentation / pagination Reconstruction de la mémoire virtuelle 2 3 Voyage (rapide) au cœur de la mémoire 5 / 30

Segmentation / pagination Reconstruction de la mémoire virtuelle Correspondance entre adresse virtuelle et adresse physique Processus A Mémoire physique Processus B 0x00000000 Espace utilisateur Espace utilisateur 0x7fffffff 0x80000000 Espace noyau Espace noyau 0xffffffff Voyage (rapide) au cœur de la mémoire 6 / 30

Segmentation / pagination Reconstruction de la mémoire virtuelle Correspondance entre adresse virtuelle et adresse physique Linear Address 10 bits 10 bits 12 bits Directory Table Offset 4-KB Page Page Table Page Directory Physical Address Page-Table Entry Directory Entry 1024 pointers cr3 1024 pointers Voyage (rapide) au cœur de la mémoire 6 / 30

Plan Organisation de la mémoire Segmentation / pagination Reconstruction de la mémoire virtuelle 1 Organisation de la mémoire Segmentation / pagination Reconstruction de la mémoire virtuelle 2 3 Voyage (rapide) au cœur de la mémoire 7 / 30

Registre cr3? Segmentation / pagination Reconstruction de la mémoire virtuelle Utilisé dans le mécanisme de conversion d adresse. Permet de mapper l intégralité de l espace virtuel d un processus. Stocké dans la structure KPROCESS dans le champ DirectoryTableBase. t y p e d e f s t r u c t KPROCESS // 29 elements, 0x6C b y t e s ( s i z e o f ) { / 0 x000 / st r uc t DISPATCHER HEADER Header ; // 6 elements, 0 x10 bytes ( s i z e o f ) / 0 x010 / st r uc t LIST ENTRY ProfileListHead ; // 2 elements, 0 x8 bytes ( s i z e o f ) / 0x018 / ULONG32 DirectoryTableBase [ 2 ] ; [... ] }KPROCESS, PKPROCESS; Voyage (rapide) au cœur de la mémoire 8 / 30

Retrouver la structure KPROCESS Segmentation / pagination Reconstruction de la mémoire virtuelle La structure DISPATCHER HEADER a une signature particulière Les champs Type et Size ont des valeurs fixes pour chaque version de Windows. Par exemple, pour Windows XP SP2, Type = 0x3 et Size = 0x1b. t y p e d e f s t r u c t DISPATCHER HEADER // 6 elements, 0 x10 b y t e s ( s i z e o f ) { / 0 x000 / UINT8 Type ; / 0 x001 / UINT8 Absolute ; / 0 x002 / UINT8 Size ; / 0 x003 / UINT8 Inserted ; / 0 x004 / LONG32 SignalState ; / 0 x008 / s t r u c t LIST ENTRY WaitListHead ; // 2 elements, 0 x8 b y t e s ( s i z e o f ) }DISPATCHER HEADER, PDISPATCHER HEADER ; Voyage (rapide) au cœur de la mémoire 9 / 30

Retrouver la structure KPROCESS Segmentation / pagination Reconstruction de la mémoire virtuelle Méthode proposée par Andreas Schuster Principe Scanner la mémoire en cherchant des structures DISPATCHER HEADER Valider les candidats potentiels en vérifiant la cohérence des champs de la structure (par exemple, les structures noyau doivent pointer en espace noyau). Voyage (rapide) au cœur de la mémoire 10 / 30

Retrouver la structure KPROCESS Segmentation / pagination Reconstruction de la mémoire virtuelle Espace noyau struct _EPROCESS @ 0x80eed020 +0x000 Pcb : struct _KPROCESS +0x088 ActiveProcessLinks : struct _LIST_ENTRY struct _KPROCESS @ 0x80eed020 +0x000 Header : struct _DISPATCHER_HEADER +0x018 DirectoryTableBase : [2] Uint4B struct _EPROCESS @ 0xffbb8550 +0x000 Pcb : struct _KPROCESS +0x088 ActiveProcessLinks : struct _LIST_ENTRY struct _EPROCESS @ 0x80dc8c90 +0x000 Pcb : struct _KPROCESS +0x088 ActiveProcessLinks : struct _LIST_ENTRY sauvegarde du registre cr3 Voyage (rapide) au cœur de la mémoire 11 / 30

Conclusion Organisation de la mémoire Segmentation / pagination Reconstruction de la mémoire virtuelle Résultat Équivalence entre mémoire physique et mémoire virtuelle Traduction de l espace virtuel de TOUS les processus. Voyage (rapide) au cœur de la mémoire 12 / 30

Plan Organisation de la mémoire Moyens Zoom sur le firewire 1 Organisation de la mémoire 2 Moyens Zoom sur le firewire 3 Voyage (rapide) au cœur de la mémoire 13 / 30

Plan Organisation de la mémoire Moyens Zoom sur le firewire 1 Organisation de la mémoire 2 Moyens Zoom sur le firewire 3 Voyage (rapide) au cœur de la mémoire 14 / 30

Moyens Zoom sur le firewire Plusieurs moyens : Firewire VMWare Fichiers d hibernation (via Sandman par exemple) Coldboot attacks Outils de forensics etc. cf. SSTIC 07, Autopsie d une intrusion tout en mémoire sous Windows, Nicolas Ruff Voyage (rapide) au cœur de la mémoire 15 / 30

Plan Organisation de la mémoire Moyens Zoom sur le firewire 1 Organisation de la mémoire 2 Moyens Zoom sur le firewire 3 Voyage (rapide) au cœur de la mémoire 16 / 30

Zoom sur le firewire Moyens Zoom sur le firewire Firewire? Développé par Apple à la fin des années 80 et standardisé par l IEEE en 1995. Permet l accès à la mémoire physique grâce à l utilisation du DMA (Direct Memory Access). Le DMA est un mécanisme qui décharge le processeur des tâches d entrées/sorties longues. Voyage (rapide) au cœur de la mémoire 17 / 30

Zoom sur le firewire Moyens Zoom sur le firewire Accès à la mémoire L accès à la mémoire physique est contrôlé par deux registres dans la mémoire du contrôleur firewire. Interdit par défaut sous Windows. Sauf pour les périphériques de stockage de masse par exemple un ipod Voyage (rapide) au cœur de la mémoire 17 / 30

Transformation en ipod Moyens Zoom sur le firewire Spécification OHCI 1394 Chaque périphérique firewire a une carte d identité. L identification du périphérique firewire peut être modifiée. Bibliothèque libraw1394 Bibliothèque en mode utilisateur permettant de manipuler le bus firewire Fonction raw1394 update config rom Voyage (rapide) au cœur de la mémoire 18 / 30

Transformation en ipod Moyens Zoom sur le firewire Avant Portable sous Linux. 00000000 04 04 0d ef 31 33 39 34 e0 64 a2 32 42 4f c0 00...1394.d.2BO.. 00000010 3c c4 44 50 00 03 03 5d 03 42 4f c0 81 00 00 02 <.DP...BO... 00000020 0c 00 83 c0 00 06 2c 2a 00 00 00 00 00 00 00 00...,*... 00000030 4c 69 6e 75 78 20 2d 20 6f 68 63 69 31 33 39 34 Linux - ohci1394 Voyage (rapide) au cœur de la mémoire 18 / 30

Transformation en ipod Moyens Zoom sur le firewire Après Un ipod :) 00000000 04 04 72 86 31 33 39 34 00 ff a0 12 00 0a 27 00..r.1394.... 00000010 02 aa 6b a7 00 04 f9 3c 0c 00 83 c0 03 00 0a 27..k...<... 00000020 81 00 00 11 d1 00 00 01 00 0e e5 a0 12 00 60 9e.... 00000030 13 01 04 83 21 00 00 01 3a 00 0a 08 3e 00 4c 10...>.L. 00000040 38 00 60 9e 39 01 04 d8 3b 00 00 00 3c 0a 27 00 8..9...<.. 00000050 54 00 40 00 3d 00 00 03 14 0e 00 00 17 00 00 21 T.@... 00000060 81 00 00 0a 00 08 96 bc 00 00 00 00 00 00 00 00... 00000070 41 70 70 6c 65 20 43 6f 6d 70 75 74 65 72 2c 20 Apple Computer,. 00000080 49 6e 63 2e 00 00 00 00 00 04 34 e7 00 00 00 00 Inc...4... 00000090 00 00 00 00 69 50 6f 64 00 00 00 00 00 00 00 00...iPod... Voyage (rapide) au cœur de la mémoire 18 / 30

Transformation en ipod Moyens Zoom sur le firewire Conclusion Windows croit avoir affaire à un ipod et autorise l accès à la mémoire en lecture/écriture. Pour plus de détails Mécanisme expliqué en détail sur le site d Adam Boileau : http://storm.net.nz/projects/16 Voyage (rapide) au cœur de la mémoire 18 / 30

Plan Organisation de la mémoire Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise 1 Organisation de la mémoire 2 3 Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Voyage (rapide) au cœur de la mémoire 19 / 30

Plan Organisation de la mémoire Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise 1 Organisation de la mémoire 2 3 Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Voyage (rapide) au cœur de la mémoire 20 / 30

Process Explorer 101 Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Contexte Accès en lecture à la mémoire physique But Trouver les informations nécessaires à la réalisation d un clone de Process Explorer Informations nécessaires Processus et threads existants au moment du dump Handles ouverts, DLLs chargées en mémoire. Voyage (rapide) au cœur de la mémoire 21 / 30

Process Explorer 101 Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Handles struct _EPROCESS +0x000 Pcb : struct _KPROCESS +0x0c4 ObjectTable : Ptr32 to struct _HANDLE_TABLE +0x190 ThreadListHead : struct _LIST_ENTRY +0x1b0 Peb : Ptr32 to struct _PEB struct _HANDLE_TABLE +0x000 TableCode : Ptr32 to void struct _HANDLE_TABLE_ENTRY struct _HANDLE_TABLE_ENTRY struct _HANDLE_TABLE_ENTRY struct _HANDLE_TABLE_ENTRY struct _PEB +0x00c Ldr : Ptr32 to _PEB_LDR_DATA Dlls struct _PEB_LDR_DATA +0x00c InLoadOrderModuleList : struct _LIST_ENTRY struct _LDR_DATA_TABLE_ENTRY +0x000 InLoadOrderModuleList : struct _LIST_ENTRY struct _LDR_DATA_TABLE_ENTRY +0x000 InLoadOrderModuleList : struct _LIST_ENTRY Threads struct _ETHREAD +0x22C ThreadListEntry : struct _LIST_ENTRY struct _ETHREAD +0x22C ThreadListEntry : struct _LIST_ENTRY struct _ETHREAD +0x22C ThreadListEntry : struct _LIST_ENTRY Voyage (rapide) au cœur de la mémoire 21 / 30

Regedit 101 Organisation de la mémoire Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Contexte Même contexte que pour Process Explorer But Informations pour réaliser un clone de Regedit Informations nécessaires Ruches et clés de la base de registres Voyage (rapide) au cœur de la mémoire 22 / 30

Regedit 101 Organisation de la mémoire Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise struct _CM_KEY_BODY +0x004 KeyControlBlock : Ptr32 to struct _CM_KEY_CONTROL_BLOCK struct _CM_KEY_CONTROL_BLOCK +0x010 KeyHive : Ptr32 to struct _HHIVE +0x014 KeyCell : Uint4B struct _HHIVE +0x058 Storage : [2] struct _DUAL Cell Index 1 bit 10 bits 9 bits 12 bits struct _DUAL +0x004 Map : Ptr32 to struct _HMAP_DIRECTORY Directory Table Offset struct _HMAP_DIRECTORY struct _HMAP_TABLE struct _CELL_DATA Ptr32 to struct _HMAP_TABLE struct _HMAP_ENTRY struct _HMAP_ENTRY +0x000 BlockAddress : Uint4B 1024 pointers 512 struct _HMAP_ENTRY Voyage (rapide) au cœur de la mémoire 22 / 30

Dump de crédentials Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Base SAM. Secrets LSA. Cache de domaine. Voyage (rapide) au cœur de la mémoire 23 / 30

Plan Organisation de la mémoire Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise 1 Organisation de la mémoire 2 3 Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Voyage (rapide) au cœur de la mémoire 24 / 30

Se logger sans mot de passe Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Contexte Accès en lecture/écriture à la mémoire Peut-on se logguer sans mot de passe? Plusieurs possibilités : winlockpwn d Adam Boileau (patch la fonction responsable de l authentification) ou... patch de 2 octets dans la base de registres :) Voyage (rapide) au cœur de la mémoire 25 / 30

Plan Organisation de la mémoire Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise 1 Organisation de la mémoire 2 3 Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Voyage (rapide) au cœur de la mémoire 26 / 30

Éxécution de code arbitraire Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Contexte Accès en lecture-écriture Comment exécuter du code? Une solution Hooker des pointeurs de fonctions Voyage (rapide) au cœur de la mémoire 27 / 30

Éxécution de code arbitraire Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Quels pointeurs? Structure KUSER SHARED DATA Champ SystemCall Appelé avant chaque appel système Où stocker le code? La structure KUSER SHARED DATA a une taille de 334 octets, le reste de la page est disponible Voyage (rapide) au cœur de la mémoire 27 / 30

Éxécution de code arbitraire Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Comment ça marche? Un seul Desktop peut interagir avec l utilisateur Chaque application a besoin d un desktop Pour un utilisateur, 3 desktops Default, Disconnect et Winlogon Pour lancer un cmd.exe avant l authentification, il suffit juste de préciser que le desktop du cmd sera celui de Winlogon Voyage (rapide) au cœur de la mémoire 28 / 30

Conclusion et pistes futures Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise ipod 101 Accès physique = root Il est possible de reconstruire un instantané du système d exploitation à partir de la mémoire physique. Beaucoup d applications possibles : forensics, debug, intrusion. Pistes futures : support de Linux, interface avec Sandman et utilisation du fichier de swap. Voyage (rapide) au cœur de la mémoire 29 / 30

Questions? Organisation de la mémoire Read : rassembler des informations Write : tout est permis execute : Welcome to Paradise Merci de votre attention Des questions? Voyage (rapide) au cœur de la mémoire 30 / 30