Nikto

Introduction

Nikto est un scanner de vulnérabilité web Open Source (GPL) qui effectue des tests complets contre les serveurs Web. Il teste plus de 3500 fichiers potentiellement dangereux / CGI. Nikto n’est pas conçu comme un outil trop furtif. Il permet de tester un serveur web rapidement mais il est facilement repérable dans les logs. Il peut quand même être bien utile pour tester la sécurité de son serveur web.

Avantages

  • Rapidité des tests.
  • Nombre de failles testées.
  • Informations exhaustives.

Inconvénients

  • Piètre furtivité. Son but premier est la rapidité, si vous voulez faire votre vilain sur un site ne vous appartenant pas, je doute que cela soit l’outil que vous devriez choisir ! En revanche Nikto intègre la possibilité d’utiliser un proxy…
  • Aisément repérable dans les logs. Encore une fois, il est préférable de n’utiliser Nikto que sur un serveur que vous possédez ou dont la personne est consentante… Et encore une fois, il y a toujours moyen outre ces petits désagréments (proxy, IDS evasion,…)
  • Génération non-négligeable de faux-positifs…

Utilisation de Nikto

Commençons par l’installation de Nikto, pour cela 3 contextes possibles :

  • Vous êtes sur un Linux classique.

–> Télécharger la dernière version de Nikto (2.1.1 actuellement)

–> L’extraire : #tar -xvzf nikto-current.tar.gz

–> Se rendre dans le répertoire de Nikto : #cd nikto-current

–> L’utilisation se fait en utilisant la commande ./nikto.pl avec ses paramètres derrière.

  • Vous êtes sur Backtrack.

–> Nikto fait bien entendu partie des outils intégré à BackTrack (je prend l’exemple de BackTrack 4 en tout cas).

–> Il se situe dans /pentest/scanners/nikto   (Nikto2  est intégré a BackTrack, mais je ne sais plus si le répertoire se nomme nikto ou nikto, à vérifier puis j’éditerais…!).

–> L’utilisation se fait en utilisant la commande ./nikto.pl avec ses paramètres derrière.

  • Vous êtes sur Zindow$ (boo c’est mal).

–> Récupérer l’archive de Nikto comme les autres.

–> Installer ActivePerl

–> Utiliser le script Nikto.pl dans une console DOS.

Update de la base de vulnérabilités

./nikto.pl -update

Tests de base

Scan basique d’un site (par défaut sur le port 80)
./nikto.pl -h <host_a_scanner>

./nikto.pl -h www.ex0dus.fr

./nikto.pl -h 192.168.0.1

Scan sur un port spécifique
./nikto.pl -h <host_a_scanner> -p 8080
A noter que pour scanner un serveur en SSL, nikto va tout d’abord tester HTTP (80) et s’il n’y arrive pas il va partir automatiquement sur HTTPS (443) donc pas besoin de le spécifier, sauf si vous êtes certains que le serveur est en SSL, dans ce cas le scan sera plus rapide, vous pouvez d’ailleurs rajouter l’option -s (-ssl).

Scan multi-ports
./nikto.pl -h <host_a_scanner> -p 20,21,25,443
Utilisation d’un proxy
./nikto.pl -h <host_a_scanner> -p 80 -useproxy
Il faudra cependant éditer le fichier nikto.conf (linux normal) ou config.txt (backtrack) et renseigner les variables suivantes :
#########################################################################################################
# PROXY STUFF
#########################################################################################################
#PROXYHOST=127.0.0.1 //@IP du proxy
#PROXYPORT=8080 //port
#PROXYUSER=proxyuserid //user (si besoin)
#PROXYPASS=proxypassword //password (si besoin)

Exemple concret avec scan d’evasion (-e 1) et récupération des logs dans un fichier texte (-Format txt -output) :
./nikto.pl -e 1 -host http://192.168.0.1/joomla12 -F txt -o my_output_file.txt
---------------------------------------------------------------------------
- Nikto 2.01/2.01 - cirt.net
+ Target IP: 192.168.1.44
+ Target Hostname: joomla12
+ Target Port: 80
+ Using IDS Evasion: Random URI encoding (non-UTF8)
+ Start Time: 2008-09-16 10:26:17
---------------------------------------------------------------------------
+ Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8+etch10 mod_perl/2.0.2 Perl/v5.8.8
+ No CGI Directories found (use '-C all' to force check all possible dirs)
- Root page / redirects to: hxxp://joomla12/apache2-default/
- Retrieved X-Powered-By header: PHP/5.2.0-8+etch10
+ /robots.txt - contains 13 'disallow' entries which should be manually viewed (added to mutation file lists) (GET).
+ Allowed HTTP Methods: GET, HEAD, POST, OPTIONS, TRACE
+ OSVDB-877: HTTP method ('Allow' Header): 'TRACE' is typically only used for debugging and should be disabled. This message does not mean it is vulnerable to XST.
+ PHP/5.2.0-8+etch10 appears to be outdated (current is at least 5.2.4)
+ Apache/2.2.3 appears to be outdated (current is at least Apache/2.2.6). Apache 1.3.39 and 2.0.61 are also current.
+ mod_python/3.2.10 appears to be outdated (current is at least 3.3.1)
+ PHP/5.2.0-8+etch10 appears to be outdated (current is at least 5.2.4)
+ mod_perl/2.0.2 appears to be outdated (current is at least 5.8.0)
+ OSVDB-0: GET /joomla12/help/ : Help directory should not be accessible
+ OSVDB-0: GET /joomla12/index.php?module=My_eGallery : My_eGallery prior to 3.1.1.g are vulnerable to a remote execution bug via SQL command injection.
+ OSVDB-8193: GET /joomla12/index.php?module=ew_filemanager&type=admin&func=manager&pathext=../../../etc : EW FileManager for PostNuke allows arbitrary file retrieval.
+ OSVDB-12184: GET /joomla12/index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 : PHP reveals potentially sensitive information via certain HTTP requests which contain specific QUERY strings.
+ OSVDB-3092: GET /joomla12/administrator/ : This might be interesting...
+ OSVDB-3092: GET /joomla12/includes/ : This might be interesting...
+ OSVDB-3093: GET /joomla12/index.php?base=test%20 : This might be interesting... has been seen in web logs from an unknown scanner.
+ OSVDB-3093: GET /joomla12/index.php?IDAdmin=test : This might be interesting... has been seen in web logs from an unknown scanner.
+ OSVDB-3093: GET /joomla12/index.php?pymembs=admin : This might be interesting... has been seen in web logs from an unknown scanner.
+ OSVDB-3093: GET /joomla12/index.php?SqlQuery=test%20 : This might be interesting... has been seen in web logs from an unknown scanner.
+ OSVDB-3093: GET /joomla12/index.php?tampon=test%20 : This might be interesting... has been seen in web logs from an unknown scanner.
+ OSVDB-3093: GET /joomla12/index.php?topic=&lt;script&gt;alert(document.cookie)&lt;/script&gt;%20 : This might be interesting... has been seen in web logs from an unknown scanner.
+ OSVDB-3761: GET /joomla12/?pattern=/etc/*&sort=name : The TCLHttpd 3.4.2 server allows directory listings via dirlist.tcl.
+ 2963 items checked: 22 item(s) reported on remote host
+ End Time: 2008-09-16 10:27:08 (51 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Laisser un commentaire