Escaneo de Servidores Web con Nikto

NmapBeginner
Practicar Ahora

Introducción

En esta sesión práctica, aprenderás a manejar Nikto, un escáner de servidores web de código abierto diseñado para detectar posibles fallos de seguridad. Durante el ejercicio, instalarás la herramienta, realizarás un escaneo sobre un servidor de prueba, almacenarás los resultados y analizarás los hallazgos para identificar debilidades en la infraestructura. Esta experiencia directa te proporcionará las habilidades fundamentales necesarias para la evaluación de seguridad web.

Esta es una Guía de Laboratorio que ofrece instrucciones paso a paso para facilitar tu aprendizaje. Sigue las indicaciones cuidadosamente para completar cada etapa y adquirir experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 96%. Ha recibido una valoración positiva del 100% por parte de los usuarios.

Instalación y Verificación de Nikto

Antes de proceder con la búsqueda de vulnerabilidades, es necesario instalar Nikto en el sistema. En este paso, actualizaremos la lista de paquetes del sistema e instalaremos la herramienta mediante el gestor de paquetes apt. Todos los comandos se ejecutarán en la terminal. Tu directorio de trabajo predeterminado es /home/labex/project.

En primer lugar, actualiza el índice de paquetes para asegurar que obtienes la versión más reciente disponible en los repositorios.

sudo apt update

A continuación, instala Nikto. El parámetro -y confirma automáticamente la instalación, evitando que tengas que presionar la tecla 'Y' manualmente.

sudo apt install -y nikto

Una vez finalizada la instalación, es recomendable verificar que la herramienta se haya configurado correctamente. Puedes hacerlo consultando su versión.

nikto -Version

Deberías ver una salida que muestra el número de versión de Nikto, similar a la siguiente. Ten en cuenta que la versión exacta podría variar.

---------------------------------------------------------------------------
- Nikto v2.5.0
---------------------------------------------------------------------------

Con Nikto instalado correctamente, ya estás listo para proceder con el escaneo de un servidor web.

Ejecución de un Escaneo Básico

Ahora que Nikto está operativo, el siguiente paso es realizar un escaneo básico contra un servidor web de prueba. Para este laboratorio, ya existe un servidor web ejecutándose en tu entorno. Antes de iniciar el análisis, siempre es fundamental confirmar que el objetivo está activo y es accesible.

Primero, verifica que el servidor web de destino esté funcionando. Utilizaremos curl con el parámetro -I para obtener únicamente las cabeceras HTTP del servidor. El objetivo para esta práctica es http://localhost:8000.

curl -I http://localhost:8000

Una respuesta exitosa incluirá la línea HTTP/1.0 200 OK, lo que indica que el servidor está activo y listo para recibir peticiones.

HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.10.12
Date: ...
Content-type: text/html
Content-Length: 71

Ahora, ejecuta tu primer escaneo con Nikto. Utiliza el parámetro -h (o -host) para especificar el objetivo.

nikto -h http://localhost:8000

Nikto comenzará a analizar el objetivo. Verás los resultados en tiempo real en tu terminal a medida que se realizan las diversas pruebas. El escaneo mostrará primero información general sobre el host y luego enumerará las posibles vulnerabilidades detectadas.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        8000
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.12
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type.
...
+ 1 host(s) tested

Has completado un escaneo web básico. En el siguiente paso, aprenderás a guardar estos resultados para un análisis posterior más detallado.

Guardar los Resultados del Escaneo en un Archivo

Ejecutar un escaneo y observar la salida en la terminal es útil para una comprobación rápida, pero en auditorías profesionales es indispensable guardar los resultados. Un informe guardado sirve como registro de los hallazgos y puede compartirse con otros equipos para su corrección.

Nikto permite exportar los resultados en diversos formatos. En este paso, guardarás el informe como un archivo de texto plano. Utiliza el parámetro -o (o -output) para definir el nombre del archivo de salida.

Ejecuta el escaneo nuevamente, pero esta vez redirigiendo la salida a un archivo llamado nikto_report.txt.

nikto -h http://localhost:8000 -o nikto_report.txt

El proceso se ejecutará de la misma forma que antes, pero además de mostrar los datos en pantalla, los guardará en el archivo especificado dentro de tu directorio actual (/home/labex/project).

Cuando el escaneo termine, verifica que el archivo del informe se haya creado correctamente usando el comando ls -l, que muestra los archivos y sus detalles.

ls -l nikto_report.txt

Deberías ver el nuevo archivo en la lista, con un tamaño superior a cero.

-rw-rw-r-- 1 labex labex 1234 ... nikto_report.txt

Para confirmar rápidamente el contenido del archivo, puedes visualizar las primeras 20 líneas con el comando head.

head -n 20 nikto_report.txt

Esto mostrará el inicio del informe, incluyendo el resumen del escaneo y los primeros hallazgos. Ahora ya dispones de un registro permanente de tu análisis.

Análisis del Informe de Escaneo

Una vez guardados los resultados, el paso final consiste en analizar el informe para comprender las vulnerabilidades identificadas. Esto implica leer el reporte y filtrarlo para resaltar la información más relevante.

Primero, puedes ver el informe completo utilizando el comando cat. Esto es útil para obtener una visión general de toda la información recopilada por Nikto.

cat nikto_report.txt

Dado que un informe completo puede ser extenso, suele ser más eficiente filtrarlo. Nikto utiliza el símbolo + al inicio de cada línea para indicar un hallazgo interesante o una vulnerabilidad potencial. Puedes usar el comando grep para mostrar únicamente estas líneas.

grep '+' nikto_report.txt

Este comando filtrará el reporte y te mostrará una lista concisa de todos los elementos señalados por Nikto.

+ Target Host: localhost
+ Target Port: 8000
+ GET /: The anti-clickjacking X-Frame-Options header is not present.
+ HEAD /: SimpleHTTP/0.6 appears to be outdated (current is at least 1.2)

Al revisar estos hallazgos, presta especial atención a las descripciones que indiquen errores de configuración (como la falta de cabeceras de seguridad) o la presencia de archivos sensibles. Cada hallazgo constituye un punto de partida para una investigación más profunda.

Resumen

En este laboratorio, has instalado Nikto con éxito y has realizado un escaneo de vulnerabilidades en un servidor web de prueba. Has aprendido a ejecutar un análisis, guardar los hallazgos en un archivo de informe y analizar los resultados para identificar posibles problemas de seguridad. Estas competencias fundamentales, que incluyen la instalación de herramientas de seguridad, la ejecución de escaneos y la interpretación de informes, son esenciales para cualquier persona que se inicie en la ciberseguridad y las pruebas de penetración.