
Plugin Zeek che rileva i tentativi di CallStranger (CVE-2020-12695) (http://callstranger.com/)
Questo pacchetto tenta di rilevare i tentativi di sfruttamento di CallStranger (CVE-2020-12695) e l'esfiltrazione dei dati. Lo fa cercando tre elementi chiave:
SUBSCRIBE con un URL di Notifica che contiene un indirizzo IP che non è un indirizzo RFC1918 o della rete locale (local_nets). Questo potrebbe essere il precursore dell'amplificazione DDoS o dell'esfiltrazione dei dati.NOTIFY destinati a un indirizzo non RFC1918 o della rete locale (local_nets). Questo potrebbe indicare un'amplificazione DDoS attiva o un'esfiltrazione dei dati.SUBSCRIBE con un URL di Notifica più lungo di CallStrangerDetector::exfiltration_threshold byte. Questo potrebbe indicare esfiltrazione dei dati tramite UPnP.Il modulo presuppone che il tuo sito normalmente non abbia comandi UPnP SUBSCRIBE o NOTIFY destinati a Internet e che tu non abbia dispositivi UPnP esposti a Internet. Se una di queste condizioni è vera, vedrai falsi positivi. Puoi aggiungere specifici IP che generano falsi positivi al set CallStrangerDetector::ignore_subnets per ignorarli.
Per usare questo script su un PCAP, basta clonare il repository Git ed eseguire Zeek con zeek -Cr your.pcap scripts/__load__.zeek
Per installare il pacchetto, clona il repository Git ed esegui zkg install . dalla directory del pacchetto
Il modulo aggiungerà notifiche a notice.log se rileva attività simile a CallStranger. Le notifiche sono le seguenti:
CallStranger_Data_Exfiltration_Attempt: Osservato un tentativo di far esfiltrare traffico a un dispositivo UPnPCallStranger_Data_Exfiltration_Success: Osservato un dispositivo UPnP che probabilmente sta esfiltrando datiCallStranger_UPnP_Request_Callback_To_External_Host: Osservato un tentativo di far chiamare un host esterno da un dispositivo UPnPCallStranger_UPnP_To_External_Host: Osservato un dispositivo UPnP che chiama un host esternoCi sono tre opzioni di configurazione che puoi impostare:
CallStrangerDetector::exfiltration_threshold: Il numero di byte che devono essere osservati in un URL di callback UPnP per essere classificato come esfiltrazione dei dati.CallStrangerDetector::ignore_subnets: Un insieme di sottoreti che devono essere ignorate per i rilevamenti UPnP. Usalo se hai falsi positivi dove UPnP attraversa Internet legittimamente.CallStrangerDetector::strict_upnp_protocol_detection: Questo booleano controlla se lo script sarà più rigoroso nel tentare di identificare i comandi UPnP SUBSCRIBE. Lo fa richiedendo l'header "NT" (Notification Type). Il valore predefinito è false perché l'header NT non fa effettivamente nulla, è solo richiesto dalla specifica UPnP. Se hai traffico SUBSCRIBE non UPnP, potresti dover impostare questo a trueHo testato questo contro il traffico UPnP locale e usando il codice proof of concept fornito dall'autore di CallStranger (https://github.com/yunuscadirci/CallStranger). Se hai problemi, apri una issue su GitHub o contattaci. Grazie!