Escaneo de servidores web con Nikto

CiberseguridadBeginner
Practicar Ahora

Introducción

Bienvenido al laboratorio de Escaneo de servidores web con Nikto.

Nikto es un escáner de vulnerabilidades de servidores web de código abierto ampliamente utilizado. Realiza pruebas exhaustivas en servidores web sobre múltiples elementos, incluyendo más de 6,700 archivos y programas potencialmente peligrosos, verifica versiones obsoletas de más de 1,250 servidores e identifica problemas específicos de cada versión. Aunque Nikto no está diseñado para ser sigiloso (es bastante "ruidoso" y fácilmente detectable por los Sistemas de Detección de Intrusiones), es increíblemente rápido y eficaz para auditorías de seguridad básicas.

Nikto se entiende mejor como un auditor rápido de búsqueda en anchura. Te ayuda a identificar problemas obvios del servidor web rápidamente, pero no reemplaza una verificación manual cuidadosa. Su nivel de ruido es el compromiso necesario para obtener esa amplitud.

En este laboratorio, aprenderás a usar Nikto para escanear un servidor web local, ajustar tus escaneos para centrarte en vulnerabilidades específicas, guardar tus resultados en informes estructurados y analizar los hallazgos para mejorar la seguridad del servidor.

Ejecutar un escaneo básico con Nikto

En este paso, aprenderás a realizar un escaneo de vulnerabilidades básico contra un servidor web objetivo utilizando Nikto.

Para este laboratorio, ya se ha instalado y iniciado un servidor web Apache local en tu entorno. Este servidor actuará como nuestro objetivo. Nikto opera a través de la línea de comandos, y su uso más fundamental requiere solo el indicador -h (host) seguido de la dirección IP o el nombre de dominio del objetivo.

Para iniciar un escaneo básico contra tu servidor web local, ejecuta el siguiente comando en tu terminal:

nikto -h http://localhost

En esta etapa, el objetivo es establecer una línea base de debilidades y configuraciones incorrectas visibles, no probar la explotabilidad de cada elemento reportado.

Una vez que ejecutes el comando, Nikto comenzará a sondear el servidor web. Verás aparecer resultados en tu pantalla a medida que Nikto descubre información.

- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        80
+ Start Time:         2026-10-25 10:00:00 (GMT0)
---------------------------------------------------------------------------
+ Server: Apache/2.4.52 (Ubuntu)
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined.
+ The X-Content-Type-Options header is not set.
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /admin.txt: This might be interesting...
+ /info.php: Output from the phpinfo() function was found.
+ 8000 requests: 0 error(s) and 6 item(s) reported on remote host
+ End Time:           2026-10-25 10:00:15 (GMT0) (15 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

La salida proporciona una gran cantidad de información. Identifica la versión del software del servidor (Apache/2.4.52), señala la falta de encabezados de seguridad (como X-Frame-Options) y destaca archivos potencialmente sensibles que quedaron en el servidor, como /admin.txt y /info.php.

Ignorar falsos positivos (Ajuste)

En este paso, aprenderás a ajustar tus escaneos de Nikto.

Debido a que Nikto verifica miles de problemas potenciales, un escaneo predeterminado a veces puede llevar mucho tiempo y producir mucho "ruido" o falsos positivos. Para hacer que tus escaneos sean más rápidos y enfocados, Nikto proporciona el indicador -Tuning.

Este es un buen recordatorio de que la calidad de la salida del escáner está determinada por el alcance. Reducir las categorías de prueba a menudo mejora la utilidad de los hallazgos.

El indicador -Tuning te permite especificar exactamente qué categorías de pruebas deseas ejecutar. Cada categoría está representada por un número o letra. Por ejemplo:

  • 1 - Archivo interesante / Visto en registros
  • 2 - Configuración incorrecta / Archivo predeterminado
  • 3 - Divulgación de información
  • 4 - Inyección (XSS/Script/HTML)
  • 9 - Inyección SQL

Si solo deseas verificar configuraciones incorrectas (2) y divulgación de información (3), puedes combinar estos números.

Ejecuta el siguiente comando para realizar un escaneo ajustado que solo busque configuraciones incorrectas y divulgación de información:

nikto -h http://localhost -Tuning 23

Notarás que este escaneo se completa mucho más rápido que el escaneo básico porque omite cientos de pruebas irrelevantes, como la inyección SQL o las comprobaciones de denegación de servicio.

- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        80
+ Start Time:         2026-10-25 10:05:00 (GMT0)
---------------------------------------------------------------------------
+ Server: Apache/2.4.52 (Ubuntu)
+ /admin.txt: This might be interesting...
+ /info.php: Output from the phpinfo() function was found.
+ 1500 requests: 0 error(s) and 3 item(s) reported on remote host
+ End Time:           2026-10-25 10:05:03 (GMT0) (3 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Al usar el indicador -Tuning, puedes adaptar Nikto para que se ajuste a tus necesidades específicas de auditoría, ahorrando tiempo y reduciendo el desorden en los informes.

Guardar la salida en un informe

En este paso, aprenderás a guardar los resultados de tu escaneo de Nikto en un archivo de informe estructurado.

Al realizar auditorías de seguridad profesionales, es esencial mantener registros de tus hallazgos. Leer los resultados directamente desde la terminal está bien para comprobaciones rápidas, pero compartir los hallazgos con un equipo requiere un documento adecuado. Nikto admite guardar la salida en varios formatos, incluidos HTML, CSV, XML y texto sin formato.

Para guardar un informe, necesitas usar dos indicadores:

  • -o (o -output): Especifica la ruta y el nombre del archivo donde se guardará el informe.
  • -Format: Especifica el formato del informe (por ejemplo, htm, csv, xml, txt).

Vamos a ejecutar un escaneo y guardar la salida como un archivo HTML en el directorio de tu proyecto. Ejecuta el siguiente comando:

nikto -h http://localhost -Format htm -o /home/labex/project/report.html

Mientras se ejecuta el escaneo, seguirás viendo la salida estándar en tu terminal. Una vez que el escaneo se complete, Nikto generará el archivo HTML en la ruta que especificaste.

Puedes verificar que el archivo se creó correctamente listando el contenido de tu directorio actual:

ls -l /home/labex/project/report.html
-rw-r--r-- 1 root root 4521 Oct 25 10:10 /home/labex/project/report.html

Este informe HTML puede descargarse y abrirse posteriormente en cualquier navegador web estándar, proporcionando una vista limpia y tabular de todas las vulnerabilidades descubiertas.

Analizar el informe de vulnerabilidades de Nikto

En este paso final, aprenderás a analizar rápidamente el informe generado utilizando herramientas de línea de comandos.

Aunque los informes HTML son excelentes para verlos en un navegador, a menudo te encontrarás trabajando puramente en un entorno de terminal sin una interfaz gráfica. En tales casos, puedes usar herramientas estándar de procesamiento de texto de Linux como grep para extraer información específica de tus informes.

Busquemos en el informe HTML que generamos en el paso anterior para ver si Nikto documentó con éxito la divulgación de información del estado del servidor Apache.

Usa el comando grep para buscar la palabra "server-status" dentro de tu informe:

grep "server-status" /home/labex/project/report.html
    <td>/server-status: This reveals Apache information. Comment out appropriate line in httpd.conf or restrict access to allowed hosts.</td>

A continuación, verifiquemos si el informe capturó la falta del encabezado de seguridad X-Frame-Options. Este encabezado es crucial para prevenir ataques de clickjacking.

grep "X-Frame-Options" /home/labex/project/report.html
    <td>The anti-clickjacking X-Frame-Options header is not present.</td>

Al combinar las capacidades de generación de informes de Nikto con las utilidades de línea de comandos de Linux, puedes analizar rápidamente grandes escaneos de vulnerabilidades, extraer hallazgos críticos y comenzar el proceso de asegurar tu servidor web.

Resumen

¡Felicidades! Has completado con éxito el laboratorio de Escaneo de servidores web con Nikto.

En este laboratorio, aprendiste a:

  • Ejecutar un escaneo de vulnerabilidades básico contra un servidor web objetivo usando Nikto.
  • Usar el indicador -Tuning para enfocar tus escaneos en categorías específicas de vulnerabilidades, reduciendo los falsos positivos y el tiempo de escaneo.
  • Exportar los resultados de tu escaneo a un informe HTML estructurado para documentación y uso compartido.
  • Analizar el informe generado usando herramientas de línea de comandos como grep para identificar rápidamente fallas de seguridad críticas.

Estas habilidades forman una base sólida para realizar evaluaciones de seguridad rápidas e iniciales de la infraestructura web.