Como verificar senhas vazias?

5

Analisando todas as tentativas de login do ssh por script-kiddies, presumo que existam sistemas confusos conectados à Internet que possuem contas sem senha configuradas.

Mas como verificar um sistema Linux / Unix para essas contas (talvez criado por um script de instalação quebrado, um administrador confuso ou algo assim)?

Como primeira aproximação, posso pensar em algo como:

$ grep '^[^:]\+::' /etc/passwd /etc/shadow

Imprime todas as contas com uma senha vazia - mas talvez no sistema concreto tais contas não são mesmo um problema porque nenhum programa aceita entradas vazias - c.f. senha (5):

However, some applications which read the /etc/passwd file may decide not to permit any access at all if the password field is blank.

Mas e as sequências hash vazias como senhas (por exemplo, crypt("") )?

Como procurar por eles?

E como verificar contas quando bancos de dados de conta mais sofisticados estão em uso (NIS, LDAP, ...)?

    
por maxschlepzig 10.03.2012 / 11:46

2 respostas

5

Uma maneira fácil de encontrar senhas criptografadas vazias ou fracas é usar um cracker de senhas como John the Ripper .

Se você estiver usando NIS ou LDAP, primeiro precisará extrair os hashes de senha do banco de dados - uma delas é por meio de getent , consulte o resposta de maxschlepzig

    
por 10.03.2012 / 15:27
2

Enfrentando a última parte da pergunta:

getent abstrai os detalhes específicos do banco de dados, por exemplo você pode usar

$ getent passwd
$ getent shadow

para acessar esses bancos de dados independentemente do mecanismo configurado (arquivos, LDAP, NIS ...).

    
por 10.03.2012 / 17:55