Question Cryptage et changement de mdp d'un compte local

Plus d'informations
il y a 13 ans 3 semaines #14143 par Matthew BETTON
benduru écrit:

Peux tu poster ici la routine en question ?


Un café la prochaine fois qu'on se voit que c'est
[code:1]ConvertTo-SecureString[/code:1]


Ok :P

[code:1]# ici j'ai saisi : test
PS C:\> $password = Read-Host \"mot de passe\" -AsSecureString
mot de passe: ****
PS C:\> $NetworkCredential = New-Object -typename System.Management.Automation.PSCredential -ArgumentList \"toto\", $Password
PS C:\> ($NetworkCredential.GetNetworkCredential()).password
test
# Ici, j'ai bien décrypté mon 'system.security.securestring'

PS C:\> $password | Get-Member


TypeName : System.Security.SecureString

Name MemberType Definition
----

AppendChar Method void AppendChar(char c)
Clear Method void Clear()
Copy Method securestring Copy()
Dispose Method void Dispose(), void IDisposable.Dispose()
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
InsertAt Method void InsertAt(int index, char c)
IsReadOnly Method bool IsReadOnly()
MakeReadOnly Method void MakeReadOnly()
RemoveAt Method void RemoveAt(int index)
SetAt Method void SetAt(int index, char c)
ToString Method string ToString()
Length Property int Length {get;}
[/code:1]

Quelques informations au sujet des Credentials ici ;).

J'ai le droit à une mousse ?

@ +

Matthew<br><br>Message édité par: Matthew BETTON, à: 27/02/13 21:32

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 semaines #14148 par SiSMik
Si y'a qu'une seule mousse en jeu je viens pas !
:evil:

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 semaines #14149 par olivier
J'applique cette routine pour générer un fichier avec la clé et le mdp choisi (trouvée sur google, je n'aime pas réinventer la poudre)

$pwd = Read-Host 'Enter Password' -AsSecureString
$key = 1..32 | ForEach-Object { Get-Random -Maximum 256 }
$pwdencrypted = $pwd | ConvertFrom-SecureString -Key $key
$private:ofs = ' '
('$password = \&quot;{0}\&quot;' -f $pwdencrypted) | Out-File $path
('$key = \&quot;{0}\&quot;' -f \&quot;$key\&quot;) | Out-File $path -Append


et pour le changement de mon compte local j'ai trouvé dans mon petit livre l'assembli Marshal :

# Cryptage du mot de passe

$password = \&quot;...le password généré par la routine\&quot;
$passwordSecure = ConvertTo-SecureString -String $password -Key ([Byte[]]$key.Split(\&quot; \&quot;))
$pass=[system.runtime.interopservices.marshal]::securestringToBSTR($passwordsecure)
$ucpass=[system.runtime.interopservices.marshal]::ptrtostringuni($pass)

# changement du mot de passe sur server1

$objAdminUserTS1 = [ADSI]\&quot;WinNT://$server1/$user,user\&quot;
$objAdminUserTS1.SetPassword($ucpass)


ça à la mérite de fonctionner et d'être un peu plus sécurisé qu'un mot de passe en clair dans le script mais ce n'est pas la panacée.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 semaines #14157 par Matthew BETTON
CHAILLOT écrit:

J'applique cette routine pour générer un fichier avec la clé et le mdp choisi (trouvée sur google, je n'aime pas réinventer la poudre)

$pwd = Read-Host 'Enter Password' -AsSecureString
$key = 1..32 | ForEach-Object { Get-Random -Maximum 256 }
$pwdencrypted = $pwd | ConvertFrom-SecureString -Key $key
$private:ofs = ' '
('$password = \&quot;{0}\&quot;' -f $pwdencrypted) | Out-File $path
('$key = \&quot;{0}\&quot;' -f \&quot;$key\&quot;) | Out-File $path -Append


et pour le changement de mon compte local j'ai trouvé dans mon petit livre l'assembli Marshal :

# Cryptage du mot de passe

$password = \&quot;...le password généré par la routine\&quot;
$passwordSecure = ConvertTo-SecureString -String $password -Key ([Byte[]]$key.Split(\&quot; \&quot;))
$pass=[system.runtime.interopservices.marshal]::securestringToBSTR($passwordsecure)
$ucpass=[system.runtime.interopservices.marshal]::ptrtostringuni($pass)

# changement du mot de passe sur server1

$objAdminUserTS1 = [ADSI]\&quot;WinNT://$server1/$user,user\&quot;
$objAdminUserTS1.SetPassword($ucpass)


ça à la mérite de fonctionner et d'être un peu plus sécurisé qu'un mot de passe en clair dans le script mais ce n'est pas la panacée.


Merci pour ce retour.

$ucpass contient effectivement le mot de passe décrypté :)

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.092 secondes
Propulsé par Kunena