Pentesting LEAP Encrypted WLAN

O LEAP (Lightweight Extensible Authentication Protocol) é um protocolo de autenticação legado baseado em Cisco que usa servidor RADIUS externo para autenticar usuários. Realiza autenticação pseudo-mútua tanto do cliente sem fio quanto do servidor de autenticação, com o uso de funções de hash - MS-CHAP e MS-CHAPv2.

A vulnerabilidade do LEAP reside no fato de que -

  • O nome de usuário do usuário é enviado em texto simples - portanto, o hacker só precisa obter a senha do usuário, usando, por exemplo, engenharia social.

  • A senha do usuário é hackeada com MS-CHAPv2 - o algoritmo é vulnerável a ataques de dicionário offline.

Da mesma forma que nos casos anteriores, vamos começar com airodump-ng para descobrir quais WLANs são transmitidas no ambiente.

Como você pode ver, o "teste LAB" WLAN é visível como rede WPA2. Nesse tipo, o modo de autenticação é alterado para "MGT" - o que significa que não há nenhuma chave pré-compartilhada (PSK) estática, mas os serviços de autenticação são movidos para o servidor de autenticação externo (ex. RADIUS). Nesse ponto, você não pode dizer se a rede WLAN específica é baseada em LEAP, PEAP, EAP-TLS, EAP-TTLS ou que outro tipo de tecnologia EAP.

O próximo passo é habilitar Wireshark, para ver os detalhes do pacote - fornece ao testador de penetração muitas informações valiosas.

Como você pode ver, o servidor de autenticação tentou primeiro negociar EAP-TTLS, mas o cliente recusou. Nas próximas 2 mensagens, eles concordaram em usar o LEAP.

Nas 2 primeiras mensagens, o servidor de autenticação pede um nome de usuário (Identidade) e o cliente responde - como você pode ver, a resposta do cliente é transmitida em texto não criptografado.

Nesse ponto, já sabemos que um nome de usuário válido do cliente sem fio é "LAB_user". Para descobrir a senha, daremos uma olhada emRequest/Response troca.

Na parte inferior do cabeçalho de autenticação 802.1x, você pode observar que o servidor de autenticação desafiou o cliente sem fio com um texto de desafio "197ad3e4c81227a4". Em seguida, em segundo plano, o cliente sem fio usou um algoritmo MS-CHAPv2 combinado com a senha do usuário LAB e obteve um hash de valor - "ef326a4844adb8288712a67e2dc659c4f9597dc4a7addc89", que foi enviado de volta ao servidor de autenticação. Como você sabe dos capítulos anteriores, felizmente para nós, o MS-CHAPv2 é vulnerável a ataques de dicionário offline. Para isso, usaremos uma ferramenta muito comum para quebrar a senha do LEAP, chamadaasleap.

Como você pode ver, com base na captura de pacotes, asleapfoi capaz de derivar todas as informações da troca de pacotes 802.1X e quebrar o hashing MS-CHAPv2. A senha do usuário: "LAB_user" é "f8be4a2c".

Mais uma vez, há uma grande chance de você nunca ver a autenticação LEAP no ambiente de produção - pelo menos agora você tem uma boa prova do porquê.