
O que é ScriptBlock Logging?
- ScriptBlock Logging faz o Windows registrar tudo que é executado no PowerShell, incluindo scripts ofuscados ou codificados (
EncodedCommand
). - Ele grava no log o comando decodificado, antes de ser executado.
- Sem ele, o PowerShell passa comandos silenciosamente, sem deixar rastros detalhados.
Como habilitar ScriptBlock Logging
1. Diretamente via PowerShell (modo fácil)
Execute como administrador:
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell -Name ScriptBlockLogging -Force<br>Set-ItemProperty -Path
HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging -Name EnableScriptBlockLogging -Value 1
Depois de habilitar
- Reinicie o PowerShell (ou o sistema inteiro para garantir).
- Teste rodando um comando (
Get-Process
,Get-Service
, etc). - Verifique se surgem eventos
EventCode=4104
no log:
Agora qualquer execução de script será gravada no canal:
Microsoft-Windows-PowerShell/Operational
Ative também o “Module Logging” se quiser ser ainda mais completo
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell -Name ModuleLogging -Force<br>Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging -Name EnableModuleLogging -Value 1
Saber se está ativo:
Get-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging
Conclusão
Habilitar o ScriptBlock Logging é uma das medidas mais importantes para aumentar a visibilidade e a segurança do seu ambiente contra ameaças que abusam do PowerShell. Com isso ativo, você passa a ter rastreabilidade completa dos scripts e comandos executados.
Seja o primeiro a comentar