Powershell pour les pentesteurs : Introduction aux cmdlets

Introduction

Les cmdlets représentent l’une des fonctionnalités les plus intéressantes de PowerShell.

Une cmdlet (prononcée  « Command-let ») est une commande PowerShell qui existe sous la forme d’une instance de classe .NET.

Ce n’est pas un simple exécutable. Elle peut avoir des attributs permettant d’identifier les paramètres d’entrées ou de gérer les redirections avec le pipeline.

Les cmdlets peuvent être créées avec n’importe quel langage .NET ou à l’aide de PowerShell. Pour afficher les cmdlets disponibles, vous pouvez utiliser la commande Get-Command.

Utilisons donc  “Get-Command”, qui nous retournera toutes les possibilités de commandes disponibles:

 

Sinon, nous pouvons aussi obtenir que les cmdlets  à l’aide de la commande  «Get-Command -CommandType cmdlet» :

Comme nous pouvons le constater, les cmdlets  représentent simplement de petits scripts qui suivent une convention « verbe-nom » séparée par des tirets comme « Start-Process » ou « Stop-Process« .

Nous pouvons remarquer  des verbes avec différentes actions. La structure des cmdlets peut être représentée comme suit:

Vous pouvez également obtenir un peu d’aide sur les paramètres disponibles avec la commande
« Get-Help Get-Process  -Parameter * | more« , où Get-Process représente la cmdlet choisis.

Toujours dans le même contexte,  nous disposons d’un paramètre très intéressant au niveau de la cmdlet  Get-Command qui est «-Verb», ce qui nous permet d’effectuer des recherches basées sur la partie « Verb » .
L’exemple ci-dessous représente une recherche en utilisant le paramètre –Verb qui est start.
La commande est la suivante: « Get-Command –Verb start » :

Nous pouvons également obtenir directement des informations en utilisant un terme de recherche ou un caractère générique ‘WiledCard » en utilisant la commande suivante :
« Get-Command -CommandType cmdlet -Name *rocess* »

 

 

Voilà pour cette introduction !

Merci à tous de votre Confiance 🙂

Plus de formations sur