Descobrindo senhas no Active Directory da Microsoft por Brute Force

Esses dias descobri o que significa LDAP.

Precisei migrar para Linux uma aplicação (desenvolvida para Windows) que aproveita o Active Directory da Microsoft para fazer autenticação dos usuários. Isso significa que todo o gerenciamento das contas dessa aplicação pode ser feito através do Windows, além de a mesma conta também servir para fazer logon em máquinas da rede em que o A.D. está.

Para acessar os dados do Active Directory, utiliza-se o protocolo LDAP. Como o LDAP é um protocolo aberto, há bibliotecas que o implementam tanto no Windows como no Linux. Desta forma, usuários de uma rede heterogênea (sistemas operacionais diferentes) conseguem fazer logon utilizando os mesmos dados (login/senha).

Enquanto testava a autenticação na rede local utilizando OpenLDAP, não resisti em fazer um loop com várias tentativas para ver se o A.D. impedia algo. Como não percebi nenhum impedimento, deixei um programinha tentando descobrir minha senha da rede e ele conseguiu em 16 horas! Era uma senha simples, e com a agilidade do servidor LDAP em responder as requisições, ficou ainda mais fácil.

A rede do Centro de Informática da UFPE utiliza o mesmo protocolo, e com uma quantidade tão grande de usuários (provavelmente mais de mil), passa a ser perigoso deixar essas brechas de segurança. Acho que foi por isso que recentemente os requisitos para criação/alteração de senhas mudaram. Agora é necessário no mínimo 7 caracteres, contendo números, letras maiúsculas e minúsculas e caracteres não alfa-numéricos. Isso aumenta muito a complexidade da senha, a ponto de impossibilitar (creio) a descoberta por brute-force (uma vez que também há obrigação de trocá-la a cada 6 meses ou algo assim).

Ao buscar no Google, vi que isso já era algo "manjado". Inclusive encontrei alguns artigos que abordam o assunto com técnicas para contornar o que seria um problema de segurança. Basta buscar por active directory brute force.

4 comentários on "Descobrindo senhas no Active Directory da Microsoft por Brute Force"

  1. Rodolfo,

    estou fazendo um trabalho de conclusão da faculdade sobre métricas de segurança e gostaria de saber qual o programa para "quebrar" a senha do usuário do ad foi usado.
    abraço.

    ResponderExcluir
  2. Oi, Cristiano.

    Isso faz muito tempo, mas lembro que eu mesmo implementei este programa, em C. Ele era bem simples e a parte mais difícil foi descobrir que parâmetros passar para as funções do OpenLDAP, pois depende de cada servidor que você esteja atacando. Não publiquei o código pois esse tipo de programa tem um grande poder de "destruição". O ideal é que esse poder esteja na mão de um grupo restrito, como por exemplo apenas quem possui o conhecimento (que está disponível a qualquer um com Google, mas exige tempo e esforço para aprender).

    ResponderExcluir
  3. Podemos coibir sucessos em ação de brute force ao AD configurando as políticas de senha de modo a exigir complexidade na senha (maiúscula, minúscula, números e caracteres especiais), exigir troca de senha por um período determinado de dias, ativar o histórico de senhas utilizadas bem como bloquear a conta por X minutos quando o número de tentativas falhas atingir o estipulado.

    ResponderExcluir