Exécution
Rapports d'erreurs Windows (WER)
Fiche Windows Error Reporting : dossiers Report.wer, champs AppPath et SHA-1, événements Application 1000/1001/1002, vidages LocalDumps et rétention.
- Emplacement
- C:\ProgramData\Microsoft\Windows\WER\ReportArchive\<ReportFolder>\Report.wer
- Prouve
- Un programme a tourné puis planté ou gelé, avec son chemin, l'heure et parfois son SHA-1
- Horodatages
- EventTime et heure de démarrage de l'app (Report.wer) en FILETIME, UTC ; événements Application 1000/1001/1002 en UTC ; dates $SI des dossiers peu fiables
- Rétention
- Plafonds par défaut : 1 000 rapports archivés et 50 en file, les plus anciens supprimés ; LocalDumps désactivé par défaut ; événements jusqu'à rotation
- Accès
- Administrateur pour les dossiers WER système (robocopy /B), dossiers par utilisateur dans chaque profil ; Application.evtx verrouillé, via wevtutil
- Preuve de
- Exécution
- Type
- Fichier / système de fichiers
- Windows
- Vista / 78 / 8.11011
- Cible KAPE
- WER
- Velociraptor
- Windows.Triage.Targets:WER
Outils
Comparer tous les outilsPrésentation
Windows Error Reporting (WER) est le service qui prend en charge les plantages d'applications, les blocages et certains problèmes du noyau. Pour chaque événement, il crée un dossier de rapport contenant un fichier texte nommé Report.wer (et parfois des vidages mémoire et des métadonnées), puis écrit les entrées correspondantes dans le journal Application. Pour l'enquêteur, WER est une source discrète de preuves d'exécution : code d'exploitation, implants instables, outils de vol d'identifiants et outils offensifs plantent souvent, et le rapport survit à la suppression du binaire par l'attaquant.
Emplacement
| Portée | Chemin | Remarques |
|---|---|---|
| Système (Vista et suivants) | C:\ProgramData\Microsoft\Windows\WER\ReportArchive\ | Rapports déjà traités ou envoyés |
| Système | C:\ProgramData\Microsoft\Windows\WER\ReportQueue\ | Rapports en attente d'envoi ou de consentement |
| Par utilisateur | C:\Users\<utilisateur>\AppData\Local\Microsoft\Windows\WER\ReportArchive\ et ...\ReportQueue\ | Plantages de processus exécutés dans le contexte de l'utilisateur |
| Vidages locaux (si configurés) | %LOCALAPPDATA%\CrashDumps\ par défaut | Activés via LocalDumps, voir plus bas |
| Journal d'événements | Application.evtx : source Application Error (1000), Windows Error Reporting (1001), Application Hang (1002) | Tourne avec le journal Application |
| Configuration | HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting (existe aussi sous HKCU) | LocalDumps uniquement sous HKLM |
Les dossiers de rapport portent le type d'événement et le nom de l'application, par exemple AppCrash_<nom de l'exe>_<hash>_<id>, AppHang_... ou Kernel_....
Ce que l'artefact prouve
- Exécution : l'application située à
AppPathtournait au moment du plantage ou du blocage. Un rapport pourC:\Users\Public\x.exeprouve que ce fichier a existé et a été exécuté. - Identité d'un binaire supprimé : sous Windows 10 et ultérieur, de nombreux rapports système contiennent le SHA-1 de l'exécutable dans
TargetAppId, sous la même forme préfixée par0000que dans Amcache. Tous les rapports ne l'ont pas. - Ce qui était chargé :
LoadedModule[n]liste les DLL du processus, ce qui peut trahir un module injecté dans un hôte légitime. - Heure de démarrage du processus : l'événement 1000 enregistre l'heure de démarrage et le PID de l'application fautive.
- L'artefact ne prouve pas que l'utilisateur a lancé le programme volontairement, et un programme qui n'a jamais planté ne laisse rien ici.
Champs clés
Champ (Report.wer) | Signification |
|---|---|
EventType | Type de rapport, par exemple APPCRASH pour un plantage |
EventTime | Moment de l'événement (FILETIME) |
FriendlyEventName | Libellé lisible, par exemple « Stopped working » |
AppName, AppPath | Description du produit et chemin complet de l'exécutable |
NsAppName, OriginalFilename | Nom interne et nom de fichier d'origine du PE ; un écart avec AppPath révèle un renommage |
TargetAppId | Identifiant de l'application ; pour un programme non Microsoft, il peut commencer par W: suivi de 0000 et du SHA-1 |
ApplicationIdentity | Identifiant de l'application sous forme d'empreinte |
Sig[n].Name / Sig[n].Value | Signature du problème : noms de l'application et du module fautif, versions, code d'exception et décalage |
LoadedModule[n] | Chemins complets des modules chargés |
L'événement 1000 (Application Error) contient les noms et versions de l'application et du module fautifs, le code d'exception, le décalage de la faute, l'identifiant du processus, l'heure de démarrage de l'application, les chemins de l'application et du module, et un Report Id. L'événement 1001 (Windows Error Reporting) contient le compartiment d'erreur (fault bucket), le nom de l'événement, la signature du problème, les fichiers joints et le dossier où le rapport est stocké.
Horodatages
| Horodatage | Positionné quand | Format | Pièges |
|---|---|---|---|
EventTime | Détection du plantage ou du blocage | FILETIME, UTC | Il faut décoder l'entier 64 bits ; ce n'est pas une heure locale |
| « Faulting application start time » (1000) | Création du processus | FILETIME en hexadécimal, UTC | Donne l'heure de démarrage, pas seulement celle du plantage |
TimeCreated des événements 1000/1001/1002 | Écriture de l'événement | FILETIME, UTC | Le 1001 peut être écrit après le 1000, au traitement du rapport |
Horodatages $SI du dossier et de Report.wer | Création du rapport ou déplacement de la file vers l'archive | NTFS, UTC | Le déplacement modifie les dates du dossier ; fiez-vous à EventTime |
Rétention et effacement
- Valeurs par défaut documentées :
MaxArchiveCount1 000 rapports etMaxQueueCount50 rapports ; les plus anciens sont supprimés au-delà. - WER peut être désactivé avec
Disabled= 1, l'archivage avecDisableArchive= 1 et la file d'attente avecDisableQueue= 1, sous la clé WER ou son équivalent de stratégie. Sur un poste de travail, chacun de ces réglages mérite une question. - Le Nettoyage de disque propose de supprimer les fichiers de rapports d'erreurs, et un attaquant peut simplement vider les dossiers WER. Les suppressions restent parfois visibles dans le journal USN et la $MFT, et les événements Application 1000/1001 survivent aux fichiers jusqu'à la rotation du journal.
- LocalDumps (Windows Vista SP1 et suivants) est désactivé par défaut. Sous
HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps(global ou par sous-clé<exe>),DumpFolder(par défaut%LOCALAPPDATA%\CrashDumps),DumpCount(10 par défaut) etDumpType(0 personnalisé, 1 mini, 2 complet) règlent les vidages conservés localement. Une sous-cléLocalDumps\lsass.exeavecDumpType2 doit faire penser à un vol d'identifiants.
Collecte
- Cible KAPE :
WER(les deux arborescences WER,CrashDumpset les*.dmpdeC:\Windows). - Velociraptor (
Windows.Triage.Targets) :WER. - Commandes natives : les dossiers sont lisibles par un administrateur ;
robocopyconserve les horodatages. Exportez le journal Application pour les événements 1000/1001/1002 et la clé WER de la ruche SOFTWARE.
robocopy C:\ProgramData\Microsoft\Windows\WER E:\case\WER\System /E /COPY:DAT /DCOPY:T /B
wevtutil epl Application E:\case\Application.evtx
reg export "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting" E:\case\wer-config.reg
Get-WinEvent -FilterHashtable @{LogName='Application'; Id=1000,1001,1002} | Format-List TimeCreated, Id, Message
Outils d'analyse
- Un éditeur de texte ou
Get-Content:Report.werest un simple texteNom=Valeuren UTF-16. - AppCrashView (NirSoft, gratuit) : liste les plantages à partir des fichiers de rapport WER d'un système en direct ou monté.
- EvtxECmd (Eric Zimmerman) : inclut une map pour l'événement Application 1001 (Windows Error Reporting).
- Velociraptor : l'artefact communautaire
Windows.System.WindowsErrorReporting(artifact exchange) extraitEventTime,AppPath,OriginalFilenameet le SHA-1 deTargetAppId. - WinDbg : analyse les vidages joints à un rapport ou conservés par LocalDumps (voir vidages sur incident).
Conseils d'investigation
- Recherchez dans tous les
Report.werles valeursAppPathsituées dans des dossiers accessibles en écriture aux utilisateurs (\Temp\,\Downloads\,\Users\Public\,\ProgramData\) et les noms d'outils commemimikatz,procdump,rcloneoupsexec. - Extrayez le SHA-1 de
TargetAppIdet cherchez-le dans Amcache et dans le renseignement sur la menace, même si le binaire a disparu. - Comparez
OriginalFilenameau nom de fichier deAppPath: unsvchost.exedont le nom d'origine estmimikatz.exeest un outil renommé. - Le plantage de
lsass.exe,explorer.exeou d'un navigateur avec un module inattendu dansLoadedModulepeut révéler une injection ; vérifiez le chemin du module dans le Prefetch. - Une rafale de plantages du même binaire au moment de l'intrusion correspond souvent à un exploit relancé plusieurs fois ; alignez
EventTimesur les ouvertures de session des journaux d'événements. - Un blocage ou une mise en quarantaine par Defender peut aussi tuer un processus : recoupez avec les journaux Microsoft Defender avant de conclure à un plantage.
Artefacts liés
- Vidages mémoire (MEMORY.DMP, minidumps)Fiche vidages mémoire : emplacements de MEMORY.DMP et des minidumps, types CrashControl, vidages en mode utilisateur, traces de dump LSASS et outils d'analyse.
- Amcache.hveFiche Amcache.hve : clés d'inventaire des fichiers et programmes, SHA-1, métadonnées PE, horodatages, et pourquoi une entrée ne prouve pas l'exécution.
- Fichiers Prefetch (.pf)Fiche Prefetch Windows : emplacement des .pf par version, nombre d'exécutions, huit dernières dates, fichiers référencés, rétention et analyse.
- Journaux d'événements Windows (EVTX)Fiche des journaux d'événements Windows : emplacements EVTX, ID indispensables (connexions, processus, services, effacement), rétention, audit et outils.
- Journaux et quarantaine Microsoft DefenderForensique Microsoft Defender : événements 1116/1117/5001/5007, fichiers MPLog, DetectionHistory, quarantaine chiffrée, exclusions et traces de sabotage.
Termes du glossaire
- Preuve d'exécutionLes artefacts qui montrent qu'un programme s'est réellement exécuté sous Windows, et pas seulement qu'il était présent sur le disque.
- FILETIMELe format d'horodatage Windows sur 64 bits qui compte les intervalles de 100 nanosecondes depuis le 1er janvier 1601 UTC.
- ID d'événement WindowsLe numéro qui identifie un type d'événement au sein d'un fournisseur donné ; il n'a de sens qu'associé à ce fournisseur et à son canal.
- Anti-forensiqueTechniques visant à détruire, cacher ou falsifier des preuves : effacement de journaux, timestomping, wiping, suppression des clichés ou du journal USN.