Powershell pour les pentesteurs : Introduction à Powershell pour le pentest

Introduction

PowerShell représente l’un des langages les plus intéressants et les plus puissants à des fins de pentesting.

Nous allons donc essayer de nous concentrer sur ce contexte avec cette suite d’articles.

Cet article est le premier de la série consacrée à PowerShell pour les pentesteurs.

Nous allons commencer par découvrir les bases nécessaires pour effectuer du pentest grâce à PowerShell.

Que représente Powershell ?

Microsoft définit PowerShell comme suit:

Source : https://docs.microsoft.com/fr-fr/powershell/scripting/overview?view=powershell

 

Mais, pour nous, en tant que pentesteurs, PowerShell représente un puissant  shell et un langage de scripting présent sur la plus part nos cibles (Windows)  et nous fournit un puissant  »  Outil / Langage  »  post-exploitation ». Cela peut nous donner beaucoup plus de marge de manœuvre et une plus grande surface d’attaque .

PowerShell nous fournit de nombreuses fonctionnalités qui le rendent excellent dans un contexte de pentesting :

  • Facile à apprendre
  • Basé sur « .Net Framework »
  • Approuvé par l’OS
  • Fournit un accès presque à tout dans les systèmes d’exploitation Windows !
  • Intégré par défaut à partir de Windows 7
  • Orienté Objet
  • Interface de script avec ISE

 

 

 

Let’s Take a Tour

Pour lancer la ligne de commande PowerShell, vous pouvez le faire à partir de la barre de lancement de n’importe quelle version de Windows (à partir de Windows 7, PowerShell est intégré par défaut) en tapant «PowerShell.exe»:

 

 

Vous pouvez aussi le lancer à partir de son propre répertoire :   » C:\Windows\System32\Windows\PowerShell\vX.0\powershell.exe  « , où x représente le numéro de version.

Une fois cela fait, nous verrons cette belle console qui représente celle de PowerShell, où se situe  toute la magie :

 

 

Tout d’abord, faisons un petit help pour découvrir toutes les possibilités avec la commande «Get-Help»:

 

Vous pouvez également rechercher une commande spécifique à l’aide de «Get-Help <terme_de_recherche>», tout en sachant que la commande Get-Help prend en charge les caractères génériques.

Tout d’abord, obtenons tout cela en utilisant «Get-help *», qui nous renverra une longue liste de rubriques d’aide:

 

Maintenant, essayons «Get-help * alia *», ce qui nous permettra d’obtenir uniquement des commandes (et des rubriques d’aide) concernant les alias à l’aide d’un caractère générique (exemple simple):

 

Ensuite, nous allons essayer d’obtenir tous les alias de la session en cours en utilisant “Get-Alias”:

 

Vous pouvez également obtenir des exemples d’utilisation d’une commande spécifique (comme Get-Help dans cet exemple), en utilisant l’option “-Examples”:

Conclusion

PowerShell représente l’un des langages les plus intéressants et les plus puissants à des fins de pentesting .

Dans cette suite de travaux pratiques, nous allons essayer de couvrir tous les éléments essentiels de PowerShell dans un contexte de test d’intrusion, mais, n’oublions pas que le plus important à présent est que vous devez pratiquez tout cela !

En cybersécurité, je dirais qu’il y a 4 principales qualités pour bien monter en compétence : La pratique, la perseverence, l’apprentissage continue et enfin être autodidacte !

Bonne chance à tous !

Brace yourself; the best is coming J

Plus de formations sur