No filme cult do começo dos dois milésimos, “Senha“ Swordfish ”, um hacker talentoso precisa pegar uma senha dentro de um minuto. Um amigo o ajuda nisso, que cuidadosamente segura uma pistola na têmpora e uma loira temperamental, escondida embaixo da mesa. O que devo fazer se não houver amigos por perto e precisar encontrar uma senha? Por exemplo, durante o teste de penetração ...

Um aviso pequeno, mas importante: se a abordagem proposta no artigo não for usada como parte de projetos de teste de segurança, suas ações poderão ser facilmente abrangidas pelo artigo 272 do Código Penal da Federação Russa (acesso ilegal a informações do computador).
Para criar uma estratégia eficaz de adivinhação de senha, um hacker ético deve tentar entrar na cabeça de usuários e administradores.
Quais fatores influenciam nossa escolha de senhas?
Você pode nomear pelo menos os três seguintes:
- facilidade de lembrar;
- restrições à escolha da senha imposta pelo sistema;
- o número de pessoas que usam essa senha em suas atividades.
O que os usuários podem se lembrar facilmente?
Considere as coisas mais fáceis de lembrar:
1) O que está diante dos meus olhos.
Diante de nossos olhos, marcas registradas de monitores, laptops, mouses e teclados de computador, as inscrições “senha:” costumam aparecer. Dizem que a escolha do gerente de campanha eleitoral de Hillary Clinton de uma senha tão trivial como "senha" afetou desastrosamente os resultados das eleições americanas.
2) Isso é importante.
Importante para uma pessoa:
- lembranças agradáveis e datas relacionadas: por exemplo, a data do casamento;
- relacionamento: nome de um ente querido. Napoleão escolheria uma bonita josefina;
- propriedade: marca do carro. James Bond não mudaria a si mesmo e escolheria aston, e se o fizesse, então bmw;
- carinho: nome do animal de estimação. Emil de Lenneberg imortalizaria o apelido de seu amiguinho: svinushok;
- sonho: umas férias em um lugar específico. A garota temperamental do filme provavelmente escolheria o maravilhoso bali;
- trabalho: nome da organização ou seu tipo. Os irmãos Lehman fariam uma escolha clara - banco.
- passatempos: esportes, colecionar, música. Bem, quem não gosta de beatles?
3) O que os dedos lembram:
- figura geométrica no teclado: qwerty;
- sequência de caracteres: 12345678.
4) Que tipo de sistema / site:
- nome do sistema;
- palavras associadas ao processo de negócios que ele automatiza. Por exemplo, no verão de 2015, houve um vazamento de senhas de usuários que gostam de ficar à esquerda procurando satélites e acompanhantes quentes pelo site da Ashley Madison. Entre as senhas, muitas vezes encontram-se opções, como: 67lolita, 68cougar, love69pussies, lovesex.
Em 2014, houve um grande vazamento de senhas do Gmail, Yandex e Mail.ru. As listas de senhas foram analisadas por varagian no artigo "Análise de senhas vazadas Gmail, Yandex e Mail.Ru" e você pode ver que os usuários selecionam senhas exatamente de acordo com o esquema considerado.
Como as restrições de proteção por senha afetam a escolha das senhas pelo usuário?
Para proteger os usuários em muitos sistemas, os desenvolvedores forneceram um mecanismo de política de senha que, infelizmente (felizmente para hackers éticos), nem sempre é usado. Considere as limitações e como elas são implementadas / gerenciadas pelos usuários do criativo.
Restrições típicas da diretiva de senha:
- comprimento da senha (geralmente pelo menos 8);
- uso de caracteres em vários registros;
- o uso de combinações de letras e números;
- uso de caracteres especiais;
- proibição de usar a senha anterior.
Não é difícil criar uma senha com mais de 8 caracteres, mas o uso de caracteres em registros diferentes já é difícil, pois é necessário lembrar qual caractere da sua senha estava em maiúsculas. A solução mais óbvia e provável: escolha o primeiro ou o último caractere.
Se o sistema obriga a adicionar números, então os usuários são um pouco mais inventivos:
- Adicione números ao começo ou ao fim. Como regra, de um a quatro. Assim, pode ter apenas um dígito, como na senha comum “Senha1”, se dois, o usuário provavelmente escolherá um ano ou idade, como na senha “68cougar” do nosso exemplo erótico. Se houver três dígitos, eles podem ser simplesmente a sequência "123". Se o usuário quiser adicionar 4 dígitos, será um ano com a ortografia completa: "Alexander2018".
- Substitua as letras por números semelhantes: A = 4, E = 3, I = 1, O = 0. Usuários especialmente criativos podem usar totalmente o l33t
Se for necessário usar caracteres especiais, os usuários, em regra, usam um dos caracteres especiais mais famosos, como pode ser visto na ilustração a seguir:

Nada é mais irritante do que proibir o uso da senha antiga, e os usuários aprenderam a contornar essa restrição fazendo alterações mínimas, por exemplo, aumentando o número no final da senha em 1: era "Alexander2018", tornou-se "Alexander2019".
Para entender esses pequenos truques dos usuários, é bastante simples para um hacker ético restringir a lista de palavras candidatas a uma senha.
Número de usuários de senha
Se a senha for usada por muitos usuários, por exemplo, administradores de sistema ou alunos na sala de aula, geralmente ela não é muito complicada (por exemplo, corresponde ao nome da conta) e geralmente é deixada como foi definida pelo fornecedor. por padrão.
Estratégia de senha
Tendo lidado com as nuances da seleção de senhas pelos usuários, também podemos desenvolver uma estratégia de seleção de senhas durante o teste de penetração.
Fixamos as condições iniciais:
- Realizamos testes de penetração (hackers exclusivamente éticos);
- existem sistemas com um mecanismo de autorização para um par de login e senha;
- Queremos comprometer o número máximo de contas de usuário no número máximo de sistemas;
- Consideramos apenas a seleção de senha on-line (não consideramos quebra de hashes).
Etapa 1. Definindo nomes de contas de usuário
Para obter uma autorização bem-sucedida, uma senha geralmente não é suficiente; você também precisa saber o nome da conta. Nós vamos descobrir como consegui-lo.
Opção 1. Obtendo uma lista de contas usando uma vulnerabilidade no sistema.
Por exemplo, um controlador de domínio do Windows pode ser configurado para permitir que um usuário anônimo recupere uma lista de contas de usuário.
Qualquer pessoa pode verificar seu controlador de domínio quanto a essa oportunidade, por exemplo, usando o utilitário de linha de comando rpcclient do Scanner-VS :
- Estamos conectados ao controlador de domínio e, a pedido da senha, pressione Enter:
rpcclient -U "" IP_controller_domain_address - Execute os enumdomusers de comando internos
rpcclient $> enumdomusers
Opção 2. Formação de uma lista baseada em "inteligência" e análise.
Os nomes de usuários, mesmo em pequenas organizações, são definidos pelos administradores com base em algum padrão. As opções mais comuns: a primeira letra do nome + sobrenome: adorofeev, a mesma coisa, mas através do ponto a.dorofeev, nome completo + sobrenome: alexander.dorofeev. Além disso, geralmente os nomes das contas internas coincidem com a conta de e-mail, respectivamente, a regra para gerar um nome de usuário pode ser determinada simplesmente por “google” os endereços dos funcionários que apareceram na Internet e uma lista completa pode ser criada com base na lista de funcionários que podem ser obtidos na lista telefônica interna, bem como redes sociais. Em um caso extremo, você pode formar combinações dos nomes e sobrenomes mais comuns de acordo com as regras mais comuns para criar nomes de contas.
Opção 3. As contas e entradas padrão mais comuns.
Muitos sistemas têm contas padrão. No mínimo, este é administrador ou administrador. Em alguns sistemas, existem muitos deles; portanto, no DBMS do Oracle, você pode encontrar SYSTEM, SYS, ANONYMOUS, CTXSYS, DBSNMP, LBACSYS, MDSYS, OLAPSYS, ORDPLUGINS, ORDSYS, OUTLN, SCOTT, WKSYS, WMSYS, XDB. Portanto, faz sentido consultar os manuais dos administradores de sistema que você deseja testar.
Freqüentemente, nos sistemas, existem contas que são muito fáceis de calcular, por exemplo, se a empresa tem uma aula de treinamento, a probabilidade de ter contas de professores e alunos é bastante alta. E quantos sistemas em que alguém não criou uma conta de teste?
Etapa 2. A seleção inicial de senhas
Entendendo quais contas em quais sistemas da infraestrutura de TI testada planejamos comprometer, podemos determinar a sequência dos sistemas para o ataque:
Não. | Classe de sistemas | Contas | Senhas |
---|
1 | Controlador de domínio | Contas de funcionários, administrativas, típicas. | O mais comum. |
2 | Aplicativos de negócios | Contas de funcionários, administrativas, típicas. | O mais comum. |
3 | DBMS | Contas de funcionários, administrativas, típicas, padrão. | Mais comum, por padrão
|
4 | Sistemas e serviços especiais: backup, ftp, etc. | Administrativo, por padrão. | O mais comum, por padrão. |
5 | Equipamento de rede ativo | Administrativo, por padrão. | O mais comum, por padrão. |
Se os sistemas tiverem o bloqueio de conta ativado após várias tentativas malsucedidas (como regra, eles selecionam o número 5) e o tempo de teste é limitado, e não podemos definir um tempo limite entre as tentativas de redefinir o contador, faz sentido "executar" todos os usuários, verificando as seguintes senhas prováveis:
- qwerty;
- Nome da conta correspondente
- vazio.
Etapa 3. Extensão da zona de influência
Depois de pegar as senhas da conta, a primeira coisa que um hacker ético precisa fazer é fazer login e ver o que ele tem acesso.
Se o acesso for obtido ao sistema de arquivos, será necessário procurar os seguintes arquivos:
- arquivos de configuração que podem conter informações sobre endereços IP e contas;
- backups do sistema, imagens do sistema operacional para “rolagem” em novas máquinas. Geralmente, você pode extrair hashes de senha deles;
- Scripts SQL que também geralmente contêm informações úteis.
As senhas e contas selecionadas para um sistema devem ser verificadas para outros, pois os usuários, incluindo administradores, gostam de usar as mesmas senhas em sistemas diferentes.
Nota para um hacker ético: em grandes organizações, geralmente existem ambientes de teste que usam dados recuperados de um backup não tão antigo do banco de dados do sistema de combate. Ao mesmo tempo, os ambientes de teste geralmente são mal protegidos, por exemplo, pode haver várias contas de administrador administrativo e senhas simples. O comprometimento de tal sistema leva ao fato de que especialistas em testes obtêm acesso a hashes de senha de usuário, que geralmente são relevantes para um sistema de combate.
Ferramentas e dicionários de senha on-line
A ferramenta clássica para adivinhar senhas on-line é o utilitário de linha de comando thc-hydra e, para hackers e administradores éticos que gostam de conforto, essa funcionalidade com uma interface intuitiva está disponível em nosso complexo Scanner-VS :


Além disso, a chave para adivinhar com êxito a senha é a disponibilidade de dicionários bem escritos, mas há problemas com isso. Os dicionários fornecidos com as modernas ferramentas de análise de segurança doméstica nem sempre contêm conjuntos de palavras realmente úteis. Por exemplo, inclua um dicionário padrão distribuído com um utilitário gratuito. A solução, é claro, é simples, mas não muito eficaz. Como você pode imaginar um usuário russo escolhendo senhas como futebol, gracinha, maganda ou mustang. Quantos proprietários felizes do Ford Mustang existem na cidade russa comum? Às vezes, eles incluem um dicionário maravilhoso, baseado principalmente em senhas deixadas por padrão, mas esquecem completamente os usuários comuns e suas senhas favoritas.
Decidimos corrigir essa situação irritante e compilamos nossas listas de senhas, que agora estão disponíveis não apenas para os usuários do nosso complexo de testes de segurança Scanner-VS, mas também para todos no site da nossa solução na seção Senhas :
Listas de Senhas:
- TOP-157
- TOP-25
- Sequências numéricas
- Datas
- Sequências de teclado
- Nomes masculinos comuns
- Nomes femininos comuns
Listas de contas:
- Mens personalizados: primeira letra do nome e sobrenome
- Mens personalizado: primeira letra do primeiro nome + ponto final + sobrenome
- Homens personalizados: nome + ponto + sobrenome
- Mulheres personalizadas: primeira letra do nome + sobrenome
- Feminino personalizado: primeira letra do primeiro nome + ponto + sobrenome
- Fêmea personalizada: nome + ponto + sobrenome
Conclusão
O hacker do filme “Password Swordfish” teve sorte e, apesar das distrações e do estilo caótico do trabalho, ele conseguiu pegar uma senha e permanecer vivo. Usando uma abordagem estruturada, hackers éticos aumentam suas chances de sucesso nos testes de penetração e confiam menos na sorte. Essa abordagem funcionará desde que as senhas sejam escolhidas pelas pessoas.