«

Sep 20

Powershell : crypter vos mots de passe dans vos scripts

Powershell : crypter vos mots de passe dans vos scripts

 

powershell_logo

Nous sommes souvent confronté à la problématique de mettre des identifiants d’accès tels que celui de l’administrateur du domaine ou d’un compte avec des droits d’accès spécifiques dans nos scripts. Afin de les rendre plus sécurisée, ce tutoriel « Powershell : crypter vos mots de passe dans vos scripts » vous montrera comment indiquer vos identifiants de manière crypté dans vos scripts.

 

Bien évidement, cela n’empêchera pas de pouvoir le décrypter, mais empêchera d’avoir le mot de passe juste en parcourant votre script.

 

La commande Powershell Get-Credential permet d’afficher une fenêtre d’identification vous demandant alors un nom d’utilisateur et un mot de passe. Cette commande va alors stocker ce mot de passe afin de le réutiliser (sans qu’il ne s’affiche en clair). Cela implique que les identifiants soient entrés manuellement.

Afin de ne plus avoir d’identifiants à entrer, nous allons stocker crypter le mot de passe et le stocker dans un fichier texte.

Avant tout, il vous faut définir votre clé de cryptage dans la variable $PassKey :

 

$PassKey = [byte]95,13,58,45,22,11,88,82,11,34,67,91,19,20,96,82

Nous allons lancer la commande suivante sur notre machine afin de stocker le mot de passe crypter dans un fichier .txt :

« Mon_Mot_De_Pass » | Convertto-SecureString -AsPlainText -Force | ConvertFrom-SecureString -key $PassKey | Out-file C:\temp\PassKey.txt

Remplacer Mon_Mot_De_Pass par votre mot de passe.

Vous pouvez également le nom et le chemin du fichier de sortie ( ici C:\temp\PassKey.txt )

 

En ouvrant le fichier c:\temp\PassKey.txt, vous vous attendez à voir le mot de passe :

 

Powershell : crypter vos mots de passe dans vos scripts

Et bien celui-ci est stocké dans un format illisible à l’œil nue !

 

Passons maintenant au decryptage de cette chaîne de caractère pour l’utiliser dans notre script.

Nous allons donc créer la variable $Password contenant notre mot de passe :

$Password = Get-Content C:\Temp\PassKey.txt | Convertto-SecureString -Key $PassKey

 

Il faut ensuite ajouter les lignes contenant votre nom d’utilisateur (en remplaçant Domaine.local\administrateur par votre utilisateur) :

$User = « Domaine.local\Administrateur »

Et la ligne contenant l’ensemble des identifiants :

 

$Credentials = New-Object -TypeName « System.Management.Automation.PSCredential » -ArgumentList $User, $Password

 

Vous pouvez maitenant utiliser la variable $Credentials pour vous identifier comme dans cet exemple de connexion de vérification de service Windows :

Get-WmiObject win32_service -Credential $Credentials -ComputerName Nom_Du_Serveur

 

 

 

 

LinkedInFacebookTwitterGoogle+EmailGoogle GmailPartager

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser les balises HTML suivantes : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>