LLMNR/NBT-NS Poisoning

O que são LLMNR e NBT-NS?

LLMNR - Link Local Multicast Name Resolution e NBT-NS NetBIOS Name Service são protocolos de resolução de nome de host em uma mesma rede e são usados como alternativa quando a resolução de nome por DNS falha. Quando o host tenta resolver um nome pelo DNS e ocorre uma falha, o host faz um broadcast na rede usando o LLMNR (UDP 5355) e o NBT-NS (UDP 137).

Como o ataque LLMNR/NBT-NB acontece?

Um atacante na rede local faz um spoofing dos serviços LLMNR/NBT-NS, e responde a requisição LLMNR/NBT-NB do host (Ex.: Notebook Windows 10). 

O host Windows faz um broadcast de resolução de nome e o atacante "envenena" (poisoning) esse tráfego fazendo-se passar por um servidor legítimo para o serviço requisitado. O host Windows recebe a resposta do atacante como se estivesse conectando a um serviço legítimo. 

Como o atacante consegue coletar as credenciais nesse ataque? 

Caso o serviço que o host está tentando se conectar requer autenticação, o username e o hash NTLMv2 será capturado pelo atacante. Dessa forma, o atacante consegue coletar diversas credenciais enquanto monitora e responde a requisições de serviço na rede. Os hashes coletados são posteriormente "quebrados" localmente na máquina do atacante com uso de brute-force. 

POC - Prova de conceito 

A ferramenta usada para executar o ataque é o Responder.py 

Inicie a ferramenta com o comando sudo ./Responder.py -I eth0 

O Responde inicia e mostra os protocolos LLMNR, NBT-NS e DNS ativos para "escuta", e os servidores para spoofing. 


O Responder permanece "ouvindo" a rede


Quando um host na rede tenta acessar um compartilhamento de arquivos com um nome incorreto ou que não existe é apresentado um erro de rede para o usuário. 

O atacante consegue capturar essa requisição do protocolo SMB onde as credenciais do usuário são enviadas no pacote da requisição. Dessa forma, o atacante obtém o username e o hash NTLMv2 da senha. 


O Responder vai registrar as credencias em log no arquivo SMB-NTLMv2-SSP-[IP].txt

Depois da coleta de credenciais, os hashes capturados serão "quebrados" com brute-force usando a ferramenta John The Ripper


Devido a baixa complexidade da senha, o cracking do hash da senha ocorre rapidamente. 

Sobre o Responder.py

Essa ferramenta responde as requisições NBT-NS com base no sufixo do nome e, por padrão, apenas as requisições para o SMB serão interceptadas e respondidas. No entanto, o Responder.py pode ser usado para responder a requisições de outros protocolos, basta usar o parâmetro correto ao executar a ferramenta. 

Neste artigo tem a descrição dos parâmetros para uso com outros protocolos: LINK

Sobre o LLMNR - Link Local Multicast Name Resolution

É um protocolo de resolução de nome entre hosts em uma mesma sub-rede. O LLMNR é uma alternativa ao DNS e responde às consultas para resolução de nome antes do NetBIOS. No windows, o LLMNR é habilitado por padrão desde o Windows Vista até o Windows 10. 

Sobre o NBT-NS - NetBIOS Name Server

Muito usado em dispositivos legados que usa API NetBIOS, o NetBIOS-over-TCP executa a resolução de nome em redes TCP/IP e é restrito ao IPv4.  


Referências: 

[+] Responder Tool

https://github.com/SpiderLabs/Responder

[+] Mitre Att&ck: LLMNR/NBT-NS Poisoning

https://attack.mitre.org/techniques/T1557/001/





   

Comentários

Postagens mais visitadas