
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.
Índice
¿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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:

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

¿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.
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

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.

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


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:

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

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

Ponemos las credenciales y tenemos esta aplicación web:

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.

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:

Entramos en el directorio /files

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

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.