Script para validação de senhas em massa

Estreando uma nova categoria dentro de Learning no blog: Scripts.

Não… não sou programadora… mas quem administra sistemas, desde cedo aprende que quanto mais tarefas rotineiras for possível automatizar… mais tempo terá para fazer coisas interessantes, como por exemplo, iniciar um estudo de uma tecnologia que pode ser utilizada na empresa, ou trabalhar em algum projeto, enfim… ‘n’ coisas🙂.

Ainda tenho muito o que aprender em termos de script (começando pela lógica :(), mas andei brincando com alguns scripts e descobri que apesar de não saber programar, não é que eles foram de grande ajuda no meu dia-a-dia?🙂

Mas vamos lá… Recentemente, precisei fazer uma validação em massa da senha de root em vários servidores, sendo que para cada um a senha era diferente.

Com a ajuda do expect [1] e um howto [2] bacana encontrado by google, consegui realizar a validação🙂.
pwtest.exp
#!/usr/bin/expect -f

################################################################################################################
## Script para testar a conexão com o servidor e checar se a senha do usuário root está correta ou não ##
## Utiliza o comando expect para fazer o acesso e inserir a senha ##
## Referência: http://www.pantz.org/software/expect/expect_examples_and_tips.html ##
## Nix - 23/08/2013 ##
################################################################################################################
######### Variaveis ######### 
set timeout 9
set HOST [lindex $argv 0]
set PASS [lindex $argv 1]
log_user 0

## Inicializa a conexão SSH 
spawn ssh -q -o StrictHostKeyChecking=no root@$HOST
## Mensagem de erro a ser exibida caso ocorra timeout na conexão SSH (prompt que solicita a senha não é exibido)
## *assword é para corresponder "Password" ou "password" :)
expect {
 timeout { send_user "\nFailed to get password prompt\n"; exit 1 }
 eof { send_user "\nSSH failure for $HOST\n"; exit 1 }
 "*assword"
}
## Caso o prompt que solicita a senha é exibido, a mesma é enviada
send "$PASS\r"

## Mensagem a ser exibida caso a senha esteja incorreta
## *\# indica o prompt do usuário - no caso, o root
expect {
 timeout { send_user "$HOST - Login failed. Password incorrect.\n"; exit 1}
 "*\# "
}
## Caso a senha esteja correta, é exibida a mensagem abaixo:
send_user "$HOST - Password is correct\n"

## Desconecta do servidor - o mesmo que Control+D:
send "exit\r"
## Encerra programa
close

==============================================================================================================================
valida_pw.sh
#!/bin/bash

################################################################################################################
## Script para validar senhas em massa a partir de um arquivo de servidores e outro com as respectivas senhas 
## Executa o arquivo pwtest.exp 
## Nix - 23/08/2013
################################################################################################################

######## Variaveis ########
# Lista de servidores
HOSTS=$(cat /root/temp/hosts_dev.txt)
# Arquivo de senhas
PWDS=$(cat /root/temp/pws_dev.txt)

####### Contador para ler o arquivo de senhas linha a linha #######
i=0
for pd in $PWDS; do
 pws[$i]=$pd;
 i=`expr $i + 1`
done

####### Contador para ler o arquivo de hosts linha a linha e testar a senha usando o script expect #######
### É passado como parâmetro o servidor ($j) e a senha do mesmo ($pws)
i=0
for j in $HOSTS; do
 /root/temp/pwtest.exp $j ${pws[$i]}
 i=`expr $i + 1`
done

============================================================================================================================== 

Para executar (antes é necessário dar permissão usando o comando chmod ;)):

$./valida_pw.sh

Até a próxima!🙂
Referências:
[1] http://www.nist.gov/el/msid/expect.cfm
[2] http://www.pantz.org/software/expect/expect_examples_and_tips.html

1 Response to “Script para validação de senhas em massa”


  1. 1 himalayan goji 03/07/2014 às 2:49 PM

    Thanks fοr finally talking about >Script para
    validação de senhas eem massa | Νixx <Liked it!


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




Follow Nix on WordPress.com
agosto 2013
S T Q Q S S D
« jul   nov »
 1234
567891011
12131415161718
19202122232425
262728293031  

Flickr Photos

Red and Gold

Mais fotos

%d blogueiros gostam disto: