573 tutoriels en ligne

Créa-blog

#100JoursPourCoder
Projet Créa-code

Ressources pour développeur web

Théme de la semaine : Le Frontend

NikTo, Analyse de serveur web : L’outil pentest pour débuter

Temps de lecture estimé : 9 minutes
Accueil Sécurité NikTo, Analyse de serveur web : L’outil pentest pour débuter

Quand on commence à s’intéresser à la sécurité web et au pentesting, on se sent souvent un peu perdu. Les failles, les attaques, les audits… tout cela peut vite paraître réservé aux experts ou aux films de hackers un peu caricaturaux. Pourtant, il existe des outils simples, accessibles et très pédagogiques pour faire ses premiers pas. NikTo fait partie de ces outils.

  • Comprendre comment fonctionne NikTo et pourquoi cet outil en ligne de commande est utile pour repérer les faiblesses visibles d’un serveur web, même sans connaissances avancées en sécurité.
  • Apprendre à installer et utiliser NikTo avec des exemples concrets de commandes et gagner en autonomie lors des premiers audits de sites ou d’applications web.
  • Savoir lire et interpréter les résultats d’un scan pour identifier les points à surveiller, éviter les erreurs courantes et adopter de meilleures pratiques de sécurité au quotidien.

NikTo ne promet pas de magie, mais il aide à comprendre concrètement comment un serveur web peut être mal configuré ou exposé. Et surtout, il le fait en ligne de commande donc depuis le terminal, ce qui peut impressionner au début.

Dans ce guide, vous allez découvrir NikTo pas à pas. L’objectif n’est pas de vous transformer en expert en cybersécurité, mais de vous donner des bases solides et utiles pour mieux comprendre ce qui se passe « sous le capot » d’un site web.

Qu’est-ce que NikTo exactement ?

NikTo est un outil en ligne de commande, aussi appelé outil CLI, spécialisé dans l’analyse de serveurs web. Son rôle principal est de scanner un site ou une application web afin de détecter des failles de sécurité connues, des configurations risquées ou des fichiers sensibles accessibles publiquement.

Concrètement, NikTo va envoyer une grande quantité de requêtes HTTP vers un serveur. Il compare ensuite les réponses obtenues avec une base de données de vulnérabilités connues. Si quelque chose d’anormal est détecté, il vous le signale clairement.

Il est important de comprendre une chose dès le départ. NikTo ne pirate rien. Il n’exploite pas les failles. Il se contente de les identifier. C’est un outil d’audit, pas d’attaque. Cette nuance est essentielle, surtout lorsque l’on débute.

Il est souvent utilisé par des administrateurs système, des développeurs web ou des pentesters pour effectuer un premier diagnostic de sécurité. Il permet de répondre à une question simple mais cruciale : « Est-ce que mon serveur expose des problèmes évidents ? »

À quoi sert NikTo dans la pratique ?

NikTo sert avant tout à gagner du temps. Scanner manuellement un serveur web pour repérer des fichiers oubliés, des versions obsolètes ou des erreurs de configuration serait long et fastidieux. NikTo automatise ce travail.

Il peut par exemple détecter la présence de fichiers sensibles comme des pages d’administration non protégées, des scripts de test laissés en production ou des fichiers de configuration accessibles publiquement. Il peut aussi identifier la version du serveur web et vérifier si elle contient des failles connues.

Pour un débutant, C’est un excellent outil pédagogique. Chaque alerte affichée est une occasion d’apprendre. Pourquoi ce fichier est dangereux ? Pourquoi cette configuration pose problème ? On ne se contente pas d’un verdict, on découvre le raisonnement derrière.

La première fois que j’ai lancé NikTo sur un site de test personnel, j’étais persuadé qu’il ne trouverait rien. Résultat : plusieurs alertes liées à une mauvaise configuration Apache. Rien de critique, mais suffisamment pour me rappeler qu’en sécurité, l’ignorance est souvent le vrai problème.

Comprendre le fonctionnement de NikTo

NikTo fonctionne à partir de signatures. Il dispose d’une base de données interne contenant des milliers de tests. Chaque test correspond à une vulnérabilité connue, un fichier sensible ou un comportement suspect.

Lorsqu’on lance un scan, NikTo va tester ces signatures une par une. Il envoie des requêtes spécifiques au serveur cible et analyse les réponses HTTP. En fonction du code retour, du contenu ou des en-têtes, il détermine s’il y a un risque.

Il ne s’agit donc pas d’une analyse intelligente basée sur l’intelligence artificielle, mais d’un outil méthodique et rigoureux. Cette approche a un avantage majeur : les résultats sont explicables et reproductibles.

NikTo est écrit en Perl, ce qui explique sa présence sur les systèmes Linux et macOS. Il est également très souvent préinstallé sur des distributions orientées sécurité.

Installer NikTo pas à pas

Avant d’installer NikTo, il faut vérifier quelques points simples. Vous avez besoin d’un terminal, d’un accès internet et d’un système compatible. NikTo fonctionne très bien sous Linux et macOS. Sous Windows, l’installation est possible mais un peu moins confortable pour un débutant.

NikTo nécessite Perl pour fonctionner. Sur la majorité des systèmes modernes, Perl est déjà installé par défaut. Vous pouvez le vérifier avec la commande suivante :

perl -v

Si une version s’affiche, vous êtes prêt à continuer.

Installation avec Homebrew sur macOS

Si vous êtes sur macOS, Homebrew est de loin la solution la plus simple. Homebrew est un gestionnaire de paquets qui permet d’installer des outils en une seule commande.

Si Homebrew n’est pas encore installé, la commande officielle est la suivante :

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Une fois Homebrew en place, l’installation de NikTo se fait en une ligne :

brew install nikto

Homebrew se charge de tout. Il télécharge NikTo, gère les dépendances et place l’outil au bon endroit sur votre système.

Pour vérifier que l’installation a réussi, tapez simplement :

nikto -Version

Si une version s’affiche, c’est que tout fonctionne correctement.

Installation manuelle sous Linux

Sous Linux, NikTo est disponible via le gestionnaire de paquets de votre distribution. Par exemple, sous Debian ou Ubuntu :

sudo apt update
sudo apt install nikto

Là encore, une simple commande permet de vérifier l’installation :

nikto -h

Cette commande affiche l’aide intégrée de NikTo, ce qui est souvent le premier réflexe à avoir avec un outil CLI.

Premiers pas avec NikTo

Une fois NikTo installé, la tentation est grande de lancer un scan immédiatement. Pourtant, il est important de rappeler une règle essentielle. Vous ne devez scanner que des sites qui vous appartiennent ou pour lesquels vous avez une autorisation explicite.

Pour lancer un scan simple, la commande de base ressemble à ceci :

nikto -h https://exemple.com

L’option -h permet de définir l’hôte à scanner. NikTo commence alors son analyse et affiche progressivement les résultats dans le terminal.

Chaque ligne affichée correspond à un test ou à une alerte. Certaines sont informatives, d’autres signalent de réels problèmes potentiels. Prenez le temps de lire, même si tout ne vous paraît pas clair au début.

Comprendre et interpréter les résultats d’un scan NikTo

Lorsque NikTo termine un scan, il affiche une série de messages parfois impressionnants pour un débutant. C’est souvent à ce moment précis que l’on se demande si l’on a fait quelque chose de grave ou si le serveur est réellement en danger. Rassurez-vous, la majorité des informations affichées sont là pour vous alerter, pas pour vous paniquer.

Chaque ligne suit généralement la même logique. NikTo indique d’abord ce qu’il a détecté, puis explique brièvement pourquoi cela peut poser problème. Par exemple, il peut signaler qu’un fichier spécifique est accessible publiquement ou que le serveur divulgue sa version exacte dans les en-têtes HTTP.

Il est important de comprendre que toutes les alertes n’ont pas le même niveau de gravité. Certaines sont simplement informatives, comme la détection du type de serveur web. D’autres, en revanche, méritent clairement votre attention, notamment celles liées à des fichiers sensibles ou à des versions logicielles obsolètes.

Prenez l’habitude de lire calmement chaque message. Même si vous ne comprenez pas tout immédiatement, NikTo vous donne souvent suffisamment d’indices pour faire des recherches ciblées et progresser.

Exemple de test : le Créa-blog

Résultat d'analyse avec nikto

Cible analysée :

1. Informations générales

Le scan Nikto a identifié plusieurs adresses IP associées au nom de domaine, ce qui indique une infrastructure compatible IPv4 et IPv6. Le serveur cible répond correctement sur le port HTTPS avec un certificat SSL valide.

2. Sécurité SSL / TLS

Le site utilise un certificat wildcard *.crea-troyes.fr délivré par Sectigo, autorité de certification reconnue. Le chiffrement employé (ECDHE-RSA-AES128-GCM-SHA256) est moderne et sécurisé.

Aucune vulnérabilité SSL critique n’a été détectée. ouf !

3. Serveur web et technologies

Le serveur web principal est identifié comme Apache, avec une variation temporaire de la bannière serveur indiquant nginx, ce qui peut correspondre à :

  • un reverse proxy,
  • un système de cache,
  • ou une protection applicative en amont.

La présence de l’en-tête x-redirect-by: WordPress confirme que le site repose sur WordPress, ce qui est cohérent avec sa nature.

4. En-têtes HTTP observés

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 ?

Les en-têtes suivants ont été détectés :

  • x-ws-ratelimit-limit
  • x-ws-ratelimit-remaining

Ces en-têtes indiquent la présence d’un mécanisme de limitation de requêtes, ce qui constitue une bonne pratique de sécurité contre les abus et attaques automatisées.

5. Point de vigilance identifié

Nikto signale l’absence de l’en-tête HTTP suivant :

X-Content-Type-Options

Cette absence peut théoriquement permettre à certains navigateurs d’interpréter le type MIME d’un fichier différemment de celui prévu, exposant le site à un risque de MIME sniffing.

  • Niveau de gravité : faible à modéré
  • Correctif simple recommandé

Dans ma situation, il s’agit d’un faux positif. Tout est déjà en place pour assurer la sécurité. Imaginons que ce ne soit pas le cas … Par conséquent et en réponse à cet audit, je vais donc appliquer une solution pour Apache . Dans le .htaccess à la racine de mon WordPress :

<IfModule mod_headers.c>
    Header always set X-Content-Type-Options "nosniff"
</IfModule>

Ces lignes permettront de :

  • Bloquer le MIME sniffing
  • Supprimer l’alerte Nikto
  • Améliorer le score sécurité global

6. Autres observations

  • Aucun répertoire CGI sensible n’a été trouvé.
  • Le fichier robots.txt est présent et contient plusieurs entrées, ce qui est normal et doit être vérifié manuellement.
  • Le serveur utilise la compression deflate, ce qui peut théoriquement exposer à l’attaque BREACH, bien que ce risque soit aujourd’hui largement contextuel et non critique sans données sensibles compressées.

7. Erreurs rencontrées pendant le scan

Le scan a été interrompu après avoir atteint la limite d’erreurs SSL, probablement due à :

  • des protections anti-scan,
  • un rate limiting actif,
  • ou un système de défense applicative.

Cela confirme la présence de mécanismes de protection actifs, ce qui est un point positif.

En conclusion, le scan n’a révélé aucune vulnérabilité critique sur le site blog.crea-troyes.fr.

Le site présente :

  • une configuration SSL solide,
  • des mécanismes de protection contre les abus,
  • une exposition WordPress normale et attendue.

Seule amélioration recommandée :

  • l’ajout de l’en-tête X-Content-Type-Options afin de renforcer la sécurité HTTP globale.

Dans l’ensemble, la surface d’attaque est faible et la configuration est conforme aux bonnes pratiques courantes. Et c’est une bonne nouvelle !

Les options essentielles pour aller plus loin

NikTo devient vraiment intéressant lorsque vous commencez à utiliser ses options. Elles permettent de mieux contrôler les scans, d’éviter certaines limitations et d’obtenir des résultats plus exploitables.

Par exemple, si vous souhaitez scanner un serveur sur un port spécifique, vous pouvez utiliser l’option -p :

nikto -h https://exemple.com -p 8080

Cela est particulièrement utile lorsque votre application web ne tourne pas sur le port standard 80 ou 443.

Autre option très pratique, -o, qui permet d’exporter les résultats dans un fichier. Cela évite de perdre les informations une fois le terminal fermé :

nikto -h https://exemple.com -o rapport_nikto.txt

Vous pouvez ensuite relire ce rapport tranquillement ou le partager avec un collègue.

NikTo permet aussi de définir le format de sortie, notamment en HTML, ce qui peut être utile pour un rapport plus lisible :

nikto -h https://exemple.com -o rapport.html -Format html

Scanner sans se faire bloquer trop rapidement

Un point souvent ignoré par les débutants concerne la vitesse des scans. NikTo envoie beaucoup de requêtes, ce qui peut déclencher des protections automatiques sur certains serveurs.

Pour éviter cela, vous pouvez ralentir volontairement le scan grâce à l’option -Tuning ou en limitant certains tests. Cela permet d’obtenir des résultats plus stables, surtout sur des serveurs sensibles.

Un exemple simple consiste à exclure certains types de tests pour se concentrer uniquement sur l’essentiel :

nikto -h https://exemple.com -Tuning x

Cette approche est idéale lorsque vous débutez et que vous souhaitez comprendre les résultats sans être noyé sous trop d’informations.

Utiliser NikTo avec Tor pour renforcer l’anonymat

Dans certains contextes pédagogiques ou de recherche, il peut être utile de lancer NikTo sans exposer directement votre adresse IP. L’idée n’est pas de « se cacher pour mal faire », mais de comprendre comment fonctionnent les couches d’anonymisation et les limites de ce type d’approche. Tor agit ici comme un intermédiaire : votre trafic passe par plusieurs relais avant d’atteindre le serveur cible, ce qui rend votre origine beaucoup plus difficile à identifier.

Techniquement, il ne sait pas utiliser Tor tout seul. On va simplement lui demander de passer par le proxy SOCKS fourni par Tor. Une fois Tor lancé sur votre machine (le service doit être actif), NikTo enverra ses requêtes HTTP à travers ce proxy, exactement comme le ferait un navigateur configuré avec Tor.

La commande de base ressemble à ceci :

nikto -h https://exemple.com -useproxy socks5://127.0.0.1:9050

Ici, 127.0.0.1:9050 correspond au proxy SOCKS de Tor par défaut. Gardez en tête que les scans seront plus lents et que certains résultats peuvent être incomplets. C’est le prix à payer pour l’anonymat, et c’est aussi une bonne leçon : en sécurité comme ailleurs, chaque choix technique implique des compromis.

Exemples concrets d’utilisation de NikTo

Prenons un cas simple et réaliste. Vous avez créé un site web personnel et vous souhaitez vérifier qu’aucun fichier sensible n’est exposé.

Vous lancez la commande suivante :

nikto -h https://monsite-test.fr

NikTo vous signale la présence d’un fichier phpinfo.php. Cette information est précieuse, car ce type de fichier affiche des détails internes sur la configuration du serveur. Même s’il n’est pas dangereux en soi, il ne devrait jamais être accessible en production.

Dans un autre scénario, il peut indiquer que le serveur utilise une version ancienne d’Apache. Cela ne signifie pas automatiquement qu’il est vulnérable, mais cela vous invite à vérifier les mises à jour de sécurité disponibles.

Ces exemples montrent bien l’intérêt de NikTo. Il ne donne pas de verdict définitif, mais il attire votre attention sur des points précis à vérifier.

Les limites de NikTo à connaître

NikTo est un excellent outil, mais il ne fait pas tout. Il ne détecte pas les failles logiques d’une application, ni les vulnérabilités liées au code métier. Il ne remplace pas un audit de sécurité complet.

Il peut aussi générer des faux positifs. Cela signifie qu’il signale parfois un problème qui n’en est pas réellement un. C’est pourquoi il est essentiel de toujours analyser les résultats avec du recul.

Enfin, NikTo n’est pas discret. Il est facilement détectable par les systèmes de sécurité modernes. Il doit donc être utilisé dans un cadre contrôlé, jamais sur des cibles non autorisées.

Tableau récapitulatif des commandes et fonctionnalités de NikTo

Commande ou optionDescription
nikto -hDéfinit l’hôte ou le site web à scanner
-pSpécifie le port à analyser
-oExporte les résultats dans un fichier
-FormatDéfinit le format de sortie du rapport
-VersionAffiche la version de NikTo
-TuningPermet de filtrer ou limiter certains tests
-h helpAffiche l’aide complète de l’outil

Ce tableau peut servir de pense-bête lorsque vous commencez à utiliser NikTo régulièrement.

Bonnes pratiques avant d’utiliser NikTo

Avant chaque scan, posez-vous toujours la même question : ai-je le droit de tester ce serveur ? Cette règle est fondamentale, même pour un outil d’audit comme celui-ci.

Travaillez de préférence sur des environnements de test ou de développement. Cela vous permettra d’expérimenter librement sans risquer de perturber un site en production.

Enfin, gardez à l’esprit que NikTo est un point de départ. Il ouvre la porte à une réflexion plus large sur la sécurité web et les bonnes pratiques de configuration.


NikTo est un outil à la fois simple et puissant. Il ne cherche pas à impressionner par des effets spectaculaires, mais à fournir des informations concrètes et utiles. Pour un débutant, c’est une excellente porte d’entrée dans le monde de la sécurité web.

En prenant le temps de comprendre ses résultats et ses limites, vous développez un regard plus critique sur vos propres projets. Vous commencez à voir un site web non plus seulement comme une interface, mais comme un ensemble de composants qui doivent être protégés.

Au final, utiliser NikTo, ce n’est pas seulement scanner un serveur. C’est adopter une démarche. Une façon de penser la sécurité dès la conception, avec curiosité, méthode et un brin d’humilité. Et c’est souvent là que commence le vrai apprentissage.