Aller au contenu

Persistance

Clés Run et dossiers Démarrage

Fiche clés Run et dossiers Démarrage : chemins Run, RunOnce, Wow6432Node et Policies, octets StartupApproved activé/désactivé, horodatages.

Emplacement
NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Run
Prouve
Un programme a été configuré pour démarrer à l'ouverture de session, d'un ou de tous les utilisateurs
Horodatages
LastWrite des clés Run et heure de désactivation StartupApproved en FILETIME, UTC ; dates $SI/$FN des fichiers du dossier Startup, UTC
Rétention
Entrées persistantes jusqu'à suppression, sans événement par défaut ; valeurs RunOnce supprimées à l'exécution ; anciennes valeurs dans logs de ruche et VSS
Accès
NTUSER.DAT et SOFTWARE verrouillés à chaud : collecte en NTFS brut ou VSS, ou reg save ; dossiers Startup copiables directement
Preuve de
Persistance
Type
Registre
Windows
XPVista / 78 / 8.11011
Cible KAPE
RegistryHivesUserRegistryHivesSystemStartupFolders
Velociraptor
Windows.Triage.Targets:RegistryHivesUserRegistryHivesSystemStartupFolders

Présentation

Les clés Run et les dossiers Démarrage sont les emplacements de démarrage automatique les plus anciens et les plus courants de Windows. Chaque ligne de commande placée sous une clé Run, et chaque fichier déposé dans un dossier Démarrage, est lancé à l'ouverture de session d'un utilisateur. Les emplacements propres à l'utilisateur ne demandent aucun droit d'administration : c'est le mécanisme de persistance préféré des malwares courants, et un gain rapide lors du tri d'une machine.

À partir de Windows 8, les clés StartupApproved indiquent si chaque entrée est activée ou désactivée, selon le réglage fait dans l'onglet Démarrage du Gestionnaire des tâches (et dans les Paramètres sous Windows 10/11).

Emplacement

PortéeEmplacementRemarques
Utilisateur courantNTUSER.DAT : Software\Microsoft\Windows\CurrentVersion\Run et \RunOnceS'exécute à l'ouverture de session de cet utilisateur
Tous les utilisateursSOFTWARE : Microsoft\Windows\CurrentVersion\Run et \RunOnceLe RunOnce de HKLM ne s'exécute qu'à l'ouverture de session d'un administrateur
Entrées 32 bits sur Windows 64 bitsSOFTWARE : WOW6432Node\Microsoft\Windows\CurrentVersion\Run et \RunOnceÉcrites par les installeurs 32 bits
Par stratégieMicrosoft\Windows\CurrentVersion\Policies\Explorer\Run (SOFTWARE et NTUSER.DAT)Normalement renseigné par les stratégies de groupe
État activé/désactivé (8 et suivants)Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run, \Run32, \StartupFolder (SOFTWARE et NTUSER.DAT)Une valeur par nom d'entrée
Dossier Démarrage de l'utilisateur (Vista et suivants)C:\Users\<utilisateur>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Dossier Démarrage commun (Vista et suivants)C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
Dossiers Démarrage (XP)C:\Documents and Settings\<utilisateur>\Start Menu\Programs\Startup et ...\All Users\Start Menu\Programs\Startup

L'emplacement des dossiers eux-mêmes est défini par Shell Folders / User Shell Folders sous Software\Microsoft\Windows\CurrentVersion\Explorer (valeurs Startup et Common Startup). Les rediriger constitue en soi une technique de persistance.

Ce que l'artefact prouve

  • Un programme a été configuré pour démarrer à l'ouverture de session, avec sa ligne de commande complète (registre) ou sous forme de fichier ou de raccourci dans un dossier Démarrage.
  • La portée : une entrée de NTUSER.DAT appartient à cet utilisateur ; une entrée de SOFTWARE s'applique à tous.
  • Activée ou non : StartupApproved indique si Windows lancera réellement l'entrée.
  • Elle ne prouve pas que le programme s'est exécuté. Confirmez avec le Prefetch, BAM ou les événements de processus.

Champs clés

ChampSignification
Nom de valeur (Run / RunOnce)Libellé libre, imitant souvent un éditeur
Données de la valeurLigne de commande (260 caractères maximum), arguments compris
Préfixe ! d'un nom de valeur RunOnceSupprimer la valeur seulement après l'exécution de la commande
Préfixe * d'un nom de valeur RunOnceExécuter même en mode sans échec
Données StartupApproved, premier octet0x02 activé, 0x03 désactivé
Données StartupApproved, octets 4 à 11FILETIME de la désactivation (zéro si l'entrée est activée)
Fichier du dossier Démarrage.lnk, .bat, .vbs, .exe, .url ou tout fichier exécutable

Horodatages

HorodatagePositionné quandFormatPièges
LastWrite de la clé RunUne valeur de la clé est ajoutée, modifiée ou suppriméeFILETIME, UTCConcerne la clé, pas une valeur précise ; les installeurs légitimes la modifient souvent
Date de désactivation StartupApprovedEntrée désactivée dans le Gestionnaire des tâches ou les ParamètresFILETIME, UTC, dans les données de la valeurRemise à zéro quand l'entrée est réactivée
Horodatages $SI / $FN d'un fichier du dossier DémarrageCréation, modification du fichierNTFS, UTC$SI peut être falsifié (timestomping) ; comparez avec $FN dans la $MFT
Horodatages internes d'un LNKDates de la cible à la création du raccourciFILETIME, UTCDécrivent la cible, pas le raccourci ; voir fichiers LNK

Rétention et effacement

  • Les entrées Run restent jusqu'à leur suppression. Une suppression ne génère aucun événement par défaut ; cherchez les anciennes valeurs dans les journaux de transactions de la ruche, les clichés instantanés et l'espace non alloué de la ruche.
  • Windows supprime les valeurs RunOnce juste avant (ou, avec !, juste après) leur exécution : une charge à usage unique peut ne laisser que le LastWrite de la clé et des traces d'exécution.
  • Supprimer une valeur de Run ne supprime pas l'entrée StartupApproved correspondante ; une valeur StartupApproved orpheline peut trahir une entrée Run retirée.
  • Leurre possible : une entrée ajoutée à Run mais marquée désactivée dans StartupApproved ressemble à une persistance mais ne s'exécute jamais. Vérifiez toujours les deux.

Collecte

  • Cible KAPE : RegistryHivesUser (NTUSER.DAT), RegistryHivesSystem (SOFTWARE) et StartupFolders.
  • Velociraptor (Windows.Triage.Targets) : RegistryHivesUser, RegistryHivesSystem, StartupFolders. En direct : Windows.Sys.StartupItems réunit clés Run, StartupApproved et dossiers Démarrage.
  • Commandes natives : le NTUSER.DAT chargé est verrouillé ; utilisez reg save pour l'utilisateur connecté ou récupérez-le depuis un cliché instantané.
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run
reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run
reg query HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved /s
dir /a /t:c "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup" "%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp"

Outils d'analyse

  • Registry Explorer / RECmd (Eric Zimmerman) : navigation dans les clés et export via les fichiers batch communautaires.
  • RegRipper : plugin run (SOFTWARE et NTUSER.DAT, chemins StartupApproved compris) et runonceex.
  • Autoruns (Sysinternals, gratuit) : l'onglet Logon liste clés Run et dossiers Démarrage, en direct ou sur un répertoire Windows hors ligne.
  • Velociraptor : Windows.Sys.StartupItems.
  • LECmd (Eric Zimmerman) : analyse les .lnk trouvés dans les dossiers Démarrage.
  • Plaso : plugin de registre windows_run.

Conseils d'investigation

  • Signalez les lignes de commande qui pointent vers \AppData\, \Temp\, \Users\Public\, ou qui utilisent powershell, mshta, rundll32, regsvr32, wscript ou des arguments encodés.
  • Analysez le NTUSER.DAT de chaque utilisateur, y compris les comptes de service et les anciens comptes : la persistance est souvent posée dans un profil peu utilisé.
  • Contrôlez StartupApproved pour chaque valeur Run : une entrée désactivée ne s'est pas lancée aux dernières ouvertures de session, et son FILETIME indique quand elle a été désactivée.
  • Pour les raccourcis du dossier Démarrage, résolvez la cible et les arguments du .lnk et vérifiez l'existence de la cible dans la $MFT.
  • Corrélez le LastWrite de la clé Run avec le Prefetch et les heures d'ouverture de session de l'utilisateur pour confirmer le lancement de la charge.
  • Poursuivez avec les démarrages automatiques moins courants : Winlogon et IFEO, services et tâches planifiées.

Artefacts liés

Termes du glossaire

Tous les artefacts sur une page : aide-mémoire