CallStranger
Ce script a été créé par Yunus Çadırcı (https://twitter.com/yunuscadirci) pour vérifier la vulnérabilité CallStranger (CVE-2020-12695). Un attaquant peut utiliser cette vulnérabilité pour :
Vulnérabilité CallStranger
La vulnérabilité CallStranger, présente dans des milliards de dispositifs UPNP, peut être exploitée pour exfiltrer des données (même avec des mesures de sécurité DLP/périmétriques appropriées), scanner votre réseau, ou même faire participer votre réseau à une attaque DDoS.
La vulnérabilité – CallStranger – est causée par la valeur du champ Callback dans la fonction SUBSCRIBE d'UPnP, qui peut être contrôlée par un attaquant et permet une vulnérabilité de type SSRF affectant des millions de dispositifs exposés sur Internet et des milliards de dispositifs LAN. Cette vulnérabilité peut être exploitée pour :
- Contourner les dispositifs DLP et de sécurité réseau pour exfiltrer des données
- Utiliser des millions de dispositifs UPnP exposés sur Internet comme source de DDoS TCP réfléchi amplifié (pas identique à https://www.cloudflare.com/learning/ddos/ssdp-ddos-attack/ )
- Scanner des ports internes depuis des dispositifs UPnP exposés sur Internet
Remédiations possibles :
- Désactiver les services UPnP inutiles, en particulier pour les dispositifs/interfaces exposés sur Internet.
- Vérifier les réseaux intranet et serveurs pour s’assurer que les dispositifs UPnP (routeurs, caméras IP, imprimantes, passerelles multimédia, etc.) ne permettent pas d’exfiltration de données.
- Évaluer les journaux de sécurité réseau pour déterminer si cette vulnérabilité a été utilisée par un acteur malveillant.
- Contacter votre FAI / fournisseur de protection DDoS pour savoir si leurs solutions peuvent bloquer le trafic généré par UPnP SUBSCRIBE (HTTP NOTIFY)
Comme il s’agit d’une vulnérabilité de protocole, il peut falloir beaucoup de temps aux fabricants pour fournir des correctifs. Visitez https://callstranger.com et https://kb.cert.org/vuls/id/339275 pour des informations détaillées, les dispositifs et logiciels concernés, et pour suivre les mises à jour. CVE-2020-12695 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-12695 a été attribuée à CallStranger.
L’OCF a mis à jour la spécification UPnP le 17.04.2020 pour remédier à cette vulnérabilité. Consultez la nouvelle spécification sur https://openconnectivity.org/upnp-specs/UPnP-arch-DeviceArchitecture-v2.0-20200417.pdf
Installation
sudo python3 setup.py install
si nécessaire
sudo pip3 install -r requirements.txt
cryptography
requests
termcolor
Utilisation
Accédez simplement au dossier CallStranger et exécutez-le avec Python3 (testé avec Python 3.7.5 sur Windows 10, Python 3.8.2 sur Kali 2020.2)
Pour un scan et test du sous-réseau actuel :
python3 CallStranger.py
Pour un test sur un seul appareil :
python3 CallDirect.py http://CheminDocumentAppareil
exemple : python3 CallDirect.py http://192.168.1.1:37215/upnpdev.xml
- Trouve tous les dispositifs UPnP sur le LAN
- Trouve tous les services UPnP
- Trouve tous les points de terminaison d'abonnement
- Envoie ces points de terminaison chiffrés au serveur de vérification via le Callback UPnP.
- Le serveur ne peut pas voir ces points de terminaison car tout le chiffrement est effectué côté client
- Récupère la liste des services chiffrés depuis le serveur de vérification et la déchiffre côté client
- Compare les services UPnP trouvés avec ceux vérifiés
Exemple de sortie