Como descobrir a força da senha do Wordpress (já armazenada)?

10

Sou responsável pela segurança de muitos servidores de hospedagem compartilhada. A maioria deles está tendo sites WordPress. Cada servidor possui pelo menos 500 sites WordPress.

Na minha experiência, o problema com o WordPress começa com uma senha fraca. A maior parte da senha de administrador do site é muito fraca e o uso do site de senha fraca é explorado e usado para várias atividades maliciosas.

Agora, meu plano é descobrir a senha fraca do site WordPress e alterar com força a senha de administrador para outra senha forte. Para que o WordPress possa ser protegido e meu servidor não tenha problemas.

Qual é a maneira de saber a força da senha armazenada do WordPress?

Mani
fonte

Respostas:

8

Hastes Bruteforce

Você pode aplicar força no hash armazenado no banco de dados.

WordPress usa phpass para hash. Por padrão, o WordPress não usa blowfish ou similar, mas apenas o md5 com uma contagem de iterações de 8192. Se você quiser apenas encontrar senhas realmente ruins, a aplicação de força bruta é certamente viável.

Mas consideraria isso uma violação bastante grande da confiança que os usuários depositam em você, por isso não recomendaria essa abordagem.

Analise suas senhas ao fazer login

Você pode adicionar um script que intercepte todas as solicitações aos scripts de login do WordPress e registrar ou analisar as senhas, como estão em texto sem formatação nesse momento.

Obviamente, isso só captura senhas fracas quando o usuário efetua login. Se eles abandonaram o site ou estão inativos, pode demorar um pouco para você descobrir que eles usam uma senha fraca.

Eu consideraria isso uma violação ainda maior do que a brutalidade de forçar os hashes, e também traz algumas preocupações de segurança (se você armazenar as senhas em texto sem formatação, isso obviamente seria uma preocupação, mas mesmo se não for possível, você poderá acidentalmente armazenar algumas informações de a análise que pode ajudar um invasor).

Implemente uma Política de Senha (e force os usuários a alterar suas senhas)

Você pode implementar uma política de senha. Quando um usuário envia uma nova senha, você deve verificar se está em conformidade com sua política ou não (idealmente, isso aconteceria no lado do servidor, não no lado do cliente via JavaScript).

É difícil escrever uma boa política de senhas; portanto, dê uma olhada nas políticas existentes para ajudá-lo aqui.

Obviamente, senhas antigas não são afetadas pela política, portanto, você precisa forçar os usuários a alterar suas senhas antigas para cumprir com a política

Limitar danos

A aplicação de senhas fortes certamente pode ser uma boa idéia, mas, idealmente, uma instância do WordPress invadida não deve realmente afetá-lo como webmaster.

Você deve limitar o dano assim que um invasor tiver acesso a uma instalação do WordPress. Idealmente, você desejaria que apenas uma instância fosse afetada, não todo o servidor (portanto, você pode se preocupar com um invasor colocando conteúdo indecente em um site - como um usuário válido pode fazer -, mas não com a execução de código ou outros códigos maliciosos. atividade).

Este é um tópico bastante amplo, mas alguns pontos incluem DISALLOW_FILE_EDIT:, limita o uso de plug-ins (como eles são muito menos seguros do que o próprio WordPress), desaprova o JavaScript (por exemplo, com vários sites, apenas os superadministradores têm o direito de postar JavaScript, não administradores) etc.

tim
fonte
4

Não tenho certeza de que isso seja possível. Quando você seleciona sua senha, ela é armazenada com hash no banco de dados. Não há engenharia reversa quando se trata de algoritmos de hash.

Na minha experiência, o script para a força da senha está localizado www.example.com/wp-admin/js/password-strength-meter.jse esse é o link para ele.

Você pode alterar os níveis e a porcentagem das senhas aqui, para definir uma força de senha obrigatória como 100/100.

E, se você deseja que seu cliente verifique a força da senha, há um aplicativo atraente que pode fornecer a força da senha aqui.

É impossível fazer alguma engenharia reversa aqui e, além disso, existem poucos plugins que estão forçando os usuários a obter senhas fortes.

Josip Ivic
fonte
11
Parece uma coisa simples e fácil de se hospedar na web e proprietários de sites para ajudar a se proteger. Muito boa pergunta e resposta! Não tenho certeza de que já foi abordado aqui antes. Pelo menos, não é abordado há muito tempo. Felicidades!!
Closetnoc 22/02
11
A resposta acima é boa, mas não resolve o meu problema. A maioria dos sites WordPress já está instalada ou, em um dia, centenas de instalações do WP estão acontecendo no meu servidor. Suponha que eu altere a força da senha usando password-Strength-meter.js, ainda não útil para mim. Bcoz, o pwd já está definido. Isso será útil apenas para a nova senha, não para a que já está definida.
Mani
11
Mas não há como você descobrir todas as senhas do banco de dados porque elas são hash. Você pode definir isso e reenviar a todos os usuários para alterar suas senhas para que eles possam ter senhas fortes. Não vejo outra maneira de contornar isso. Verifique as respostas abaixo também.
21716 Josip Ivic
2
@ Josip Ivic, a única maneira é redefinir a senha e informar o administrador como você disse.
Mani
11
Para novos usuários, eu apenas ajustaria o script no wp no servidor, para que seja obrigatório ter senhas fortes, e para usuários antigos, reenviaria os e-mails para que eles pudessem mudar suas senhas para senhas fortes. Como eu disse, não há uma maneira fácil de fazer isso, mas é factível. :)
Josip Ivic
3

A boa notícia é que você pode alterar as senhas dos usuários, a má notícia é que você não pode vê-las.
Wordpress é tão poderosa que, mesmo no banco de dados que armazena a senha com uma criptografia maneira que não é apenas um hash MD5 você pode converter, não é mesmo dados serializado, para a senha test123que você obteria algo como $P$BjW8o9Dm1vC5bwAcP1iAdNVm0lbvn, também, mesmo se você alterar o campo de senha no banco de dados sem usar criptografia, não funcionaria.

Como alterar a senha

Acredito que você esteja ciente disso, mas vou deixar aqui. Você pode inserir seu painel do wordpress com privilégios de administrador, acessar usuários, encontrar um usuário e essa parte é muito ruim para você, porque você deve clicar em gerar nova senha, ele fornecerá uma sopa aleatória de letras e símbolos e você poderá edite-o por conta própria, mas mesmo assim você não poderá ver a senha.

knif3r
fonte
Esqueceu-se de mencionar que você pode usar um plugin como iThemes para exigir que os usuários digitem senhas fortes, também permitem a proteção da força bruta e outros recursos interessantes que você pode encontrar-se em interesse.
knif3r
3

À medida que as senhas são hash, a única maneira de testar sua segurança é forçá-las com força bruta. Reúna uma lista de senhas fracas comumente usadas e teste-as com relação aos hashes armazenados no seu banco de dados.

A menos que você use uma lista de senhas muito exaustiva, isso não capturará todas as senhas fracas, mas filtrará as mais fracas.

Tom van der Zanden
fonte
Esta é uma solução que requer muito tempo.
21716 Josip Ivic
Isso é chamado de construção de uma mesa arco-íris.
Ashfame 22/02
@ Ashfame Não, não é. Uma tabela arco-íris é uma abordagem muito mais sofisticada que não é necessariamente a mais adequada para esse cenário.
Tom van der Zanden
@TomvanderZanden Pode não ser uma abordagem adequada, mas como isso não será uma mesa de arco-íris?
Ashfame 22/02
@ Ashshame Porque as tabelas do arco-íris são muito mais sofisticadas do que "verificar uma lista de senhas no seu banco de dados". As tabelas Rainbow, por exemplo, usam cadeias de hash e funções de redução. Observe também que a construção de uma tabela arco-íris leva mais tempo do que apenas verificar todas as senhas no seu banco de dados. Usar uma tabela arco-íris pré-computada pode fazer sentido, mas pode ser um exagero para essa situação.
Tom van der Zanden
1

Você não pode alterar com força a senha de administrador do wp, a menos que não tenha controle em cada banco de dados do wordpress, que é armazenado no phpmyadmin.

E não, não existe uma maneira rápida de descobrir a senha da semana no site 500 wordpress. Josip menciona um link para verificar a força da senha, mas esse site não usou o md5 crypto algo para verificar a força da senha.

Confira este link do SO ( Wordpress usando MD5 ) e você verá que a saída é diferente do aplicativo. Então, como você vê, p#aSS*Word14não é seguro, Dance With Me Tonightentão Não use o aplicativo de terceiros para verificar sua senha do Wordpress, porque podem estar usando outro algoritmo de criptografia para verificar / assumir a força da senha.

Além disso, você deve ter todas as senhas e testá-las uma a uma; não há truque de mágica para descobrir rapidamente.

Outra coisa é que, se um site WordPress for invadido, ele não afetará outro site wp no mesmo servidor (exceto ataque do DOS). Vi muitas pessoas iniciarem o wp em hospedagem compartilhada e o site está sendo invadido, mas o site vizinho ainda estava funcionando bem, porque cada wp tem seu próprio banco de dados no phpmyadmin.

Goyllo
fonte
Didn't affect other WP site on same server:Coincidência! Depende do tipo de ataque / hack e intenção do hacker / bot.
Ashfame 22/02
Eu estou falando sobre segurança wordpress, não uma segurança no nível raiz. Mas tenho certeza de que, acima de tudo, o provedor de hospedagem que usa o mecanismo sandbox não afetou outro site no mesmo servidor.
Goyllo 23/02
1

Como as respostas anteriores apontaram: você não pode ler as senhas armazenadas.

Uma solução alternativa pode ser:

  1. Implemente a sugestão de Josip Ivic para aplicar senhas fortes.
  2. Exclua todas as senhas (ou apenas senhas para usuários com certos privilégios).
  3. Por fim, informe os usuários afetados que uma nova diretiva de senha está em vigor e instrua-os /wp-login.php?action=lostpassworda redefinir suas senhas.
Syberspace
fonte
1

As senhas do WordPress são hash, como qualquer aplicativo sensato faria quando se trata de armazenar senhas, porque o armazenamento de senhas em texto não criptografado é muito inseguro, pois seus usuários podem ter a mesma senha para outros serviços que usam (acha o gmail?).

Não é possível converter o hash de volta na senha, senão é possível armazená-los em texto não criptografado. As senhas costumavam ser usadas com hash, MD5mas isso era comprovadamente inseguro por uma equipe de segurança; portanto, o algoritmo de hash era atualizado para phpass.

Dica: O WordPress ainda pode gerenciar o hash corretamente, mesmo se você atualizar o MD5 (% password%) na coluna sql.

Agora, a maneira prática de abordar o que você está tentando fazer para um único site é forçar uma alteração de senhas alterando a coluna para outra coisa e aplicando os requisitos de força de senha na página em que eles atualizarão sua senha. Mas seu caso de uso exige isso em tantas instalações do WP e esses proprietários do site podem não gostar de fazer isso sem o consentimento deles. Portanto, você definitivamente precisa limitar o escopo do impacto de suas ações.

1) Atualize senhas apenas para administradores, editores, mas você precisa descobrir quem são esses usuários. Envie um e-mail para eles e imponha a restrição de senha na página de redefinição de senha / página de registro etc. Lembre-se de que alguém pode ter esses formulários em outro lugar do site (pense também nos formulários AJAX). Criando um comando WP-CLI que ajuda você aqui na execução deste plano, em vez de carregar o ambiente WP e executar scripts.

2) Gerando uma tabela arco-íris que consiste em uma senha com hash para uma sequência conhecida (senha). E então você basicamente precisa combinar o hash com a senha de um usuário em particular e avaliar a força dessa senha. Gerar a tabela é a etapa mais lenta aqui, pois você precisa fazer o hash de cada senha possível, armazená-la em disco (vários GBs, dependendo do comprimento e da combinação de senhas pelas quais você está contabilizando) e agir sobre os resultados. 99% de certeza é uma solução exagerada para as suas necessidades.

Dica: você conhece os sais e segredos que temos em wp-config.phparquivo. Mudá-los invalida as sessões logadas, caso você precise disso.

Ashfame
fonte
1

Tente fazer força bruta usando um ataque de dicionário

Qual a melhor maneira de avaliar a força da sua senha? :-) Sim, eu sei, vai demorar um pouco ...

Caso contrário, você pode simplesmente assumir que todas as senhas são fracas (eu diria que essa será uma suposição muito precisa ) e criar as senhas, armazenar os hashes no banco de dados e fornecer a senha de texto sem formatação aos administradores usando um "seguro" canal

Caso contrário, assuma novamente que todas as senhas são fracas e force os administradores a alterá-las e use um validador de força de senha muito exigente no próprio site.

Gianluca Ghettini
fonte