martes, 17 de diciembre de 2013

Powershell: Cambiar password de forma desatendida a algoritmo MD5

La nueva entrada de hoy va dedicada a facilitar la vida de los administradores. ¿Y como lo haremos?
Vamos a generar un script en PS encargado de cambiar de forma automática el password del usuario que definamos haciendo servir el nombre del equipo y una cadena de caracteres. y diréis ... ¿Como puede ayudarme esto a mi? pues bien, nos ayudará a tener controladas todas las contraseñas del usuario administrador local de nuestras estaciones, creo que sí, que puede sernos útil en nuestro día a día como administradores.



Para nuestro ejemplo de hoy, utilizaremos la cadena "loquenuncatecontaron", y con ella os dejo a continuación el script comentado linea a linea para evitar dudas:

$inicio=0
$longitud=8 
#capturamos el nombre del equipo
$computer = gc env:computername 
#definimos la clave para generar más tarde la cadena que compondra nuestra contraseña
$clave="loquenuncatecontaron" 
#la convertimos a mayusculas
$clave += $computer.ToUpper() 
#función para pasar nuestra cadena a MD5
function Check-MD5 ($string) {
[Reflection.Assembly]::LoadWithPartialName("System.Web") | Out-null
[System.Web.Security.FormsAuthentication]::HashPasswordForStoringInConfigFile("$string", "MD5")
#utilizamos la función "Check-MD5"
$result= check-MD5 $clave
$salida = "" 
#creamos un loop para acortar la contraseña a 8 caracteres
for ($i_var = $inici; $i_var -lt $len; $i_var++){
$salida += $result[$i_var]} 
#convertimos la cadena a minusculas
$pass=$salida.ToLower() 
#Definimos el usuario al que queremos cambiar el pass
$user="administrator" 
#Cambiamos la contraseña de administrator por la generada
invoke-expression "net user $user $pass"

Espero que os haya sido de ayuda y si tenéis dudas o sugerencias no dudéis en compartirlas con Lo que nunca te contaron. ;)

No hay comentarios:

Publicar un comentario

Google+ Google+