Protipy / PowerShell
PowerShell Constrained Language Mode
Powershell Constrained Language Mode
Wstęp
Constrained Language Mode pozwala używać Powershella jedynie w podstawowym jego zakresie, blokując chociażby dostęp do klas .NET czy Windows API, przez co wiele ofensywnych skryptów takich jak Invoke-Mimikatz nie zadziała.
Aktualny stan sprawdzisz wyświetlając zmienną:
$ExecutionContext.SessionState.LanguageMode
Dla testów, aktywować Powershell Constrained Language Mode możesz poprzez:
[Environment]::SetEnvironmentVariable(‘__PSLockdownPolicy‘, ‘4’, ‘Machine‘)
lub dla aktualnej sesji:
$ExecutionContext.SessionState.LanguageMode = "ConstrainedLanguage"
Jednak docelowo, powinieneś zrobić to za pomocą GPO.
Drobna wizualizacja
Linki
- web · https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_language_modes
- web · https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/
- video · https://youtu.be/ApHgnw9hI3E?t=2075 - Wielki Administrator włącza Powershell Constrained Language Mode