Comment Activer et Exporter les Journaux de Bloc de Scripts PowerShell

Comment Activer et Exporter les Journaux de Bloc de Scripts PowerShell

SOC Prime Team
SOC Prime Team linkedin icon Suivre

Les journaux de blocs de script PowerShell se trouvent dans Journaux d’Applications et de Services → Microsoft → Windows → PowerShell → Opérationnel, en tant qu’événement 4104. Ils sont complets uniquement si l’enregistrement des blocs de script est activé. Pour les exporter :

wevtutil epl « Microsoft-Windows-PowerShell/Operational » C:logspowershell.evtx

PowerShell 7 est un produit distinct avec un canal séparé, PowerShellCore/Operational, et ses propres paramètres de politique.

Si un attaquant a touché une machine Windows, il y a de fortes chances que PowerShell ait été impliqué. L’enregistrement des blocs de script enregistre le code réellement exécuté, souvent après que les couches d’obscurcissement aient été retirées. Prime Core a 663 règles de détection pour les journaux PowerShell, mappées à 417 techniques MITRE ATT&CK. Elles couvrent l’utilisation malveillante de PowerShell (T1059.001), l’obscurcissement (T1027) et les cradles de téléchargement qui intègrent des outils (T1105).

Essayez LogTotal gratuitement

Avant de commencer

L’enregistrement des blocs de script est-il activé ?

reg query « HKLMSOFTWAREPoliciesMicrosoftWindowsPowerShellScriptBlockLogging »

EnableScriptBlockLogging réglé à 0x1 signifie oui. Si la clé n’existe pas, c’est désactivé. Même dans ce cas, Windows PowerShell 5.1 enregistre toujours les blocs de script qu’il considère comme suspects, en tant qu’événements 4104 au niveau Avertissement. Donc, vous pouvez trouver des événements. Ne les confondez pas simplement avec la vue d’ensemble complète.

L’activer aide à partir de maintenant, pas pour ce qui s’est déjà passé. Utilisez le paramètre de la stratégie de groupe Modèles d’administration → Composants Windows → Windows PowerShell → Activer l’enregistrement des blocs de script PowerShell, ou définissez directement la valeur du registre :

reg add « HKLMSOFTWAREPoliciesMicrosoftWindowsPowerShellScriptBlockLogging » /v EnableScriptBlockLogging /t REG_DWORD /d 1 /f

PowerShell 7 lit sa propre clé de politique sous HKLMSOFTWAREPoliciesMicrosoftPowerShellCore. S’il a été installé à partir d’un zip plutôt que via l’MSI, son canal d’événements peut ne pas être enregistré tant que vous n’avez pas exécuté RegisterManifest.ps1 depuis $PSHOME.

Attendez-vous à un volume. Chaque script et module exécuté finit dans le journal. Augmentez la taille maximale du canal, sinon vous ne conserverez que quelques heures.

Attendez-vous à des secrets. Les scripts administratifs contiennent parfois des mots de passe et des clés API en texte clair, et l’enregistrement des blocs de script les enregistre fidèlement. Gardez cela à l’esprit avant que ce fichier ne soit partagé quelque part, et lisez la section LogTotal ci-dessous.

Exportez les journaux

Dans l’Observateur d’événements, faites un clic droit sur Opérationnel sous PowerShell et choisissez Enregistrer tous les événements sous… Depuis la ligne de commande :

:: uniquement les blocs de script

wevtutil epl « Microsoft-Windows-PowerShell/Operational » C:logsps_4104.evtx /q: »*[System[(EventID=4104)]] »

:: PowerShell 7

wevtutil epl « PowerShellCore/Operational » C:logspwsh.evtx

:: le journal classique « Windows PowerShell » : événements de démarrage du moteur avec la ligne de commande hôte

wevtutil epl « Windows PowerShell » C:logswindows_powershell.evtx

Le dernier est facile à oublier, et il vaut la peine d’être capturé. L’événement 400 enregistre chaque démarrage du moteur, y compris la version du moteur. Un EngineVersion de 2.0 sur un système moderne signifie généralement que quelqu’un a délibérément rétrogradé pour éviter l’enregistrement des blocs de script.

Téléchargez et examinez dans LogTotal

LogTotal lit les fichiers EVTX de manière native. Une chose à savoir d’abord : LogTotal ne désinfecte pas encore les fichiers EVTX. [PROOF: confirm which formats the sanitize step covers today.] With PowerShell logs, that matters more than usual, because of the secrets mentioned above. Use EVTX uploads freely for test machines. For production hosts, get a yes from whoever owns data handling first.

  1. Télécharger. Ouvrez logtotal.com et déposez le fichier. [PROOF: écran de téléchargement, limite de taille]
  2. Examiner. [PROOF: what the results screen shows for PowerShell data]

À quoi cela ressemble sur de vraies données. Nous avons utilisé [PROOF: source d’échantillon, par ex. une machine virtuelle de test avec l’enregistrement des blocs de script activé, après avoir exécuté un craddle de téléchargement encodé et une chaîne de test inoffensive de modification AMSI]. LogTotal a signalé [PROOF: constatations réelles]. [PROOF: lien vers le fichier d’échantillon]

Quand ça se passe mal

SymptômeCause probableFix
Aucun événement 4104 du toutL’enregistrement des blocs de script est désactivé, et rien n’a semblé suspectActivez-le pour l’avenir ; vérifiez le journal Windows PowerShell pour ce que vous pouvez encore obtenir
Seulement une poignée d’événements 4104, tous AvertissementL’enregistrement est désactivé ; vous voyez l’enregistrement automatique des blocs suspectsMême qu’au-dessus
PowerShellCore/Operational non trouvéPowerShell 7 n’est pas installé, ou son manifeste n’est pas enregistréExécutez RegisterManifest.ps1 depuis $PSHOME
Le texte du 4104 est un chiffrement illisibleL’enregistrement des événements protégés est activéVous avez besoin du certificat de déchiffrement
Le journal ne couvre que quelques heuresTaille par défaut, volume élevéAugmentez la taille maximale du canal

FAQ

L’enregistrement des blocs de script capture-t-il le code obfusqué ?

Pour une grande part, oui. Il enregistre les blocs de script lorsqu’ils sont compilés. Lorsque le code obfusqué construit et exécute la prochaine étape, cette étape est enregistrée comme un bloc à part entière, souvent sous une forme lisible.

Quelle est la différence avec la transcription ?

La transcription écrit des fichiers texte de la saisie et sortie de la session dans un dossier. L’enregistrement des blocs de script enregistre le code lui-même dans le journal des événements. Ils se complètent et les deux valent la peine d’être conservés.

Rejoignez la plateforme Detection as Code de SOC Prime pour améliorer la visibilité sur les menaces les plus pertinentes pour votre entreprise. Pour vous aider à démarrer et à générer une valeur immédiate, planifiez dès maintenant une réunion avec des experts de SOC Prime.