Ressources pour développeur web

Théme de la semaine : La newsletter

Shodan CLI : Tutoriel pour utiliser Shodan depuis le terminal

Temps de lecture estimé : 9 minutes
Accueil CyberSécurité Shodan CLI : Tutoriel pour utiliser Shodan depuis le terminal

Contrairement à Google qui indexe les pages web, Shodan explore Internet pour indexer les machines connectées : serveurs, routeurs, caméras, bases de données, objets connectés… absolument tout ce qui répond sur un port réseau.

  • Shodan CLI permet d’explorer Internet depuis le terminal pour identifier les machines, services et objets connectés exposés sur le réseau.
  • Apprendre à installer et utiliser Shodan CLI facilement afin de lancer ses premières recherches et analyser les informations retournées.
  • Exploiter concrètement les résultats obtenus pour analyser une infrastructure, détecter des services publics et des systèmes connectés.

La plupart des utilisateurs découvrent Shodan via son site web. Pourtant, les professionnels utilisent souvent Shodan CLI, une interface en ligne de commande qui permet d’interroger la base de données directement depuis le terminal.

Plus rapide, scriptable et extrêmement puissant, Shodan CLI devient vite un outil incontournable dès que l’on souhaite automatiser des recherches ou analyser des services exposés sur Internet.

Dans ce tutoriel, vous allez découvrir comment utiliser Shodan en CLI depuis le terminal, même si vous débutez complètement. Nous verrons comment l’installer, comment effectuer des recherches, comment interpréter les résultats et surtout comment exploiter les informations obtenues.

Qu’est-ce que Shodan et à quoi ça sert ?

Pour bien comprendre Shodan CLI, il faut d’abord comprendre ce qu’est Shodan.

On le décrit souvent comme le moteur de recherche des objets connectés.

Au lieu d’indexer des pages web comme Google, Shodan scanne Internet en permanence et enregistre :

  • les serveurs web
  • les routeurs
  • les caméras IP
  • les serveurs FTP
  • les bases de données
  • les objets connectés (IoT)
  • les services réseau exposés

Chaque fois qu’un appareil répond sur Internet, il envoie généralement une bannière de service. Cette bannière contient des informations précieuses :

  • logiciel utilisé
  • version
  • système d’exploitation
  • localisation approximative
  • ports ouverts

Shodan collecte toutes ces informations et les stocke dans une immense base de données. Grâce à cela, vous pouvez par exemple rechercher :

  • des serveurs Apache en France
  • des caméras IP accessibles
  • des serveurs FTP anonymes
  • des bases de données mal configurées

Et c’est précisément là que Shodan CLI devient intéressant : il permet d’interroger cette base de données directement depuis le terminal.

Shodan

Pourquoi utiliser Shodan CLI ?

La version web de Shodan est très pratique. Cependant, la version CLI (Command Line Interface) apporte plusieurs avantages.

D’abord, elle est beaucoup plus rapide. Une commande dans le terminal peut lancer une recherche instantanément.

Ensuite, elle permet l’automatisation. Vous pouvez par exemple :

  • intégrer Shodan dans un script
  • automatiser un audit de sécurité
  • analyser régulièrement votre infrastructure

Enfin, la CLI permet d’exporter et manipuler facilement les résultats.

Pour les développeurs, administrateurs système ou chercheurs en cybersécurité, Shodan CLI devient vite un outil quotidien.

Shodan en OSINT

Shodan est avant tout un outil OSINT (Open Source Intelligence) : il permet d’explorer une base de données publique contenant des informations sur des machines connectées à Internet (serveurs, routeurs, webcams, objets connectés). L’utilisateur ne scanne pas directement les systèmes ; il consulte simplement des données déjà collectées par Shodan, ce qui permet d’analyser des infrastructures, identifier des technologies utilisées ou repérer des services exposés.

Autrement dit, lorsque vous utilisez Shodan :

  • vous ne lancez pas d’attaque
  • vous ne scannez pas directement les machines
  • vous consultez des informations déjà collectées

C’est exactement le principe de l’OSINT : exploiter des données publiques pour analyser une infrastructure.

Par exemple, avec Shodan vous pouvez découvrir :

  • qu’un serveur expose un port SSH
  • qu’une base de données MongoDB est accessible
  • qu’une webcam est connectée à Internet
  • qu’un serveur utilise une version ancienne d’Apache

Toutes ces informations sont visibles sans interaction intrusive avec la machine cible.

Shodan en pentest

En pentesting, Shodan est principalement utilisé lors de la phase de reconnaissance. Il aide à identifier des ports ouverts, des services accessibles ou des versions de logiciels potentiellement vulnérables. Ces informations servent ensuite de point de départ pour approfondir l’analyse avec d’autres outils spécialisés comme Nmap ou Metasploit.

Même si Shodan est d’abord un outil OSINT, il est aussi très utilisé en phase de reconnaissance lors d’un pentest.

Dans un test d’intrusion, la première étape consiste souvent à cartographier la surface d’attaque.

Shodan peut alors servir à identifier :

  • les ports ouverts
  • les services exposés
  • les technologies utilisées
  • les versions de logiciels

Installer Shodan sur votre terminal

Passons maintenant à la pratique, l’installation de Shodan CLI est très simple.

Étape 1 : installer Python

Shodan CLI fonctionne grâce à Python.

Pour vérifier si Python est installé :

python3 --version

Si vous obtenez une version (par exemple Python 3.11), tout va bien.

Sinon, installez Python depuis : https://python.org

Étape 2 : installer Shodan CLI

Une fois Python installé, utilisez pipx, le gestionnaire de paquets Python.

Dans votre terminal :

pipx install shodan

En quelques secondes, la CLI sera installée.

Installer setuptools compatible :

~/.local/pipx/venvs/shodan/bin/python -m pip install "setuptools<70"

Pour vérifier :

shodan version

Si une version apparaît, l’installation est réussie.

👉 Pour aller plus loin : Pip, Pip3 et Pipx : Gérer vos paquets

Étape 3 : créer un compte Shodan

Pour utiliser Shodan CLI, vous devez posséder une clé API.

Rendez-vous sur : https://account.shodan.io

  • Créez un compte gratuit.

Dans votre tableau de bord, vous trouverez une clé API personnelle.

Étape 4 : connecter Shodan CLI à votre compte

Dans le terminal :

shodan init VOTRE_CLE_API

Si tout se passe bien, le message suivant apparaît :

Successfully initialized

Votre Shodan CLI est maintenant prêt à fonctionner.

Première recherche avec Shodan CLI

Commençons par une recherche simple. Depuis le terminal, tapez :

Attention, il vous faut une licence payante.

shodan search apache

Cette commande demande à Shodan :

Montre-moi tous les serveurs utilisant Apache.

Les résultats ressemblent à ceci :

IP: 192.168.1.10
Port: 80
Organisation: OVH
Location: France
Server: Apache/2.4.41

Chaque ligne représente un serveur détecté par Shodan.

Comprendre les résultats de Shodan

Lorsqu’on utilise Shodan CLI, il est important de comprendre les informations affichées. Voici les éléments les plus courants.

Adresse IP

Exemple :

192.168.1.10

C’est l’adresse publique du serveur.

Port

Exemple :

80

Le port correspond au service réseau.

Les ports les plus fréquents :

PortService
80HTTP
443HTTPS
22SSH
21FTP
3306MySQL

👉 Tout savoir sur : Les ports en informatique

Organisation

Exemple :

OVH

Cela indique souvent le fournisseur d’hébergement.

Localisation

Exemple :

France

Shodan estime la localisation via l’adresse IP.

Bannière de service

Exemple :

Apache/2.4.41

C’est l’information envoyée par le serveur.

Elle indique souvent :

  • le logiciel
  • la version
  • parfois le système d’exploitation

Ces données sont extrêmement utiles pour détecter des vulnérabilités.

Les commandes principales de Shodan CLI

Voyons maintenant les commandes les plus importantes.

Rechercher un service

shodan search nginx

Cette commande affiche les serveurs utilisant Nginx.

Rechercher dans un pays

shodan search apache country:FR

Cela affiche les serveurs Apache situés en France.

Rechercher un port spécifique

shodan search port:22

Cela liste les machines avec SSH accessible.

Rechercher un produit spécifique

shodan search product:MongoDB

Shodan affichera les serveurs MongoDB détectés.

Obtenir les informations détaillées d’une IP

Une autre commande très utile :

Accessible avec la licence gratuite.

shodan host 8.8.8.8

Elle affiche toutes les informations connues sur cette adresse IP.

Par exemple :

  • ports ouverts
  • services détectés
  • certificats SSL
  • informations réseau
Shodan CLI depuis le terminal

C’est très pratique pour analyser une machine exposée sur Internet.

Obtenir l’ip d’un serveur ou d’un site web

Les plus simples :

  • dig → dig example.com
  • nslookup → nslookup example.com
  • ping → ping example.com
  • host → host example.com

Ces outils interrogent le DNS pour obtenir l’IP d’un domaine.

Avec une adresse IP, vous pouvez interroger Shodan pour obtenir des informations sur les services exposés. Exemple avec le CLI :

Attention, il vous faut une licence payante.

shodan host 142.12.60.1

Shodan peut alors afficher :

  • les ports ouverts
  • les services détectés (Apache, nginx, SSH…)
  • le pays / ville
  • l’organisation / hébergeur
  • parfois la version du logiciel

En résumé : IP → Shodan → informations sur le serveur exposé sur Internet.

Les résultats de Shodan servent surtout à comprendre ce qu’un serveur expose publiquement sur Internet. Concrètement, ils peuvent être utiles dans trois cas principaux.

1. Analyse OSINT
Vous pouvez identifier l’infrastructure technique d’un site ou d’une organisation :
quel hébergeur est utilisé, quels services sont ouverts (SSH, HTTP, FTP…), dans quel pays se trouve le serveur, etc.

2. Audit de sécurité
Pour un administrateur système ou un pentester, Shodan permet de voir rapidement :
si des ports sensibles sont ouverts, quels logiciels tournent sur le serveur et parfois leurs versions. Cela aide à détecter des failles potentielles.

3. Recherche technique ou veille
On peut analyser les technologies utilisées sur Internet : par exemple combien de serveurs utilisent Apachenginx, ou exposent un certain service.

Shodan permet de savoir rapidement ce qu’un serveur révèle publiquement et si cela peut poser un problème de sécurité.

Un port ouvert n’est pas forcément un problème, c’est simplement un service accessible sur le réseau.

Si vous êtes l’administrateur du serveur

Un port ouvert vous sert à fournir un service.

Exemples classiques :

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?
  • 22 (SSH) → administration à distance du serveur
  • 80 / 443 → site web
  • 25 / 587 → serveur mail
  • 3306 → base de données MySQL

Dans ce cas, l’objectif est surtout de sécuriser l’accès :

  • limiter l’accès SSH par clé SSH (pas mot de passe) → Sécuriser ses connexion SSH
  • changer éventuellement le port SSH
  • utiliser un firewall
  • limiter les IP autorisées
  • installer fail2ban

Si vous analysez un serveur (OSINT / pentest autorisé)

Un port ouvert vous indique quel service est exposé. Exemple :

22/tcp open ssh
80/tcp open http
443/tcp open https

Cela permet de comprendre :

  • quelles technologies sont utilisées
  • si un service est mal configuré
  • si une version vulnérable est exposée

C’est exactement le type d’informations que collecte Shodan.

Un port ouvert ne signifie pas qu’il faut tenter de s’y connecter ou de l’exploiter sans autorisation. Cela devient rapidement illégal.

Comment se connecter à un port ouvert ?

Dans un pentest légal, un port ouvert indique simplement qu’un service écoute. L’objectif est d’identifier ce service puis tester son accès avec des outils adaptés.

Identifier le service

Avant de se connecter, on vérifie quel service tourne derrière le port. Outil classique :

Par exemple :

nmap -sV 192.168.1.10

L’option -sV détecte la version du service.

Tester la connexion au port

Connexion brute au port, les outils simples pour voir si le service répond :

  • netcat (nc)
  • telnet

👉 Pour en savoir plus : Commande TELNET et NETCAT pour le réseau

Exemple :

nc 192.168.1.10 80

ou

telnet 192.168.1.10 25

Cela permet d’envoyer des commandes manuelles au service.

Se connecter selon le service détecté

SSH (port 22)

ssh user@192.168.1.10

HTTP / HTTPS à l’aide du navigateur ou :

curl http://192.168.1.10

FTP

ftp 192.168.1.10

Les outils utilisés en pentest

Outils courants :

  • Nmap → scan et détection des services
  • Netcat → connexion brute aux ports
  • Metasploit → exploitation de vulnérabilités
  • Burp Suite → tests sur applications web
  • Hydra → tests d’authentification

Principe général d’un pentest :

  1. Découvrir les ports ouverts
  2. Identifier les services
  3. Se connecter au service
  4. Tester les configurations et vulnérabilités

Méthodologie classique d’un pentest réseau

Objectif : identifier la cible et son infrastructure.

On collecte des informations sans interaction intrusive.

Outils courants :

  • whois → propriétaire du domaine
  • dig / nslookup → IP d’un domaine
  • Shodan → services exposés
  • theHarvester → emails et sous-domaines

Exemples :

dig example.com
whois example.com

On cherche :

  • IP
  • sous-domaines
  • hébergeur
  • technologies utilisées

Scan et cartographie

Objectif : découvrir les ports ouverts et services actifs.

Outil principal :

Exemple :

nmap -sS -sV -O 192.168.1.10

Cela révèle :

  • ports ouverts
  • services
  • versions
  • système d’exploitation probable

Énumération

Objectif : extraire le maximum d’informations des services.

Exemples :

  • version Apache
  • bannière SSH
  • utilisateurs FTP
  • endpoints web

Outils :

  • nikto → scan web
  • dirsearch / gobuster → trouver des pages cachées
  • enum4linux → services SMB

Exploitation

Objectif : tester les vulnérabilités identifiées.

Exemples :

  • mot de passe faible
  • logiciel vulnérable
  • mauvaise configuration

Outils :

  • Metasploit
  • hydra → test d’authentification
  • sqlmap → injection SQL

Post-exploitation

Objectif : évaluer l’impact réel.

Exemples :

  • accès administrateur
  • extraction de données
  • déplacement latéral sur le réseau

On mesure :

  • le niveau de contrôle obtenu
  • les données accessibles
  • les risques pour l’entreprise

Dernière étape : documenter tout ce qui a été trouvé.

Le rapport contient :

  • vulnérabilités découvertes
  • niveau de risque
  • preuves
  • recommandations de correction

Voici un résumé très simple

  1. Reconnaissance → trouver la cible
  2. Scan → découvrir les ports
  3. Enumération → comprendre les services
  4. Exploitation → tester les failles
  5. Post-exploitation → mesurer l’impact
  6. Rapport → expliquer les risques

Chercher des webcams sur le site de Shodan

Sur le site de Shodan, vous pouvez utiliser des mots-clés dans la barre de recherche :

webcam
ip camera

Ou des signatures d’appareils :

product:"IP Camera"
server:"GoAhead-Webs"

Ces requêtes affichent parfois :

  • caméras IP
  • systèmes de vidéosurveillance
  • babyphones connectés
  • caméras industrielles

Cela montre simplement que l’appareil est accessible depuis Internet.

Pour chaque appareil, Shodan peut afficher :

  • l’adresse IP
  • le pays
  • les ports ouverts
  • le type d’appareil
  • parfois une capture d’écran du service web

Une caméra IP est simplement un serveur web ou un service réseau comme un autre. Voici la démarche classique pour s’y connecter (uniquement si vous en avez l’autorisation) :

Identifier le service exposé

Une webcam IP expose souvent :

  • HTTP → interface web
  • RTSP → flux vidéo
  • parfois ONVIF → protocole de gestion

On vérifie avec Nmap :

nmap -sV IP_DE_LA_CAMERA

Exemple de résultat :

80/tcp open  http
554/tcp open rtsp

Accéder à l’interface web

La plupart des caméras possèdent un panneau d’administration web.

Dans un navigateur :

http://IP_DE_LA_CAMERA

ou

https://IP_DE_LA_CAMERA

Vous verrez souvent :

  • page de login
  • interface de configuration
  • visualisation du flux

Dans un pentest on vérifie :

  • mots de passe par défaut
  • authentification faible
  • vulnérabilités connues du firmware

Tester le flux vidéo (RTSP)

Beaucoup de caméras diffusent un flux RTSP. On peut tester avec VLC media player.

Dans VLC :

Media → Open Network Stream

Puis :

rtsp://IP_DE_LA_CAMERA:554/stream

Les chemins varient selon les marques.

Tester le protocole ONVIF

Certaines caméras utilisent ONVIF pour la gestion.

Outils utilisés :

  • ONVIF Device Manager
  • scripts Python ONVIF

Cela permet de voir :

  • configuration
  • flux vidéo
  • paramètres réseau

Tests de sécurité typiques

Dans un pentest, on vérifie par exemple :

  • identifiants admin / admin
  • firmware vulnérable
  • accès anonyme
  • flux RTSP non protégé
  • API exposée

Pour résumé le workflow :

  1. scanner l’IP (Nmap)
  2. accéder à l’interface web
  3. tester le flux RTSP
  4. vérifier l’authentification
  5. analyser les vulnérabilités

Télécharger les résultats d’une recherche

Lorsque vous effectuez une recherche, vous pouvez également télécharger les résultats. Commande :

shodan download serveurs_apache "apache country:FR"

Cela crée un fichier contenant les résultats.

Ensuite :

shodan parse serveurs_apache.json.gz

Vous pourrez analyser les données localement.

C’est très utile pour :

  • analyser des milliers de machines
  • filtrer les résultats
  • créer des rapports

À quoi servent ces informations ?

Vous vous demandez peut-être :

Très bien, mais que faire de ces données ?

Les usages sont nombreux.

Audit de sécurité

Une entreprise peut vérifier si :

  • un serveur est exposé
  • un port sensible est ouvert
  • un logiciel obsolète est accessible

Recherche en cybersécurité

Les chercheurs utilisent Shodan pour :

  • détecter des services vulnérables
  • analyser l’évolution des infrastructures
  • identifier des attaques potentielles

OSINT (Open Source Intelligence)

Les analystes OSINT utilisent Shodan pour :

  • identifier des infrastructures
  • analyser des réseaux
  • cartographier des systèmes connectés

Exemple concret : trouver une webcam exposée

Prenons un exemple réel. Vous voulez rechercher des webcams connectées à Internet.

Commande :

shodan search webcam

Shodan peut renvoyer :

IP: 82.x.x.x
Port: 8080
Server: webcamXP
Location: Spain

Ensuite, vous pouvez tester l’accès :

http://82.x.x.x:8080

Dans certains cas, la caméra est accessible publiquement.

Évidemment, l’objectif n’est pas d’espionner les gens, mais de comprendre les problèmes de configuration.

Shodan CLI vs Censys CLI

Shodan n’est pas le seul moteur de recherche d’objets connectés. Un concurrent bien connu est Censys. Les deux outils scannent Internet pour indexer les services exposés.

Cependant, leurs approches sont légèrement différentes.

Shodan est souvent considéré comme plus simple et plus orienté IoT, tandis que Censys est plus technique et plus orienté analyse réseau.

Voici une comparaison rapide.

FonctionShodan CLICensys CLI
Rechercheouioui
Infos IPouioui
Export donnéesouioui
Facilité d’utilisationtrès simpleplus technique
OrientationIoT / OSINTsécurité réseau
Certificats SSLcorrectexcellent

Dans la pratique, les professionnels utilisent souvent les deux outils.

  • Shodan → découverte rapide
  • Censys → analyse technique

Tableau récapitulatif des commandes Shodan CLI

Voici les commandes principales à retenir.

CommandeDescription
shodan init APIKEYconnecter votre compte
shodan search queryeffectuer une recherche
shodan host IPafficher les infos d’une IP
shodan downloadtélécharger des résultats
shodan parseanalyser les résultats
shodan statsstatistiques sur une recherche

En quelques années, Shodan est devenu l’un des outils les plus fascinants du web moderne. Il révèle une réalité souvent invisible : des millions de machines connectées à Internet, parfois mal configurées, parfois vulnérables, et souvent totalement ignorées par leurs propriétaires.

Utiliser Shodan CLI depuis le terminal permet de franchir un cap. Vous ne vous contentez plus de consulter une interface web : vous interrogez directement l’immense base de données de Shodan, vous automatisez vos recherches et vous analysez les infrastructures du monde entier avec quelques lignes de commande.

Mais comme tout outil puissant, Shodan demande aussi une utilisation responsable. L’objectif n’est pas d’exploiter des failles, mais de mieux comprendre Internet et d’améliorer la sécurité des systèmes. Et à mesure que vous explorerez ses possibilités, vous réaliserez probablement une chose : derrière chaque adresse IP se cache une histoire technique… parfois brillante, parfois surprenante, et parfois un peu inquiétante.