CallStranger
Dieses Skript wurde von Yunus Çadırcı (https://twitter.com/yunuscadirci) erstellt, um gegen die CallStranger-Sicherheitslücke (CVE-2020-12695) zu prüfen. Ein Angreifer kann diese Schwachstelle nutzen für:
CallStranger-Schwachstelle
Die CallStranger-Schwachstelle, die in Milliarden von UPnP-Geräten gefunden wurde, kann genutzt werden, um Daten zu exfiltrieren (selbst wenn Sie über geeignete DLP-/Grenzsicherheitsmaßnahmen verfügen), Ihr Netzwerk zu scannen oder sogar dafür zu sorgen, dass Ihr Netzwerk an einem DDoS-Angriff teilnimmt.
Die Schwachstelle – CallStranger – wird dadurch verursacht, dass der Callback-Header-Wert in der UPnP-SUBSCRIBE-Funktion von einem Angreifer kontrolliert werden kann und eine SSRF-ähnliche Schwachstelle ermöglicht, die Millionen von Internet-erreichbaren und Milliarden von LAN-Geräten betrifft. Diese Schwachstelle kann verwendet werden für:
- Umgehung von DLP- und Netzwerksicherheitsgeräten, um Daten zu exfiltrieren
- Nutzung von Millionen von Internet-erreichbaren UPnP-Geräten als Quelle für verstärkte reflektierte TCP-DDoS-Angriffe (nicht identisch mit https://www.cloudflare.com/learning/ddos/ssdp-ddos-attack/ )
- Scannen interner Ports von Internet-erreichbaren UPnP-Geräten
Mögliche Abhilfemaßnahmen:
- Deaktivieren Sie unnötige UPnP-Dienste, insbesondere für Internet-erreichbare Geräte/Schnittstellen.
- Überprüfen Sie Intranet- und Servernetzwerke, um sicherzustellen, dass UPnP-Geräte (Router, IP-Kameras, Drucker, Media-Gateways usw.) keine Datencyfiltration zulassen.
- Bewerten Sie die Netzwerksicherheitsprotokolle, ob diese Schwachstelle von einem Bedrohungsakteur ausgenutzt wurde.
- Kontaktieren Sie Ihren ISP-/DDoS-Schutzanbieter, ob deren Lösungen den von UPnP SUBSCRIBE (HTTP NOTIFY) erzeugten Datenverkehr blockieren können.
Da es sich um eine Protokollschwachstelle handelt, kann es lange dauern, bis Hersteller Patches bereitstellen. Besuchen Sie https://callstranger.com und https://kb.cert.org/vuls/id/339275 für detaillierte Informationen, betroffene Geräte, Software und um Updates zu verfolgen. CVE-2020-12695 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-12695 wurde CallStranger zugewiesen.
OCF hat die UPnP-Spezifikation am 17.04.2020 aktualisiert, um diese Schwachstelle zu beheben. Überprüfen Sie die neue Spezifikation auf https://openconnectivity.org/upnp-specs/UPnP-arch-DeviceArchitecture-v2.0-20200417.pdf
Installation
sudo python3 setup.py install
falls erforderlich
sudo pip3 install -r requirements.txt
cryptography
requests
termcolor
Verwendung
Navigieren Sie einfach zu CallStranger und führen Sie es mit Python3 aus (getestet mit Python 3.7.5 unter Windows 10, Python 3.8.2 unter Kali 2020.2)
Für den aktuellen Subnetz-Scan und -Test:
python3 CallStranger.py
Für einen Einzelgerätetest:
python3 CallDirect.py http://DeviceDocumentPath
Beispiel: python3 CallDirect.py http://192.168.1.1:37215/upnpdev.xml
Wie funktioniert das Skript?
- Findet alle UPnP-Geräte im LAN
- Findet alle UPnP-Dienste
- Findet alle Abonnement-Endpunkte
- Sendet diese Endpunkte verschlüsselt an den Verifizierungsserver über UPnP-Callback.
- Der Server kann diese Endpunkte nicht sehen, da die gesamte Verschlüsselung clientseitig erfolgt
- Ruft die verschlüsselte Serviceliste vom Verifizierungsserver ab und entschlüsselt sie clientseitig
- Vergleicht die gefundenen UPnP-Dienste mit den verifizierten
Beispielausgabe