Dans un article précédent, je présentais le port scan ou balayage de ports réseaux.
Mais savez-vous qu’il est possible d’effectuer un port scan de votre PC ou réseau depuis votre navigateur WEB ?
Il s’agit d’un Browser TCP Port Scan depuis votre navigateur internet pour énumérer les ports ouverts ou les machines de votre réseau.
Cet article vous explique en détails ce type de port scan.
Comment le bloquer et se protéger du Le Browser Port Scan.
Table des matières
Le Browser port scan : comment ça marche ?
Il existe plusieurs approches pour effectuer du balayage de port depuis votre navigateur internet.
Certains proposent des PoC, d’autres sont déjà appliquées et utilisées.
Un port scan en WebRTC
Le WebRTC (Web Real-Time Communication), une collection de protocoles et d’interfaces de programmation dans les navigateurs modernes. Les protocoles nommés STUN (Session Traversal Utilities for NAT) et TURN (Traversal Using Relays around NAT) sont particulièrement intéressants dans ces cas là.
Cela aide le navigateur à configurer un canal de navigateur à navigateur pour la communication en temps réel.
Cette fonctionnalité a également été utilisée dans une faille de sécurité nommée fuite DNS.
TURN est une extension de STUN, permettant par exemple au navigateur de proxy des communications en temps réel via un serveur TURN compatible. STUN est généralement utilisé sur le protocole UDP et TURN sur le protocole TCP.
Les utilisateurs de VPN connaissent déjà WebRTC à travers la fuite d’adresse IP.
Les éditeurs de navigateurs mettent en place des restrictions sur le protocole WebRTC. Par exemple chez Chrome, il existe une liste de ports bloqués : restricted ports WebRTC sur Chrome.
Les requêtes vers ces ports sont interdites.
Toutefois sur Google Chrome, il est possible d’effectuer un port scan via un serveur WebRTC ICE.
Cela permet de contourner ces restrictions de ports.
Le script et le site de démo :
Timing Side Channel “Port Scanner” in the Browser
Le site defuse.ca propose un autre type d’approche qui permet de connaître l’existence d’une machine sur un réseau LAN depuis une page WEB.
Il fonctionne depuis votre navigateur et peut balayer votre réseau local LAN.
- Le port est ouvert ou le port est fermé et répond immédiatement avec un paquet TCP RST ou ICMP Destination inaccessible.
- Le port est “furtif” ou le port est ouvert et se bloque lorsqu’il reçoit une demande HTTP ou qu’il n’y a pas d’hôte à cette adresse IP du tout.
Il est donc plus correct de dire qu’il recherche la présence d’un hôte à une adresse IP, mais il peut être utilisé comme analyseur de ports si tous les ports d’un hôte connu sont “furtifs”.
Le scanner fonctionne en chronométrant le temps qu’il faut à votre navigateur pour renoncer à charger un fichier image inexistant.
- Si elle échoue rapidement, c’est le cas 1.
- Si elle échoue lentement, c’est le cas 2.
Par exemple ci-dessous, 192.168.1.1 répond en cas numéro 1, car c’est la box internet.
Les autres sont en cas 2 car les machines n’existent pas.
Pourquoi est-ce dangereux ?
Si vous visitez un site Web d’un attaquant, il peut utiliser votre connexion pour scanner un autre hôte sur Internet dans le cadre d’une attaque.
Étant donné que l’analyse provient de votre connexion, vous pourriez être blâmé.
Les sites Web que vous visitez peuvent obtenir un peu d’informations sur ce que vous utilisez sur votre réseau local, ce qui pourrait les aider s’ils veulent vous attaquer plus tard.
Si vous avez un réseau local très unique, il peut être utilisé comme une sorte de “supercookie” pour vous suivre en ligne. Ceci n’est probablement pas pratique car la numérisation prend beaucoup de temps.
Par exemple, si vous avez une imprimante avec une page d’administration Web ouverte sur votre réseau local, un site Web que vous visitez peut rechercher des imprimantes sur votre réseau, puis les empreintes digitales (par exemple en demandant des URL d’images connues pour des marques d’imprimantes courantes), en apprenant potentiellement la marque, modèle et version du micrologiciel de votre imprimante.
Le port scan d’eBay
En Mai 2020, des chercheurs découvrent qu’Ebay effectue un scan de port à la connexion.
Ce dernier vérifie si des ports VNC, RDP, TeamViewer, etc sont ouverts.
La société se défend en indiquant qu’il s’agit d’un scan de sécurité pour détecter les machines compromises ou botnet.
Le scan de port se base essentiellement sur du JavaScript.
Le site blog.nem.ec propose un article assez complet sur le port scan utilisé par Ebay : Ebay is port scanning visitors to their website – and they aren’t the only ones
Le browser port scan : comment le bloquer et s’en protéger
Des extensions de sécurité aident à bloquer et se protéger des browser port Scan.
uBlock Origin
Suite a la découverte d’Ebay, uBlock bloque le JavaScript a l’origine du balayage de port.
uBlock Origin bloque aussi le port scan de jacob-baines.github.io grâce à la désactivation de la prédiction des actions sur le réseau.
On peut aller plus loin en bloquant la fuite des adresses IP locales via WebRTC.
Par contre, uBlock n’aide pas contre celui de defuse.ca.
Par contre le filtrage dynamique d’uBlock Origin fait le boulot.
uBlock reste une extension utile pour protéger son PC des attaques, malwares et bloquer les publicités et traqueurs.
Behave!
Cette autre extension de sécurité pour bloquer et protéger des Browser port scan.
Voici les protections proposées :
- Scan de Port depuis le Navigateur
- Accès à des IPs Privées
- Attaque par DNS Rebinding vers des IPs Privées
Behave bloque sans problème le port scan de defuse.ca
Par contre le balayage de port par le site jacob-baines n’est pas bloqué.
A noter qu’il bloque les requêtes WebSocks des sites WEB.
Liens
- Port ouvert : sécurité, intrusion et piratage
- Comment tester si port distant est ouvert sur Linux
- Comment vérifier si port distant est ouvert sur Windows
- Comment faire un scan de ports réseaux ou balayage de ports réseaux
- Comment faire un scan IP d’un réseau local LAN
- Netstat sur Linux : utilisations et exemples
- tcpdump : capturer et analyser le trafic réseau sur Linux
- Traceroute : a quoi cela sert et comment faire sur Windows et Linux
- Comment utiliser Nmap sur Windows (Zenmap)
- 13 exemples de commandes Nmap
- Comment faire un test de ping pour tester la connexion réseau ou mesurer la latence
- Qu’est-ce que la latence réseau
- Les commandes réseau utiles de Linux
- Comment configurer une adresse IP sur Ubuntu
- Linux : mesurer le débit et lister les connexions réseaux
- AirBnb: trouver une caméra cachée
- Windows 10 : La découverte du réseau ne fonctionne pas
- Hôte de service et forte utilisation CPU sur Windows 10