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.
Et 14 % des intrusions étudiées étaient dues à une mauvaise configuration. Une mauvaise configuration peut entraîner des risques graves.
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
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.