Référence des ports
Port 8888 (TCP) – HTTP alternatif / Jupyter Notebook
HTTP alternatif — port par défaut de Jupyter Notebook/Lab, un environnement d'exécution de code interactif. Pas de service fixe unique.
État par défaut
Ouvert lorsque Jupyter ou un autre serveur d'applications tourne. Souvent en HTTP simple et lié à toutes les interfaces par erreur.
Attaques courantes
- Jupyter Notebook sans authentification ou sans jeton menant à une exécution de code à distance
- Brute force du jeton/mot de passe contre la connexion Jupyter
- Interception en clair des jetons et cookies de session
- Pivot et minage de cryptomonnaie via un noyau de notebook exposé
Durcissement
- Ne jamais exposer Jupyter sur le 8888 à Internet ; lier à 127.0.0.1 et tunneliser via SSH/VPN
- Exiger un jeton fort ou un mot de passe haché et servir en HTTPS
- Exécuter les notebooks en utilisateur non privilégié dans un conteneur isolé
- Restreindre par liste d'IP et placer derrière un proxy inverse authentifié
- Maintenir Jupyter et ses dépendances à jour et désactiver les terminaux si inutiles
Commande nmap
nmap -p8888 --script http-title,http-headers,http-auth <target>Remplacez <target> par l’hôte ou la plage que vous êtes autorisé à scanner.
Qu'est-ce qui tourne sur le port 8888 ?
Le port 8888 est un port HTTP alternatif courant et le port par défaut de
Jupyter Notebook et JupyterLab. Il n'y a aucun service fixe unique —
il peut héberger d'autres outils de dev — mais Jupyter est de loin le plus
notable. Jupyter est un environnement interactif qui exécute du code
arbitraire (Python, shell, etc.) sur l'hôte, normalement joignable à
http://host:8888/.
Pourquoi c'est important pour la sécurité
Comme Jupyter exécute du code par conception, une instance exposée est en réalité un shell distant. Les notebooks sont régulièrement démarrés sans authentification ou avec un jeton qui finit dans les logs, l'historique ou un lien partagé. Combiné à l'habitude courante de lier à toutes les interfaces, cela transforme un 8888 exposé par accident en exécution de code à distance sans authentification sous l'utilisateur courant.
Comment il est attaqué
Les attaquants recherchent les Jupyter sans jeton ou faiblement authentifiés et obtiennent immédiatement du RCE via le notebook ou le terminal intégré. Ils brute-forcent jetons et mots de passe, interceptent jetons et cookies en clair, et utilisent le noyau pour pivoter dans le réseau ou lancer des mineurs de cryptomonnaie. Les notebooks exposés sont une cible automatisée bien connue.
Liste de durcissement
N'exposez jamais Jupyter sur le 8888 à Internet. Liez-le à 127.0.0.1 et
accédez-y via un tunnel SSH ou un VPN. Exigez un jeton fort ou un mot de
passe haché, servez en HTTPS, et exécutez les notebooks en utilisateur
non privilégié dans un conteneur isolé. Restreignez par liste d'IP, placez
derrière un proxy inverse authentifié, et maintenez Jupyter à jour. La commande
nmap vérifie titre, en-têtes et authentification sur les systèmes que vous êtes
autorisé à tester.
Ports liés
Questions fréquentes
- À quoi sert le port 8888 ?
- C'est le port par défaut de Jupyter Notebook et JupyterLab, et un port HTTP alternatif courant. Comme il peut tout exécuter, identifiez l'écouteur ; s'il s'agit de Jupyter, il fournit un shell Python interactif sur l'hôte.
- Pourquoi un Jupyter exposé sur le 8888 est-il si dangereux ?
- Jupyter exécute du code arbitraire par conception. Une instance sans authentification ou avec un jeton faible donne à tout visiteur une exécution de code à distance sous l'utilisateur courant. Liez-le à localhost, exigez un jeton, et accédez-y via SSH ou VPN.