Generar un Informe HTML con Nikto

Kali LinuxBeginner
Practicar Ahora

Introducción

Nikto es un popular escáner de servidores web de código abierto que realiza pruebas exhaustivas contra servidores web para múltiples elementos, incluyendo más de 6700 archivos/programas potencialmente peligrosos, comprobaciones de versiones desactualizadas de más de 1250 servidores y problemas específicos de versión en más de 270 servidores.

Si bien ejecutar un escaneo es útil, poder guardar los resultados en un formato claro, legible y compartible es crucial para los profesionales de la seguridad. Nikto puede exportar los resultados del escaneo en varios formatos, siendo HTML uno de los más convenientes para el análisis.

En este laboratorio, aprenderá a ejecutar un escaneo de Nikto contra un servidor web objetivo y a generar un informe HTML bien estructurado.

Especificar el formato HTML usando -Format html

En este paso, aprenderá a especificar el formato de salida para su escaneo de Nikto. Nikto puede generar informes en varios formatos, y para este laboratorio, nos centraremos en HTML, que es muy legible y fácil de navegar.

La opción -Format se utiliza para indicar a Nikto qué formato de informe utilizar. Para generar un informe HTML, debe especificar html como argumento para esta opción.

Comencemos explorando el menú de ayuda de Nikto para ver las opciones de formato.

nikto -Help | grep Format

Debería ver una salida que enumera los formatos disponibles, incluido html.

-Format       Scan report format (csv, htm, msf+, nbe, sql, txt, xml)

La sintaxis para especificar el formato HTML es simplemente -Format html. Combinaremos esto con otras banderas en los próximos pasos para construir nuestro comando completo.

Usar la bandera -o para el archivo HTML de salida

En este paso, aprenderá a especificar el archivo donde Nikto debe guardar el informe. Simplemente establecer el formato en HTML imprimirá el código HTML sin procesar en su terminal, lo cual no es muy útil. Necesita dirigir esta salida a un archivo.

La bandera -o (o --output) se utiliza para este propósito. Proporciona el nombre de archivo deseado como argumento a esta bandera.

Combinemos esto con la bandera de formato del paso anterior. Llamaremos a nuestro archivo de informe nikto_report.html y lo guardaremos en el directorio actual (~/project). También necesitamos especificar el objetivo a escanear usando la bandera -h (o --host). Para este laboratorio, nuestro objetivo es el servidor web local que se ejecuta en http://127.0.0.1:8000.

La estructura completa del comando se verá así:

nikto -h http://127.0.0.1:8000 -Format html -o nikto_report.html

Ejecutaremos este comando completo en el siguiente paso. Por ahora, familiarícese con la estructura y el propósito de cada bandera.

Ejecutar el escaneo para crear el informe

Ahora es el momento de juntar todo y ejecutar el escaneo. Utilizaremos el comando que construimos en los pasos anteriores para escanear nuestro servidor web local y guardar los resultados en un archivo HTML.

Ejecute el siguiente comando en su terminal. El escaneo puede tardar unos momentos en completarse.

nikto -h http://127.0.0.1:8000 -Format html -o nikto_report.html

Durante el escaneo, Nikto mostrará su progreso en la terminal. La salida será similar a esta:

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        8000
+ Start Time:         2023-10-27 10:30:00
---------------------------------------------------------------------------
+ Server:             SimpleHTTP/0.6 Python/3.10.12
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ 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
+ No CGI directories found (use '-C all' to force check all possible dirs)
+ "robots.txt" not found.
+ OSVDB-3233: /: HTTP TRACE method is active, suggesting the host is vulnerable to XST
+ 7528 requests: 0 error(s) and 5 item(s) reported on remote host
+ End Time:           2023-10-27 10:30:15
+ (15 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Una vez que el escaneo haya finalizado, puede verificar que el archivo de informe se ha creado listando los archivos en el directorio actual.

ls -l nikto_report.html

Debería ver el archivo nikto_report.html listado en la salida.

-rw-r--r-- 1 labex labex 21435 Oct 27 10:30 nikto_report.html

Abrir el archivo HTML generado en un navegador web

En este paso, abrirá el archivo nikto_report.html generado para ver su contenido. Dado que es un archivo HTML, la mejor manera de verlo es en un navegador web.

El entorno de LabEx incluye el navegador web Firefox. Puede abrir el informe directamente desde la terminal ejecutando el comando firefox seguido del nombre del archivo.

Ejecute el siguiente comando. Esto iniciará Firefox y abrirá su informe.

firefox nikto_report.html

Debería aparecer una nueva ventana de Firefox en su pantalla, mostrando el informe del escaneo de Nikto. Si la ventana aparece detrás de su terminal, es posible que deba mover la ventana de la terminal para verla.

Este paso final consiste en explorar el informe que acaba de abrir en Firefox. El informe HTML generado por Nikto está estructurado para ser claro e informativo.

Tómese un momento para observar las diferentes partes del informe:

  • Detalles del escaneo: En la parte superior, encontrará un resumen del escaneo, que incluye la IP de destino, el nombre del host, el puerto y la hora en que se realizó el escaneo.
  • Tabla de vulnerabilidades: La parte principal del informe es una tabla que enumera todos los hallazgos. Cada fila representa un problema potencial.
  • Columnas clave: Preste atención a la columna URI, que muestra la ruta afectada, y a la columna Description (Descripción), que explica el hallazgo. Muchos hallazgos incluyen un enlace (a menudo un ID de OSVDB) en el que puede hacer clic para obtener información más detallada sobre esa vulnerabilidad específica.

Haga clic en algunos de los enlaces del informe para ver cómo proporcionan contexto adicional. Familiarizarse con la estructura de este informe es una habilidad clave para analizar los resultados de los escaneos de seguridad. Este paso es para observación, por lo que no hay comandos que ejecutar.

Resumen

En este laboratorio, aprendió a utilizar Nikto para generar un informe completo de vulnerabilidades de servidores web en formato HTML.

Practicó el uso de la opción -Format html para especificar el tipo de informe y la bandera -o para guardar la salida en un archivo llamado nikto_report.html. Finalmente, abrió y navegó por el informe generado en un navegador web, aprendiendo a interpretar el resumen del escaneo y los hallazgos detallados.

Esta habilidad es esencial para documentar y comunicar eficazmente las evaluaciones de seguridad.