PowerShell Constrained Language Mode
tty1 · powershell
// Powershell Constrained Language Mode
#Powershell#BlueTeam#MakeItHarder
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
Przydatne linki
▸
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/
web ↗
▶
https://youtu.be/ApHgnw9hI3E?t=2075 - Wielki Administrator włącza
Powershell Constrained Language Mode
video ↗