Skip to content

Glossaire

Journal classique Windows PowerShell

Le journal historique Windows PowerShell.evtx contenant le cycle de vie du moteur et des fournisseurs (400/403/600) et l'exécution du pipeline (800).

Le journal Windows PowerShell (Windows PowerShell.evtx dans System32\winevt\Logs) est le journal d'événements d'origine de PowerShell. Il est antérieur aux canaux modernes propres à chaque fournisseur, ce qui explique pourquoi PowerShell a ensuite ajouté Microsoft-Windows-PowerShell/Operational à côté de lui plutôt que de le remplacer. Le journal classique est présent et activé par défaut, et il enregistre quatre ID d'événement :

  • 400 : l'état du moteur passe à Available, ce qui signifie qu'un hôte PowerShell a démarré
  • 403 : l'état du moteur passe à Stopped, ce qui signifie que l'hôte s'est arrêté
  • 600 : cycle de vie des fournisseurs, pour des fournisseurs tels que Registry ou Certificate
  • 800 : détails d'exécution du pipeline

Pourquoi c'est important en investigation

Comme il ne nécessite aucune stratégie, le journal classique constitue fréquemment la seule preuve PowerShell sur les hôtes dépourvus de journalisation des blocs de script. Les événements 400 et 403 encadrent la durée de vie de chaque hôte PowerShell, et leur bloc de détails contient HostApplication : la ligne de commande complète qui l'a lancé. C'est là qu'apparaissent un -EncodedCommand, un -WindowStyle Hidden ou une rétrogradation -Version 2. EngineVersion confirme quel moteur s'est réellement exécuté, et l'événement 800 enregistre la ligne de commande de chaque pipeline, souvent la meilleure trace de ce qui s'est exécuté en l'absence de 4104.

Exemple

Le bloc de détails d'un événement 400 est une liste de lignes Key=Value :

NewEngineState=Available
PreviousEngineState=None
HostName=ConsoleHost
HostVersion=5.1.19041.4648
HostApplication=powershell.exe -nop -w hidden -enc VwByAGkAdABlAC0ATwB1AHQAcAB1AHQAIAAnAHMAeQBuAHQAaABlAHQAaQBjACAAcwBhAG0AcABsAGUAJwA=
EngineVersion=5.1.19041.4648
RunspaceId=...

Le parseur découpe ces lignes en champs triables, décode la commande encodée dans HostApplication et signale la fenêtre masquée. Pour un événement 400 ou 403 dont l'EngineVersion est 2.x, il lève une détection de rétrogradation.

Termes associés

Fusionnez le journal classique avec le journal Operational dans PowerShell Parser, et consultez le guide des journaux d'événements PowerShell pour voir ce que prouve chaque ID d'événement.