PowerShell Script Block Logging
forensicsDéfinition
PowerShell Script Block Logging est une fonctionnalité de journalisation de PowerShell qui enregistre le contenu de chaque bloc de script exécuté dans l'Event Log Windows, même si ce contenu a été obfusqué ou encodé. C'est l'une des sources forensiques les plus précieuses pour détecter et investiguer les attaques utilisant PowerShell, qui est devenu l'outil de post-exploitation et de mouvement latéral de prédilection de nombreux acteurs malveillants. PowerShell offre plusieurs niveaux de journalisation configurables via la stratégie de groupe (GPO). Module Logging (activé via GPO ou registre : HKLM\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging) enregistre les commandes exécutées par chaque module PowerShell. Script Block Logging (HKLM\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging) enregistre le code de chaque bloc de script, avec la particularité cruciale que PowerShell désobfusque le code avant de l'exécuter et enregistre la version désobfusquée — rendant inefficaces les techniques d'obfuscation comme l'encodage Base64 ou la concaténation de chaînes. Les Event IDs PowerShell forensiquement pertinents se trouvent dans les journaux 'Microsoft-Windows-PowerShell/Operational' (source moderne, ID 4103 pour le logging de modules, ID 4104 pour le script block logging) et 'Windows PowerShell' (source classique, ID 400, 403, 800). L'Event ID 4104 est le plus riche : il contient le code PowerShell complet executé, avec le numéro de bloc et le contexte d'appel. Sysmon (Event ID 1 : Process Create) complète le Script Block Logging en capturant la ligne de commande PowerShell avec ses arguments (incluant les payloads encodés en Base64). La combinaison des Event IDs 4104 (contenu déobfusqué) et Sysmon 1 (ligne de commande originale) fournit une image complète de chaque exécution PowerShell suspecte. Le Constrained Language Mode (CLM) de PowerShell restreint les capacités du langage pour limiter les attaques via PowerShell, mais les techniques d'évasion (downgrade vers PowerShell 2.0 qui ne supporte pas le Script Block Logging, injection dans des processus approuvés) restent utilisées par des attaquants sophistiqués.
Fonctionnement
Script Block Logging est implémenté dans le moteur PowerShell lui-même. Avant d'exécuter un bloc de script, PowerShell parse et désobfusque le code (résolution des concaténations, décodage Base64, expansion des alias), puis enregistre le code résultant dans l'Event Log via ETW (Event Tracing for Windows). Ce mécanisme est difficile à contourner sans modifier le moteur PowerShell lui-même.
Application DFIR
Analyse PowerShell forensique : 1) Exporter les Event Logs Microsoft-Windows-PowerShell/Operational, 2) Filtrer EventID 4104 (Script Block Logging), 3) Chercher les patterns suspects : IEX (Invoke-Expression), DownloadString/DownloadFile, encoded commands (-enc), WebClient, Invoke-Mimikatz, Add-Type, Reflection.Assembly, 4) Utiliser DeepBlueCLI.ps1 pour l'analyse automatisée, 5) Corréler avec Sysmon EventID 1 pour le contexte d'exécution. Analyser les 4104 avec EventID WARNING pour les scripts obfusqués détectés.
Outils
DeepBlueCLI (PowerShell, détection automatique d'attaques PowerShell dans les logs), EvtxECmd (Eric Zimmerman, parsing EVTX → CSV), Get-WinEvent (PowerShell natif), Chainsaw (Rust, analyse EVTX rapide). Activation Script Block Logging : GPO Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell > Turn on PowerShell Script Block Logging. Log de transcript : Start-Transcript / $Env:TEMP\PowerShell_transcript.*.txt.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h