Scannez votre serveur web à la recherche de vulnérabilités, d’une mauvaise configuration GRATUITEMENT avec Nikto scanner

97% des applications testées par Trustwave présentent une ou plusieurs faiblesses.

trustwave-vulnerable-applications

Et 14 % des intrusions étudiées étaient dues à une mauvaise configuration. Une mauvaise configuration peut entraîner des risques graves.

trustwave-factors

Il existe un certain nombre de scanners de vulnérabilité en ligne pour tester vos applications web sur l’internet. Toutefois, si vous souhaitez tester des applications intranet ou des applications internes, vous pouvez utiliser le scanner web Nikto.

Nikto est un scanner open-source et vous pouvez l’utiliser avec n’importe quel serveur web (Apache, Nginx, IHS, OHS, Litespeed, etc.). Il s’agit donc d’un outil interne parfait pour l’analyse des serveurs web. Il est capable d’analyser plus de 6700 éléments pour détecter les erreurs de configuration, les fichiers à risque, etc. et certaines de ses fonctionnalités incluent ;

  • Vous pouvez enregistrer le rapport en HTML, XML, CSV
  • Il prend en charge SSL
  • Analyse de plusieurs ports sur le serveur
  • Recherche de sous-domaines
  • Énumération des utilisateurs d’Apache
  • Vérifie la présence de composants obsolètes
  • Détecte les sites de parking

Commençons par l’installation et l’utilisation de cet outil.

Il y a plusieurs façons d’utiliser Nikto.

  • Utilisation de Kali Linux
  • Conteneur Docker
  • Utilisez le binaire sur une distribution basée sur UNIX ou Windows.

Remarque : l’exécution de l’analyse génère de nombreuses requêtes sur votre serveur web. Vous reconnaissez le risque et n’effectuez le scan que sur vos serveurs.

Utiliser Nikto sur Kali Linux

Puisqu’il est intégré à Kali, vous n’avez pas besoin d’installer quoi que ce soit.

  • Connectez-vous à Kali Linux
  • Allez dans Applications >> Analyse de vulnérabilité et cliquez sur nikto

kali-linux-nitko

Cela ouvrira le terminal où vous pourrez lancer l’analyse de votre serveur web. Il y a plusieurs syntaxes que vous pouvez utiliser pour lancer le scan. Cependant, la méthode la plus rapide est la suivante.

# nikto -h $webserverurl

N’oubliez pas de remplacer $webserverurl par l’IP ou le FQDN de votre serveur web.

root@Chandan:~# nikto -h thewebchecker.com
- Nikto v2.1.6
---------------------------------------------------------------------------
  IP cible : 128.199.222.244
  Nom d'hôte cible : thewebchecker.com
  Port cible : 80
  Heure de début : 2016-08-22 06:33:13 (GMT8)
---------------------------------------------------------------------------
  Serveur : Apache/2.4.18 (Ubuntu)
  Server leaks inodes via ETags, header found with file /, fields : 0x2c39 0x53a938fc104ed
  L'en-tête X-Frame-Options anti-clickjacking n'est pas présent.
  L'en-tête X-XSS-Protection n'est pas défini. Cet en-tête peut indiquer à l'agent utilisateur de se protéger contre certaines formes de XSS
  L'en-tête X-Content-Type-Options n'est pas défini. Cela pourrait permettre à l'agent utilisateur de rendre le contenu du site d'une manière différente du type MIME
  Aucun répertoire CGI n'a été trouvé (utilisez '-C all' pour forcer la vérification de tous les répertoires possibles)
  Méthodes HTTP autorisées : GET, HEAD, POST, OPTIONS
  En-tête peu commun 'x-ob_mode' trouvé, avec contenu : 1
  OSVDB-3092 : /manual/ : Manuel du serveur web trouvé.
  OSVDB-3268 : /manual/images/ : Indexation du répertoire trouvée.
  OSVDB-3233 : /icons/README : Fichier Apache par défaut trouvé.
  /phpmyadmin/ : Répertoire phpMyAdmin trouvé
  7596 requêtes : 0 erreur(s) et 10 élément(s) rapporté(s) sur l'hôte distant
  Heure de fin : 2016-08-22 06:54:44 (GMT8) (1291 secondes)
---------------------------------------------------------------------------
  1 hôte(s) testé(s)

Comme vous pouvez le voir, l’analyse ci-dessus est basée sur la configuration par défaut d’Apache 2.4, et il y a beaucoup d’éléments qui nécessitent une attention particulière.

Vous pouvez vous référer à mon Guide de sécurité et de durcissement d’Apache pour corriger ces problèmes.

Utiliser Nikto sur CentOS

  • Connectez-vous à CentOS ou à tout autre système d’exploitation basé sur Linux
  • Téléchargez la dernière version de Github en utilisant wget
wget https://github.com/sullo/nikto/archive/master.zip .
  • Extrayez-la à l’aide de la commande unzip
décompresser master.zip
  • Un nouveau dossier appelé “nikto-master” sera créé
  • Allez dans le dossier nikto-master > program
cd nikto-master/programme
  • Exécutez nikto.pl avec le domaine cible

Une fois installé, exécutez nikto et tout devrait bien se passer. Cette fois, je vais lancer un scan contre le serveur web Nginx pour voir comment il se comporte.

./nikto.pl -h $IPADDRESS
[root@lab program]# ./nikto.pl -h XX.XX.137.171
- Nikto v2.1.6
---------------------------------------------------------------------------
  IP cible : XX.XX.137.171
  Nom d'hôte cible : XX.XX.137.171
  Port cible : 80
  Heure de début : 2020-06-07 07:39:40 (GMT0)
---------------------------------------------------------------------------
  Serveur : nginx/1.14.1
  L'en-tête X-Frame-Options anti-clickjacking n'est pas présent.
  L'en-tête X-XSS-Protection n'est pas défini. Cet en-tête peut indiquer à l'agent utilisateur de se protéger contre certaines formes de XSS
  L'en-tête X-Content-Type-Options n'est pas défini. Cela pourrait permettre à l'agent utilisateur de rendre le contenu du site d'une manière différente du type MIME
  Aucun répertoire CGI n'a été trouvé (utilisez '-C all' pour forcer la vérification de tous les répertoires possibles)
  /httpd.conf : Fichier de configuration Apache httpd.conf
  /httpd.conf.bak : Fichier de configuration d'Apache httpd.conf
  8075 requêtes : 0 erreur(s) et 5 élément(s) rapporté(s) sur l'hôte distant
  Heure de fin : 2020-06-07 07:39:50 (GMT0) (10 secondes)
---------------------------------------------------------------------------
  1 hôte(s) testé(s)
[root@lab program]#

Ainsi, comme vous pouvez le voir, Nginx par défaut, la configuration du serveur web est également vulnérable et ce guide de sécurité vous aidera à les atténuer.

Résolution des problèmes

Il se peut que vous rencontriez l’erreur suivante lorsque vous utilisez CentOS. Si c’est le cas, vous pouvez résoudre le problème comme expliqué ci-dessous.

ERREUR -1

 WARNING : Module JSON::PP manquant. -Les fonctionnalités Savedir et replay ne peuvent pas être utilisées.

OU

ERREUR : Le module requis n'a pas été trouvé : Getopt::Long
ERROR : Le module requis n'a pas été trouvé : Time::Local
ERROR : Le module requis n'a pas été trouvé : Time::HiRes qw(sleep ualarm gettimeofday tv_interval)

Si vous obtenez l’avertissement ci-dessus, vous devez installer le module Perl en procédant comme suit.

# yum install perl-CPAN*

ou en utilisant DNF si vous utilisez CentOS 8

# dnf install perl-CPAN*

ERREUR – 2

perl : warning : La définition de la locale a échoué.

Pour cela, vous devez exporter la locale sur le terminal comme expliqué ici.

export LC_CTYPE=fr_US.UTF-8
export LC_ALL=fr_US.UTF-8

ERREUR – 3

Impossible de localiser bignum.pm dans @INC (vous devez peut-être installer le module bignum)

Vous devez installer le module Perl bignum.

# yum install perl-bignum

ou en utilisant DNF sous CentOS 8

# dnf install perl-bignum

Conclusion

Allez-y et jouez avec le logiciel Nikto et si vous souhaitez en savoir plus, consultez ce cours sur le piratage et les tests de pénétration.