hacktricks/forensics/basic-forensic-methodology/windows-forensics/README.md
2023-06-03 13:10:46 +00:00

24 KiB
Raw Blame History

Artéfacts Windows

Artéfacts Windows

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Artéfacts Windows génériques

Notifications Windows 10

Dans le chemin \Users\<username>\AppData\Local\Microsoft\Windows\Notifications, vous pouvez trouver la base de données appdb.dat (avant l'anniversaire de Windows) ou wpndatabase.db (après l'anniversaire de Windows).

Dans cette base de données SQLite, vous pouvez trouver la table Notification avec toutes les notifications (au format XML) qui peuvent contenir des données intéressantes.

Chronologie

La chronologie est une caractéristique de Windows qui fournit un historique chronologique des pages Web visitées, des documents édités et des applications exécutées.

La base de données réside dans le chemin \Users\<username>\AppData\Local\ConnectedDevicesPlatform\<id>\ActivitiesCache.db. Cette base de données peut être ouverte avec un outil SQLite ou avec l'outil WxTCmd qui génère 2 fichiers qui peuvent être ouverts avec l'outil TimeLine Explorer.

ADS (flux de données alternatifs)

Les fichiers téléchargés peuvent contenir la zone ADS.Identifier indiquant comment il a été téléchargé depuis l'intranet, l'internet, etc. Certains logiciels (comme les navigateurs) mettent généralement encore plus d'informations comme l'URL à partir de laquelle le fichier a été téléchargé.

Sauvegardes de fichiers

Corbeille

Dans Vista/Win7/Win8/Win10, la Corbeille peut être trouvée dans le dossier $Recycle.bin à la racine du lecteur (C:\$Recycle.bin).
Lorsqu'un fichier est supprimé dans ce dossier, 2 fichiers spécifiques sont créés :

  • $I{id} : Informations sur le fichier (date de suppression)
  • $R{id} : Contenu du fichier

En ayant ces fichiers, vous pouvez utiliser l'outil Rifiuti pour obtenir l'adresse originale des fichiers supprimés et la date à laquelle ils ont été supprimés (utilisez rifiuti-vista.exe pour Vista - Win10).

.\rifiuti-vista.exe C:\Users\student\Desktop\Recycle

Copies d'ombre de volume

Shadow Copy est une technologie incluse dans Microsoft Windows qui peut créer des copies de sauvegarde ou des instantanés de fichiers ou de volumes informatiques, même lorsqu'ils sont en cours d'utilisation.

Ces sauvegardes sont généralement situées dans le dossier \System Volume Information à partir de la racine du système de fichiers et le nom est composé d'UID comme indiqué dans l'image suivante :

En montant l'image de la forensique avec ArsenalImageMounter, l'outil ShadowCopyView peut être utilisé pour inspecter une copie d'ombre et même extraire les fichiers des sauvegardes de copie d'ombre.

L'entrée de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore contient les fichiers et les clés à ne pas sauvegarder :

Le registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS contient également des informations de configuration sur les copies d'ombre de volume.

Fichiers Office AutoSaved

Vous pouvez trouver les fichiers Office autosauvegardés dans : C:\Usuarios\\AppData\Roaming\Microsoft{Excel|Word|Powerpoint}\

Éléments de Shell

Un élément de shell est un élément qui contient des informations sur la façon d'accéder à un autre fichier.

Documents récents (LNK)

Windows crée automatiquement ces raccourcis lorsque l'utilisateur ouvre, utilise ou crée un fichier dans :

  • Win7-Win10 : C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\
  • Office : C:\Users\\AppData\Roaming\Microsoft\Office\Recent\

Lorsqu'un dossier est créé, un lien vers le dossier, le dossier parent et le dossier grand-parent est également créé.

Ces fichiers de lien créés automatiquement contiennent des informations sur l'origine comme s'il s'agit d'un fichier ou d'un dossier, des horodatages MAC de ce fichier, des informations de volume de l'emplacement où le fichier est stocké et du dossier du fichier cible. Ces informations peuvent être utiles pour récupérer ces fichiers en cas de suppression.

De plus, la date de création du lien est la première fois où le fichier d'origine a été utilisé et la date de modification du lien est la dernière fois où le fichier d'origine a été utilisé.

Pour inspecter ces fichiers, vous pouvez utiliser LinkParser.

Dans cet outil, vous trouverez 2 ensembles de horodatages :

  • Premier ensemble :
    1. FileModifiedDate
    2. FileAccessDate
    3. FileCreationDate
  • Deuxième ensemble :
    1. LinkModifiedDate
    2. LinkAccessDate
    3. LinkCreationDate.

Le premier ensemble d'horodatages fait référence aux horodatages du fichier lui-même. Le deuxième ensemble fait référence aux horodatages du fichier lié.

Vous pouvez obtenir les mêmes informations en exécutant l'outil de ligne de commande Windows : LECmd.exe

LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs

Dans ce cas, les informations vont être enregistrées dans un fichier CSV.

Jumplists

Ce sont les fichiers récents indiqués par application. C'est la liste des fichiers récents utilisés par une application auxquels vous pouvez accéder sur chaque application. Ils peuvent être créés automatiquement ou personnalisés.

Les jumplists créés automatiquement sont stockés dans C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\. Les jumplists sont nommés selon le format {id}.autmaticDestinations-ms où l'ID initial est l'ID de l'application.

Les jumplists personnalisés sont stockés dans C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\ et sont créés par l'application généralement parce que quelque chose d'important s'est produit avec le fichier (peut-être marqué comme favori).

L'heure de création de n'importe quelle jumplist indique la première fois que le fichier a été accédé et l'heure de modification la dernière fois.

Vous pouvez inspecter les jumplists en utilisant JumplistExplorer.

(Notez que les horodatages fournis par JumplistExplorer sont liés au fichier jumplist lui-même)

Shellbags

Suivez ce lien pour savoir ce que sont les shellbags.

Utilisation des clés USB Windows

Il est possible d'identifier qu'un périphérique USB a été utilisé grâce à la création de :

  • Dossier récent Windows
  • Dossier récent Microsoft Office
  • Jumplists

Notez que certains fichiers LNK, au lieu de pointer vers le chemin d'origine, pointent vers le dossier WPDNSE :

Les fichiers du dossier WPDNSE sont une copie de ceux d'origine, ils ne survivront donc pas à un redémarrage du PC et le GUID est pris à partir d'un shellbag.

Informations du registre

Vérifiez cette page pour savoir quels clés de registre contiennent des informations intéressantes sur les périphériques USB connectés.

setupapi

Vérifiez le fichier C:\Windows\inf\setupapi.dev.log pour obtenir les horodatages sur quand la connexion USB a été produite (recherchez Section start).

USB Detective

USBDetective peut être utilisé pour obtenir des informations sur les périphériques USB qui ont été connectés à une image.

Nettoyage Plug and Play

La tâche planifiée "Nettoyage Plug and Play" est responsable de supprimer les versions obsolètes des pilotes. Il semblerait (selon des rapports en ligne) qu'elle supprime également les pilotes qui n'ont pas été utilisés depuis 30 jours, bien que sa description indique que "la version la plus récente de chaque package de pilotes sera conservée". En tant que tel, les périphériques amovibles qui n'ont pas été connectés depuis 30 jours peuvent avoir leurs pilotes supprimés.

La tâche planifiée elle-même est située à 'C:\Windows\System32\Tasks\Microsoft\Windows\Plug and Play\Plug and Play Cleanup', et son contenu est affiché ci-dessous :

La tâche fait référence à 'pnpclean.dll' qui est responsable de l'activité de nettoyage, en outre, nous voyons que le champ UseUnifiedSchedulingEngine est défini sur TRUE ce qui spécifie que le

BAM (Background Activity Moderator)

Vous pouvez ouvrir le fichier SYSTEM avec un éditeur de registre et à l'intérieur du chemin SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}, vous pouvez trouver les informations sur les applications exécutées par chaque utilisateur (notez le {SID} dans le chemin) et à quelle heure elles ont été exécutées (l'heure est à l'intérieur de la valeur de données du registre).

Windows Prefetch

Le prefetching est une technique qui permet à un ordinateur de récupérer silencieusement les ressources nécessaires pour afficher le contenu qu'un utilisateur pourrait accéder dans un proche avenir afin que les ressources puissent être accédées plus rapidement.

Le prefetching de Windows consiste à créer des caches des programmes exécutés pour pouvoir les charger plus rapidement. Ces caches sont créés sous forme de fichiers .pf dans le chemin : C:\Windows\Prefetch. Il y a une limite de 128 fichiers dans XP/VISTA/WIN7 et 1024 fichiers dans Win8/Win10.

Le nom de fichier est créé comme {nom_du_programme}-{hash}.pf (le hash est basé sur le chemin et les arguments de l'exécutable). Dans W10, ces fichiers sont compressés. Notez que la simple présence du fichier indique que le programme a été exécuté à un moment donné.

Le fichier C:\Windows\Prefetch\Layout.ini contient les noms des dossiers des fichiers qui sont prefetchés. Ce fichier contient des informations sur le nombre d'exécutions, les dates d'exécution et les fichiers ouverts par le programme.

Pour inspecter ces fichiers, vous pouvez utiliser l'outil PEcmd.exe :

.\PECmd.exe -d C:\Users\student\Desktop\Prefetch --html "C:\Users\student\Desktop\out_folder"

Superprefetch

Superprefetch a le même objectif que prefetch, charger les programmes plus rapidement en prédisant ce qui va être chargé ensuite. Cependant, il ne remplace pas le service prefetch.
Ce service générera des fichiers de base de données dans C:\Windows\Prefetch\Ag*.db.

Dans ces bases de données, vous pouvez trouver le nom du programme, le nombre d'exécutions, les fichiers ouverts, le volume accédé, le chemin complet, les plages temporelles et les horodatages.

Vous pouvez accéder à ces informations en utilisant l'outil CrowdResponse.

SRUM

System Resource Usage Monitor (SRUM) surveille les ressources consommées par un processus. Il est apparu dans W8 et stocke les données dans une base de données ESE située dans C:\Windows\System32\sru\SRUDB.dat.

Il fournit les informations suivantes :

  • ID de l'application et chemin d'accès
  • Utilisateur ayant exécuté le processus
  • Octets envoyés
  • Octets reçus
  • Interface réseau
  • Durée de la connexion
  • Durée du processus

Ces informations sont mises à jour toutes les 60 minutes.

Vous pouvez obtenir les données de ce fichier en utilisant l'outil srum_dump.

.\srum_dump.exe -i C:\Users\student\Desktop\SRUDB.dat -t SRUM_TEMPLATE.xlsx -o C:\Users\student\Desktop\srum

AppCompatCache (ShimCache)

Le Shimcache, également connu sous le nom de AppCompatCache, est un composant de la base de données de compatibilité des applications, créée par Microsoft et utilisée par le système d'exploitation pour identifier les problèmes de compatibilité des applications.

Le cache stocke diverses métadonnées de fichiers en fonction du système d'exploitation, telles que:

  • Chemin complet du fichier
  • Taille du fichier
  • $Standard_Information (SI) Heure de dernière modification
  • Heure de dernière mise à jour du ShimCache
  • Indicateur d'exécution de processus

Ces informations peuvent être trouvées dans le registre à:

  • SYSTEM\CurrentControlSet\Control\SessionManager\Appcompatibility\AppcompatCache
    • XP (96 entrées)
  • SYSTEM\CurrentControlSet\Control\SessionManager\AppcompatCache\AppCompatCache
    • Server 2003 (512 entrées)
    • 2008/2012/2016 Win7/Win8/Win10 (1024 entrées)

Vous pouvez utiliser l'outil AppCompatCacheParser pour analyser ces informations.

Amcache

Le fichier Amcache.hve est un fichier de registre qui stocke les informations des applications exécutées. Il est situé dans C:\Windows\AppCompat\Programas\Amcache.hve

Amcache.hve enregistre les processus récents qui ont été exécutés et liste le chemin des fichiers qui sont exécutés, ce qui peut ensuite être utilisé pour trouver le programme exécuté. Il enregistre également le SHA1 du programme.

Vous pouvez analyser ces informations avec l'outil Amcacheparser

AmcacheParser.exe -f C:\Users\student\Desktop\Amcache.hve --csv C:\Users\student\Desktop\srum

Le fichier CVS le plus intéressant généré est le fichier Amcache_Unassociated file entries.

RecentFileCache

Cet artefact ne peut être trouvé que dans W7 dans C:\Windows\AppCompat\Programs\RecentFileCache.bcf et il contient des informations sur l'exécution récente de certains binaires.

Vous pouvez utiliser l'outil RecentFileCacheParse pour analyser le fichier.

Tâches planifiées

Vous pouvez les extraire de C:\Windows\Tasks ou C:\Windows\System32\Tasks et les lire en tant que XML.

Services

Vous pouvez les trouver dans le registre sous SYSTEM\ControlSet001\Services. Vous pouvez voir ce qui va être exécuté et quand.

Windows Store

Les applications installées peuvent être trouvées dans \ProgramData\Microsoft\Windows\AppRepository\
Ce référentiel a un journal avec chaque application installée dans le système à l'intérieur de la base de données StateRepository-Machine.srd.

Dans la table Application de cette base de données, il est possible de trouver les colonnes : "Application ID", "PackageNumber" et "Display Name". Ces colonnes contiennent des informations sur les applications préinstallées et installées et il est possible de savoir si certaines applications ont été désinstallées car les ID des applications installées doivent être séquentiels.

Il est également possible de trouver des applications installées dans le chemin du registre : Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\
Et des applications désinstallées dans : Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deleted\

Événements Windows

Les informations qui apparaissent dans les événements Windows sont :

  • Ce qui s'est passé
  • Horodatage (UTC + 0)
  • Utilisateurs impliqués
  • Hôtes impliqués (nom d'hôte, IP)
  • Actifs accessibles (fichiers, dossiers, imprimantes, services)

Les journaux sont situés dans C:\Windows\System32\config avant Windows Vista et dans C:\Windows\System32\winevt\Logs après Windows Vista. Avant Windows Vista, les journaux d'événements étaient au format binaire et après, ils sont au format XML et utilisent l'extension .evtx.

L'emplacement des fichiers d'événements peut être trouvé dans le registre SYSTEM dans HKLM\SYSTEM\CurrentControlSet\services\EventLog\{Application|System|Security}

Ils peuvent être visualisés à partir de l'Observateur d'événements Windows (eventvwr.msc) ou avec d'autres outils comme Event Log Explorer ou Evtx Explorer/EvtxECmd.

Sécurité

Cela enregistre les événements d'accès et donne des informations sur la configuration de sécurité qui peut être trouvée dans C:\Windows\System32\winevt\Security.evtx.

La taille maximale du fichier d'événements est configurable et il commencera à écraser les anciens événements lorsque la taille maximale est atteinte.

Les événements qui sont enregistrés comme :

  • Connexion/Déconnexion
  • Actions de l'utilisateur
  • Accès aux fichiers, dossiers et actifs partagés
  • Modification de la configuration de sécurité

Événements liés à l'authentification de l'utilisateur :

EventID Description
4624 Authentification réussie
4625 Erreur d'authentification
4634/4647 Déconnexion
4672 Connexion avec des autorisations d'administrateur

À l'intérieur de l'EventID 4634/4647, il y a des sous-types intéressants :

  • 2 (interactif) : La connexion était interactive en utilisant le clavier ou un logiciel comme VNC ou PSexec -U-
  • 3 (réseau) : Connexion à un dossier partagé
  • 4 (lot) : Processus exécuté
  • 5 (service) : Service démarré par le Gestionnaire de contrôle des services
  • 6 (proxy) : Connexion proxy
  • 7 (déverrouillage) : Écran déverrouillé en utilisant un mot de passe
  • 8 (texte clair réseau) : Utilisateur authentifié en envoyant des mots de passe en clair. Cet événement venait de l'IIS
  • 9 (nouvelles informations d'identification) : Il est généré lorsque la commande RunAs est utilisée ou que l'utilisateur accède à un service réseau avec des informations d'identification différentes.
  • 10 (interactif à distance) : Authentification via Terminal Services ou RDP
  • 11 (cache interactif) : Accès en utilisant les dernières informations d'identification mises en cache car il n'a pas été possible de contacter le contrôleur de domaine
  • 12 (cache interactif à distance) : Connexion à distance avec des informations d'identification mises en cache (une combinaison de 10 et 11).
  • 13 (déverrouillage mis en cache) : Déverrouiller une machine verrouillée avec des informations d'identification mises en cache.

Dans ce post, vous pouvez trouver comment imiter tous ces types de connexion et dans lesquels vous pourrez extraire les informations d'identification de la mémoire : https://www.alteredsecurity.com/post/fantastic-windows-logon-types-and-where-to-find-credentials-in-them

Les informations d'état et de sous-état des événements peuvent indiquer plus de détails sur les causes de l'événement. Par exemple, jetez un coup d'œil aux codes d'état et de sous-état suivants de l'ID d'événement 4625 :

Récupération des événements Windows

Il est fortement recommandé d'éteindre l'ordinateur suspect en le débranchant pour maximiser la probabilité de récupération des événements Windows. Dans le cas où ils ont été supprimés, un outil qui peut être utile pour essayer de les récupérer est Bulk_extractor en indiquant l'extension evtx.

Identification des attaques courantes avec les événements Windows

Attaque par force brute

Une attaque par force brute peut être facilement identifiable car plusieurs EventIDs 4625 apparaîtront. Si l'attaque a été réussie, après les EventIDs 4625, un EventID 4624 apparaîtra.

Changement de temps

C'est terrible pour l'équipe de forensique car tous les horodatages seront modifiés. Cet événement est enregistré par l'EventID 4616 dans le journal d'événements de sécurité.

Périphériques USB

Les EventIDs système suivants sont utiles :

  • 20001 / 20003 / 10000 : Première fois qu'il a été utilisé
  • 10100 : Mise à jour du pilote

L'EventID 112 de DeviceSetupManager contient l'horodatage de chaque périphérique USB inséré.

Allumage / Extinction

L'ID 6005 du service "Journal des événements" indique que l'ordinateur a été allumé. L'ID 6006 indique qu'il a été éteint.

Suppression des journaux

L'EventID de sécurité 1102 indique que les journaux ont été supprimés.

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
  • Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre **entreprise annon