Forensic en environnement Windows

k-lfa  ·  6 juin 2019

Forensic en environnement Windows
Sommaire↑ Haut de l'article

Ce billet est dédié à l’investigation numérique sur un système Microsoft en Computer forensic (À froid)

Avant tout, un rappel du lexique et du FS Microsoft sont nécessaires pour comprendre la portée de recherche des preuves.

Lexique

Informations sur le NTFS

Quelques fichiers systèmes utilisés par NTFS

Séquence de boot windows (LEGACY)

  1. POWER : Alimentation du matériel, (Motherboard, CPU, …)
  2. BIOS : détection d’erreurs, init matériel, choix du média de boot
  3. MBR : Premier secteur de disque (Tables de partition, recherche de partition active)
  4. BootSector NTFS : 16 premiers secteurs de la partition, Information sur la taille des clusters, record MFT, index, recherche du gestionnaire de boot
  5. Bootloader windows : Démarrage via bootmgr, lecture du fichier de configuration \Boot\BCD
  6. Chargeur de démarrage windows : winload.exe charge l’OS et des options de configuration (Pagination, Pilotes de boot, ruche de registre en mémoire)
  7. win32k.sys : chargement du sous système kernelland pour les appels système
  8. crss.exe : Chargement du sous système userland en session 0
  9. wininit.exe : Lancé au démarrage de session chargeant le gestionnaire de services service.exe, gestionnaire d’authentification lsass.exe, gestionnaire de sessions TSE lsm.exe

Notes : Pour les attaques avancées les composants VBR/MBR sont généralement la cible des bootkits (Difficile à localiser)

Séquence de démarrage windows (UEFI)

  1. POWER :  Alimentation du matériel, (Motherboard, CPU, …)
  2. UEFI BOOT ROM : Firmware ROM fournissant les fonctions du BIOS
  3. GPT : Semblable au MBR mais évolué (Moins limité en partition et taille)
  4. BootSector NTFS
  5. Gestionnaire de démarrage : bootmgfw.efi
  6. Suite semblable au LEGACY

Maintenant que les yeux ont saigné, passons à l’essentiel

Il existe 2 types de forensics

Forensic à chaud

Ou appelée “levée de doute”, cette méthode s’applique à chaud avec une potentielle altération des données

  1. Accès et analyse manuelle du système
  2. Analyse automatique de l’OS et base de registre
  3. analyse manuelle de la base de registre
  4. Analyse des artefacts/binaire

Quelques outils forensic windows pour le forensic à chaud :

La suite sysinternal est très complète et assez user friendly, elle contient des outils pratiques comme :

D’autres outils sont aussi indispensables

Forensic à froid

La rigueur et méthodologie sont obligatoires dans ce processus, il est indispensable de créer une image disque à froid afin de ne pas altérer les données d’origine et de contrôler que le checksum est identique.

Une fois les images créées la méthodologie est la suivante :

1- Information sur l’événement

Avant d’intervenir, il est nécessaire de comprendre “De quoi il s’agit”, c’est le moment de récupérer des informations sur le déclencheur de la réponse à incident : Symptôme ? Depuis quand ? Occurrence ? …

Avec ces informations il est possible de dresser une Timeline avec la date de compromission

Si la date de compromission est connue :

  1. Identification de l’environnement de la machine (Rôle, Utilisation, Droits, Place sur le réseau, accès, ….)
  2. Génération de la timeline globale (avec les informations récupérées)
  3. Analyse de la timeline
  4. Recherche d’éléments suspects dans la période de la timeline (Date, Mots clés …)

Si la date de compromission n’est pas connue :

  1. Recherche des signes de compromission sur toutes les périodes
  2. Génération de la timeline pour avoir les informations utiles triées selon le temps

2- Signe de compromission

Analyser les comportements système :

En cas de compromission il est nécessaire de recetter les accès et privilèges du poste, notamment lorsque le poste se trouve dans un SI. Lorsqu’un poste est victime d’une intrusion, le périmètre peut s’étendre à un contrôleur de domaine et à d’autres services comme les serveurs applicatifs ou de fichiers.

À ce stade, l’investigation devra également se faire avec une analyse des services principaux du SI et des traces laissées sur le réseau (log firewalls, IDS, WAF, …)

3- Méthodologie

1- Synthétiser le contexte

Il est important de rappeler le contexte et les informations acquises avant l’investigation

2- Acquisition des données

1- Une fois le poste hors tension, extraire le matériel de stockage des données ( sans l’abîmer ;) )

2- Brancher le disque sur votre système d’investigation (! S’assurer que l’OS ne montera pas le disque automatiquement !)

3- Démarrer le clonage du disque  (Attention ça peut être gourmand en stockage) La best practice conseille d’effectuer 3 clones. Utilisez votre logiciel favori (Clonezilla, dd, …) Le choix logiciel ne manque pas

dd if=/dev/sde of=/root/Case01/forensicdata.dd bs=4096 conv=noerror,sync
#Copie du disque sde bit à bit intégral vers un fichier

4- Contrôle de la somme d’intégrité des clones

(! Tout doit être identique !)

En shell

md5sum /root/Case01/forensicData.dd
3c54ae215f74cf68cefd66f453782ecf /root/Case01/forensicData.dd

md5sum /root/Case01/forensicData2.dd
3c54ae215f74cf68cefd66f453782ecf /root/Case01/forensicData2.dd

md5sum /root/Case01/forensicData3.dd
3c54ae215f74cf68cefd66f453782ecf /root/Case01/forensicData.dd3

En powershell

Get-Filehash -Algorithm MD5 * | select Hash, Path

Hash                                    Path
----                                    ----

3c54ae215f74cf68cefd66f453782ecf D:\Case01\forensicData.dd
3c54ae215f74cf68cefd66f453782ecf D:\Case01\forensicData2.dd
3c54ae215f74cf68cefd66f453782ecf D:\Case01\forensicData3.dd

5- Générer la timeline

L’objectif est de créer une timeline globale avec toutes les informations (très complet mais l’information utile sera noyée sous la masse). En utilisant des filtres il sera possible d’identifier une date d’incident potentiel et de créer une mini-timeline sur cette date (Like an entonnoir)

Pour générer une timeline le framework Sleuth est très utile

  1. Utiliser mmls pour trouver l’offset du début de partition qui nous intéresse
mmls /root/Case01/forensicData.dd

DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

      Slot      Start        End          Length       Description
000:  Meta      0000000000   0000000000   0000000001   Primary Table (#0)
001:  -------   0000000000   0000002047   0000002048   Unallocated
002:  000:000   0000002048   0000206847   0000204800   NTFS / exFAT (0x07)
003:  000:001   0000206848   0062912511   0062705664   NTFS / exFAT (0x07)
004:  -------   0062912512   0062914559   0000002048   Unallocated
  1.  Création de la timeline globale
fls -o 206848 -z GMT -s 0 -m '/' -f ntfs -r /root/Case01/forensicData.dd >> /root/Case01/Global_Timeline.txt

#L'offset se situe généralement sur la deuxieme partition NTFS 206848
  1.  Créer la mini-timeline sur une date choisie
mactime -b /root/Case01/Global_Timeline.txt -z GMT -d 2019-04-25..2019-04-28 > /root/Case01/Mini_Timeline.csv

#2019-04-25 Correspond au 25 Avril 2019

Une jolie timeline en csv (Vive l’OpenSource)

Un bon lien pour des tools faisant des timelines

Pour les brutes ne souhaitant pas monter le disque :

Identifier un format de fichiers

fls -r -F -o 206848 /root/Case01/forensicData.dd | grep ".xls"
fls -r -F -o 206848 /root/Case01/forensicData.dd | grep ".ps1"
fls -r -F -o 206848 /root/Case01/forensicData.dd | grep ".kdb"
...

#-r recherche recursive
#-F Seulement les fichiers

Extraire un fichier :

icat -o 206848 /root/Case01/forensicData.dd 47658 > Password.xls

#47658 correspond a l'inode du fichier identifié avec fls precedemment

6- Monter les disques (! Absolument en read Only !)

Plusieurs outils permettent le montage de FS, pour les puristes :

mount -t ntfs -o ro,show_sys_files,streams_interface=windows,offset=$((512*yy)) /root/Case01/forenscData.dd /mnt/Case01

En cas de partition chiffrée plusieurs alternatives existent selon le type de chiffrement

dislocker -r -v -o $((2048**512)) -V /root/Case01/forensicData.dd -- /root/Case01

mount -o ro,loop /root/Case01/dislocker-file /mnt/Case01

7- Recherche d’artefact

Le moment moteur de l’investigation est la recherche d’artefact qui permettra de mettre en lumière les évidences pour y dresser la fameuse chain of evidence.

Le système Windows est très bavard, de nombreux fichiers et informations sont créés à la moindre action :

ABSOLUMENT TOUT LAISSE DES TRACES

Il serait bien trop long de tout détailler mais heureusement tous les types d’artefact sont inventoriés et localisés et synthétisés sous forme de “POSTER” (MERCI SANS.org)

Je recommande les consulter sans modération c’est indispensable

https://blogs.sans.org/computer-forensics/files/2012/06/SANS-Digital-Forensics-and-Incident-Response-Poster-2012.pdf

https://www.sans.org/security-resources/posters/windows-forensic-analysis/170/download

Comme décrit dans les posters, il y a de nombreux coins à explorer, pour gagner du temps il est préférable de récupérer les fichiers les plus sensibles :

Les méthodes de recherche d’artefact varient selon les contextes d’investigations, dans le cas d’une infection malware il est utile de rechercher les programmes téléchargés, exécutés, les logs systèmes, … à l’inverse d’une investigation de type pénal comme de la pédoporn où il sera plutôt utile de chercher sur l’historique les vignettes enregistrées, les fichiers supprimés, …

Heureusement pour exploiter les nombreux artefacts, il existe de nombreux outils capables de faciliter la recherche

https://github.com/williballenthin/python-evtx

Les outils sont nombreux il appartient à chacun de faire sa propre liste d’outils, quelques liens sympa pour les outils :

https://www.nirsoft.net/ (indispensable pour les artefacts poster SANS)

https://ericzimmerman.github.io/#!index.md (Lui aussi)

https://github.com/thimbleweed/All-In-USB/tree/master/utilities

8- Mise en évidence

Une fois les artefacts identifiés il est nécessaire de faire la corrélation entre la date, les actions utilisateurs et le process de l’attaque. Dans les cas d’investigation pénale il est nécessaire de prouver la responsabilité de l’utilisateur dans l’action ayant engendré l’incident.

Dans le cas d’une attaque par malware, il est possible de devoir pousser l’analyse jusqu’au reverse engineering (analyse de binaire), certaines plateformes automatisent et simplifient le processus (mais ça ne vaut pas l’expertise manuelle)

https://www.reverse.it/

En cas de reverse manuel, il est important de le faire sur un labo dédié à cet effet :

Un script est disponible pour transformer une machine windows en véritable labo d’analyse de malware (à consommer sans modération)

https://github.com/fireeye/flare-vm

Dans le cas d’une attaque par Malware si la corrélation des données permet de confirmer la chain of evidence, il est conseillé de synthétiser le process au moyen de la cyberkill chain (via Mitre)

https://attack.mitre.org/

Quelques liens utiles

https://forensicswiki.org/wiki/Main_Page

https://forensicswiki.org/wiki/Tools

https://teambi0s.gitlab.io/bi0s-wiki/forensics/intro/

http://defensewiki.ibj.org/index.php/Forensic_Evidence

Pour la culture et la détente https://zythom.blogspot.com/

Bonne chasse !