El aumento del número de aplicaciones web plantea un importante problema de seguridad, ya que, en algunos casos, no se tiene en cuenta un análisis con un escáner de vulnerabilidades como Nikto para evaluar posibles problemas de vulnerabilidad durante la fase de diseño, desarrollo, configuración y puesta en marcha del servidor o los subdominios.
Como resultado, a menudo acabamos con aplicaciones web vulnerables que los atacantes podrían explotar, poniendo en peligro la información de los usuarios.
Qué es Nikto y para qué sirve
Para solucionar este tipo de problemas, existen escáneres de vulnerabilidades como Nikto que “apuntan” a las aplicaciones web para evaluar su integridad.
Nikto, en concreto, es una herramienta de evaluación de servidores web muy popular y fácil de usar para encontrar rápidamente posibles problemas y vulnerabilidades.
Se trata de un escáner de código abierto (distribuido bajo licencia GPL) que realiza pruebas exhaustivas en servidores web en busca de diversos elementos, entre los que se incluyen más de 6.700 archivos/programas potencialmente peligrosos, comprobaciones de versiones obsoletas en más de 1.250 servidores y problemas específicos de versión en más de 270 servidores.
También comprueba elementos de configuración como la presencia de varios archivos de índice, las opciones del servidor HTTP e intenta identificar los servidores web y el software instalados.
Los elementos de exploración y los complementos se actualizan con frecuencia y se puede hacer que se instalen automáticamente. Sus funcionalidades también incluyen la elaboración de informes en varios formatos como HTML, XML, CSV, el escaneado en múltiples puertos, la comprobación de varios subdominios, la identificación de aplicaciones web específicas que se ejecutan en el servidor web, la comprobación de vulnerabilidades conocidas y mucho más.
Nikto fue escrito y mantenido originalmente por Sullo y actualmente está dirigido por David Lodge, aunque otros colaboradores también han participado en el proyecto.
Desarrollado en Perl, funciona en cualquier plataforma y se ha incorporado a la distribución Kali Linux Penetration Testing. Por último, soporta SSL, proxy, autenticación de host, evasión IDS y mucho más.
Principales características de Nikto
Cuando se escanean aplicaciones web, pueden darse varios escenarios. Nikto soporta una amplia variedad de opciones que pueden ser implementadas en tales situaciones. A continuación se ofrece una visión general de las opciones incluidas en el escáner de vulnerabilidades.
Config
Permite al pentester, hacker o desarrollador especificar un archivo de configuración alternativo que se utilizará en lugar del archivo config.txt ubicado en el directorio de instalación;
Display
Puede controlar la salida mostrada por Nikto. Se utilizan números de referencia para las especificaciones. También se pueden utilizar varios números. A continuación se muestran los números de referencia permitidos:
1 – Muestra las redirecciones;
2 – Muestra las cookies recibidas;
3 – Muestra todas las respuestas 200/OK;
4 – Muestra las URL que requieren autenticación;
D – Salida de depuración;
V – Salida detallada;
Format
Puede que necesite guardar la salida/resultados en un archivo después de una exploración. Esta opción hace exactamente eso. Se utiliza la opción -o (-output); sin embargo, si no se especifica, se tomará el valor por defecto de la extensión de archivo especificada en la opción -output. Los formatos válidos son:
csv – para listas separadas por comas;
htm – para un informe HTML
txt – para un informe de texto;
xml – para un informe XML;
Host
Esta opción se utiliza para especificar los hosts que se utilizarán como destino de un análisis. Puede ser una dirección IP, un nombre de host o un archivo de texto con varios hosts;
ID
Para los sitios web que requieren autenticación, esta opción se utiliza para especificar el ID y la contraseña que se utilizarán;
List-plugins
Esta opción listará todos los plugins que Nikto puede ejecutar para que puedan ajustarse a una sesión utilizando la opción -plugins;
no404
Se utiliza para desactivar la comprobación 404 (archivo no encontrado). Esto reduce el número total de peticiones realizadas al servidor web y puede utilizarse cuando se comprueba un servidor a través de una conexión a Internet lenta;
Plugins
Permite seleccionar los plug-ins que se ejecutarán en los destinos especificados. Debe proporcionarse una lista separada por comas con los nombres de los plug-ins;
Ports
Especifica los puertos TCP que se van a escanear. Para comprobar más de un puerto en el mismo host, la lista de puertos puede especificarse en la opción -p (-port). Los puertos pueden especificarse como un rango (por ejemplo, 80-90) o como una lista delimitada por comas (por ejemplo, 80,88,90). Si no se especifica, se utiliza el puerto 80;
Pausa
Puede utilizarse para evitar que las pruebas sean bloqueadas por un WAF (Web application firewall) porque parecen demasiado sospechosas. Define los segundos de retraso entre pruebas;
Timeout
A veces es útil esperar antes de que expire una solicitud. Esta opción especifica el número de segundos de espera. El tiempo de espera por defecto es de 10 segundos;
Useproxy
Se utiliza en caso de que las redes conectadas requieran un proxy. Esta opción pide a Nikto que utilice el proxy HTTP definido en el archivo de configuración;
-update: actualiza los plugins y las bases de datos directamente desde cirt.net.
Cómo realizar su primera exploración con Nikto
El escaneo más sencillo que se puede realizar con Nikto requiere un nombre de host o IP como parámetro.
Nikto -h <nombre_de_host/objetivo_IP>.
Una vez completado el escaneado, los resultados se mostrarán en un formato muy similar al de la captura de pantalla siguiente.

Las opciones comentadas anteriormente pueden utilizarse para refinar el escaneado según los deseos del pentester, hacker o desarrollador.
Cabe señalar que se permite la generación de informes en el formato deseado, tal y como se ha comentado anteriormente.
A partir de los resultados del escaneo, podemos ver claramente los problemas identificados junto con su clasificación OSVDB.
Conclusiones
En conclusión, Nikto es el escáner de vulnerabilidades de aplicaciones web más ligero que es capaz de ejecutarse en cualquier sistema, y el hecho de que se actualice regularmente significa que se proporcionan resultados fiables sobre las últimas vulnerabilidades actualmente en circulación.
Además, funciona no sólo comprobando los exploits disponibles en su base de datos, sino también buscando todos los archivos y configuraciones erróneas conocidos que puedan causar posibles vulnerabilidades o puntos de acceso en un servidor web.
Así pues, Nikto es una herramienta de auditoría de seguridad que se limita a realizar simples “comprobaciones seguras”, es decir, “pruebas en blanco”, en el host analizado sin inyectar ninguna carga maliciosa.
A día de hoy, sigue siendo una de las herramientas más utilizadas a la hora de evaluar sitios y comercios electrónicos.
Por Matteo Longhi
@RESERVADOS TODOS LOS DERECHOS