Constrained Language Mode et AppLocker

1. Language Mode Language Mode

Avant de parler de mode de langage contraint, il est nécessaire d’évoquer les différents modes de langage que PowerShell propose. En pratique, en fonction du mode sélectionné de certaines fonctions, cmdlet, mots-clés ou techniques seront autorisés ou non. Il existe quatre modes de langage en PowerShell :

  • FullLanguage : il s’agit du mode par défaut dans lequel aucune restriction n’est appliquée. Language Mode:FullLanguage

  • RestrictedLanguage : dans ce mode, la plupart des cmdlets sont autorisées, mais de nombreuses variables ne sont plus accessibles, les scripts blocks comme l’accès aux propriétés des objets est bloqué, et seuls trois opérateurs de comparaison sont accessibles (-eq, -gt, -lt). Language Mode:RestrictedLanguage

  • NoLanguage : il s’agit d’un mode spécifique uniquement utilisable avec l’API de PowerShell, Dans ce mode, seules les fonctions de l’API AddCommand et AddScript sont autorisées, comme dans l’exemple ci-dessous. Language Mode:NoLanguage

$session = [powershell]::Create() 
$session.RunSpace.SessionStateProxy.LanguageMode = 'NoLanguage' 
$session.AddScript('Get-Date').Invoke() 
  • ConstrainedLanguage : en mode contraint tout comme le mode restricted, toutes les cmdlets et éléments du langage sont autorisés. En revanche, les types accessibles sont limités...

Pour consulter la suite, découvrez le livre suivant :
couv_EPCYBPOW.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
PowerShell JEA : Just Enough Administration
Suivant
Conclusion