Aprende cómo utilizar Nikto para identificar posibles fallos en tu web

4.5/5 - (2 votos)
nikto

En este artículo encontrarás una guía completa de la herramienta Nikto, con ejemplos prácticos.

El objetivo de este artículo es tener un Manual de Nikto con ejemplos prácticos.

Para hacer un informe de vulnerabilidades en profundidad de una aplicación web debemos usar otras herramientas como OWASP ZAP o BURPSUITE, pero con Nikto vamos a obtener resultados preliminares muy buenos y con muy poco esfuerzo.

Vamos a ver como.

¿Qué es Nikto?

Nikto es una herramienta de escaneo de vulnerabilidades web de código abierto que se utiliza para identificar vulnerabilidades de seguridad en sitios o aplicaciones web.

Características de Nikto

Aquí están algunas de las características clave de Nikto:

  1. Escaneo de vulnerabilidades: Nikto es capaz de escanear una amplia gama de vulnerabilidades comunes en aplicaciones web, incluyendo inyecciones SQL, archivos no asegurados, puertas traseras, vulnerabilidades de servidor y muchos otros.
  2. Interfaz de línea de comandos: Nikto se ejecuta en la línea de comandos y es compatible con varias plataformas, lo que permite una fácil integración con scripts y procesos automatizados.
  3. Configuraciones personalizadas: Nikto puede ser configurado para adaptarse a las necesidades específicas de un usuario, lo que incluye la posibilidad de agregar plugins personalizados, establecer el nivel de riesgo, configurar las reglas de exclusión y muchas otras opciones avanzadas.
  4. Informes detallados: La herramienta es capaz de generar informes detallados que incluyen información sobre las vulnerabilidades encontradas, los sistemas escaneados y los detalles de configuración.
  5. Amplia compatibilidad: Nikto es compatible con una amplia gama de servidores web y plataformas, incluyendo Apache, IIS, Unix y Windows, lo que lo hace útil en una variedad de entornos.
  6. Actualizaciones regulares: La herramienta es actualizada regularmente con nuevas vulnerabilidades y características, lo que asegura que la herramienta siempre esté actualizada y pueda encontrar las últimas vulnerabilidades.

¿Cómo instalar Nikto?

Estos son los comandos a ejecutar en tu máquina Linux:

git clone https://github.com/sullo/nikto
cd nikto/program
git checkout nikto-2.5.0
cd nikto/program
./nikto.pl -h http://www.example.com

Aquí tienes una captura de pantalla del proceso:

Instalación Nikto

¿Como actualizar Nikto?

nikto -update ya no funciona, para actualizar Nikto situate en la carpeta que tiene la aplicación y ejecuta:

git pull

nikto actualizar

¿Cómo usar Nikto?

Escaneo inicial con Nikto

Para poder hacer un test de intrusión, hay que estar autorizado, o que los servidores objeto del scaneo sean propios.

Hacer un test de intrusión de un servidor al que no estamos autorizado o que no sea nuestro puede ser delito.

Atención:
La escusa de que estamos haciendo una prueba de intrusión no es válida, ya que es la misma escusa que usan los cibercriminales al ser atrapados.

sintaxis:

nikto -h sitioautorizado.com

Aquí tienes un ejemplo de ejecución contra un sitio web 192.168.1.1

nikto example

Escaneo con de una aplicación web en un puerto no estandar

Las aplicaciones web corren en el puerto tcp 80 para http y en el tcp 443 para https, pero algunas aplicaciones web están levantadas en puertos no estandar, como por ejemplo tcp 8080, 8081, etc.

Para decir a nikto que analice estos puertos se usa el parámetro -port.

nikto -port

Escaneo de una aplicación web con nikto que requiere autenticación

nikto que es
que es nikto

Almacenar el resultado en un fichero

Es útil almacenar el escaneo realizado por nikto en un fichero, para poder analizarlo detenidamente, o poder compararlo con otras ejecuciones posteriores, para ello se usa el parámetro  -output ficherosalida.txt

Ejemplo:

nikto -output

Ejemplo completo de uso de Nikto

Para mostrar este ejemplo vamos a usar una aplicación web de laboratorio de ciberseguridad en concreto esta de OverTheWire:

https://overthewire.org/wargames/natas/natas2.html

nikto como usar

Resolvemos los niveles 0 y 1 que son muy fáciles y nos proporcionan una contraseña para conectarnos al nivel 2.

nikto como usar

Ponemos las credenciales y tenemos esta aplicación web:

nikto ejemplo

Pulsamos Ctrl-U para ver en el código fuente de la página y como se ven en la imagen del código fuente, vemos las credenciales del nivel 2 pero no nos valen, tenemos que conseguir las del nivel 3 usuario natas3.

nikto como usar

Ahora es cuando usamos nikto contra esta aplicación.

Vamos a nikto con las credenciales del nivel 2 (usuario natas2) para ver que información nos da.

./nikto.pl -h natas2.natas.labs.overthewire.org -id natas2:<contraseña nivel 2 aquí>

Puede que tarde unos minutos, pero tendremos la siguiente salida:

como se usa nikto

Entramos en el directorio /files

como se usa nikto

y vemos que tiene dos ficheros, el fichero users.txt tiene las credenciales del usuario natas3.

como usar nikto

Conclusión

Nikto es una herramienta ideal para un análisis rápido de una aplicación web, nos va a informar ficheros, directorios interesantes a la hora de hacer un test de intrusión y posibles problemas de seguridad de la aplicación web.

Es interesante para un primer análisis inicial rápido, luego para profundizar en el estudio de la seguridad de la aplicación podemos usar otras heramientas más precisas pero que requieren más esfuerzo como OWASP ZAP.