
Plugin Zeek que deteta tentativas de CallStranger (CVE-2020-12695) (http://callstranger.com/)
Este pacote tenta detectar tentativas de exploração de CallStranger (CVE-2020-12695) e exfiltração de dados. Ele faz isso procurando por três coisas principais:
SUBSCRIBE com uma URL de Notify que contém um endereço IP que não é um endereço RFC1918 ou local_nets. Isso pode ser o precursor para amplificação de DDoS ou Exfiltração de DadosNOTIFY que são destinados a um endereço não RFC1918 ou local_nets. Isso pode indicar amplificação de DDoS ativa ou Exfiltração de DadosSUBSCRIBE com uma URL de Notify que é maior que CallStrangerDetector::exfiltration_threshold bytes. Isso pode indicar exfiltração de dados via UPnPO módulo assume que seu site normalmente não possui comandos UPnP SUBSCRIBE ou NOTIFY destinados à Internet e que você não possui dispositivos UPnP expostos à Internet. Se alguma dessas coisas for verdade, você verá falsos positivos. Você pode adicionar IPs específicos que geram falsos positivos ao conjunto CallStrangerDetector::ignore_subnets para ignorá-los.
Para usar este script contra um PCAP, simplesmente clone o repositório Git e execute o Zeek com zeek -Cr seu.pcap scripts/__load__.zeek
Para instalar o pacote, clone o repositório Git e execute zkg install . a partir do diretório do pacote
O módulo adicionará notificações ao notice.log se detectar atividade semelhante a CallStranger. As notificações são as seguintes:
CallStranger_Data_Exfiltration_Attempt: Observada uma tentativa de fazer um dispositivo UPnP exfiltrar tráfegoCallStranger_Data_Exfiltration_Success: Observado um dispositivo UPnP provavelmente exfiltrando dadosCallStranger_UPnP_Request_Callback_To_External_Host: Observada uma tentativa de fazer um dispositivo UPnP chamar de volta para um host externoCallStranger_UPnP_To_External_Host: Observado um dispositivo UPnP chamando de volta para um host externoExistem três opções de configuração que você pode definir:
CallStrangerDetector::exfiltration_threshold: O número de bytes que precisam ser observados em uma URL de Callback UPnP para ser classificada como exfiltração de dados.CallStrangerDetector::ignore_subnets: Um conjunto de sub-redes que devem ser ignoradas para detecções UPnP. Use isso se você tiver falsos positivos onde UPnP está atravessando a Internet legitimamente.CallStrangerDetector::strict_upnp_protocol_detection: Este booleano controla se o script será mais rigoroso ao tentar identificar comandos UPnP SUBSCRIBE. Ele faz isso exigindo que o cabeçalho "NT" (Notification Type) seja observado. O padrão é falso porque o cabeçalho NT não faz nada, é apenas exigido pela especificação UPnP. Se você tiver tráfego SUBSCRIBE não-UPnP, pode ser necessário definir isso como verdadeiroTestei isso contra tráfego UPnP local e usando o código de prova de conceito fornecido pelo autor do CallStranger (https://github.com/yunuscadirci/CallStranger). Se você tiver algum problema, por favor abra uma issue no GitHub ou entre em contato conosco. Obrigado!