Nikto – scanner de vulnerabilidades de servidores web GPL

Nikto es un scanner de vulnerabilidades de servidores web licenciado bajo la licencia GPL que permite obtener un informe detallado sobre un sitio web para poder evitar posibles ataques.

Una de las ventajas de Nikto es la posibilidad de actualizarlo periódicamente con esto aumentamos la cantidad de ataques mas comunes a un sitio web.

Las categorías de búsqueda de de fallas que busca nuestro escáner es el siguiente:

• Problemas de configuración. Busca fallos en la configuración del servidor
• Archivos y scripts por defecto. Detecta problemas en los programas que los servidores implementan por defecto.
• Archivos y scripts inseguros. Analiza el servidor web en busca de funcionalidades inseguras.
• Versiones desactualizadas de software. Permite detectar problemas y nos alerta de si alguna actualización del sistema debe ser instalada para evitar dejar abiertos nuevos agujeros.

Nikto es capaz de trabajar sobre 3200 archivos/CGIs potencialmente peligrosos,  625 versiones de servidores, y 230 problemas específicos de éstos. Los CGI (Common Gateway Interface) son programas o scripts que permiten dar dinamismo a las aplicaciones Web. Ésta es la razón por la cual existen agujeros de seguridad ya sea por un código mal implementado, instalaciones realizadas en forma predeterminada o por versiones posteriores en nuestros programas entre otros.

Utilización

La utilización de Nikto es muy sencilla. Tan sólo hay que tener instalado un intérprete de Perl en el sistema que entienda las órdenes que se realicen.

Para empezar a utilizar la aplicación se teclea:

nikto [-h destino] [opciones]

donde –h indica el destino del escaneo y donde opciones es una larga lista en la que se destacan las siguientes:

Parámetros de nikto:

PARAMETRO  DESCRIPCIÓN
 Cgidirs  Permite indicar qué directorios de cgis se van a escanear, por ejemplo, ‘none’ indica que ninguno, ‘all’ todos y un valor concreto como /cgi/ indica que sólo se escaneará dicho directorio.
 evasion  Permite activar la evasión de detección de intrusos de acuerdo a varias opciones extra, como son por ejemplo, la finalización prematura de URL’s, tabulador como el espacio requerido en vez del espacio normal, etc… Así estamos detectando posibles modos de ocultar la identificación de servidores.
 findonly  Utiliza el escaneo de puertos para encontrar puertos válidos de http o https, pero no hace ninguna comprobación contra ellos.
 format  Esta opción se usa conjuntamente con la opción output, y lo que hace es aplicar al archivo de salida (que se crea al usar output) el formato HTML, TXT o CSV
 host  Establece el host o los hosts a los que se le realiza el escaneo. Se pueden utilizar nombres, ficheros o Ip’s. Cargar un fichero es muy útil cuando queremos escanear una serie de muchos servidores y así no tenemos que escribirlos a mano.
 id  Utiliza de autentificación http para autorizar a Nikto en un servidor. El formato es userid:password
 output  Genera un fichero de informe en el formato que la opción –format indique. Si no está especificado con –format, el formato de salida es en TXT.
 port  Permite establecer el puerto que quiere escuchar. Si no se especifica ninguno se utiliza el puerto 80. También puede suministrar una listado de puertos.
 ssl  Fuerza a que el modo sea SSL en los puertos que listamos.
 timeout  Permite asignar un tiempo de espera personalizado por defecto es 10 segundos.
 useproxy  Utiliza la configuración del Proxy que aparezca en el fichero config.txt para realizar el escaneo.
 dbcheck  Esta opción chequeará la sintaxis de las comprobaciones que se alojan en el fichero scan_database.db, lo cual es muy recomendable y útil cuando dichas comprobaciones han sido hechas a mano por el usuario, con la consiguiente personalización que conlleva.
debug  Esta opción proporciona información detallada durante el escaneo. La información suministrada en ocasiones es demasiada y es más recomendable probar con la opción –verbose.
update  Esta opción se utiliza cuando necesite actualizar la base de datos. Nikto se conecta con Cirt.net y descarga el fichero actualizado de scan_database.db y los plugins nuevos que hayan aparecido.
verbose  Muestra en pantalla las acciones que realiza Nikto

 

 Ejemplos

A continuación se muestran algunos ejemplos para comprender mejor el funcionamiento de Nikto:

• Escaneo básico al servidor del host local: nikto.pl -h 127.0.0.1

• Un escaneo básico de un servidor web en el puerto 443, con encriptación SSL e ignorando la cabecera del servidor. Nikto no asume que el puerto 443 es SSL, pero si http falla, la aplicación intentará hacerlo mediante HTTPS:
nikto.pl -h 10.100.100.10 -p 443 –s

• Escaneo múltiple de puertos en el servidor permitiendo a Nikto determinar si estamos ante encriptación HTTP y SSL.
nikto.pl -h 10.100.100.10 -p 80-90

:: Link