Guardar Salida de Escaneo en un Archivo 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.

Cuando ejecutas un escaneo, los resultados se muestran típicamente directamente en tu terminal. Para la documentación, análisis adicional o para compartir con un equipo, es esencial guardar esta salida en un archivo. Nikto ofrece opciones flexibles para guardar informes de escaneo en varios formatos.

En este laboratorio, aprenderás cómo guardar los resultados de escaneo de Nikto en un archivo. Practicarás guardando la salida en formatos de texto plano (.txt) y Valores Separados por Comas (.csv) escaneando un servidor web simple que se ejecuta localmente.

Elegir un formato de salida de texto plano

En este paso, explorarás los diferentes formatos de salida que Nikto soporta. Nikto utiliza plugins para sus capacidades de reporte, y puedes listarlos para ver los formatos disponibles.

La opción -list-plugins muestra todos los plugins disponibles, incluyendo los de reporte. Ejecutemos este comando para ver qué formatos podemos usar.

Ejecuta el siguiente comando en tu terminal:

nikto -list-plugins

Verás una larga lista de plugins. Desplázate por la salida y busca la sección "Reporting". Esta sección lista todos los formatos de archivo en los que puedes guardar los resultados de tu escaneo.

...
Reporting
--------------------------------------------------
        csv - Comma-separated value
        htm - HTML Report
        json - JSON Report
        nbe - Nessus NBE format
        sql - SQL (generic)
        txt - Plain text
        xml - XML
...

Como puedes ver, txt está listado como un formato de "Plain text" (texto plano). Usaremos este formato primero.

Usar la bandera -o para especificar un nombre de archivo de salida

En este paso, aprenderás sobre la bandera utilizada para especificar un archivo de salida. Para indicarle a Nikto dónde guardar el informe, usas la bandera -o (o --output).

Esta bandera debe usarse junto con la bandera -Format, que especifica el formato de archivo que elegiste en el paso anterior. La sintaxis básica es:

nikto -h <target> -Format <format> -o <filename>

Usemos la opción -help para ver la descripción oficial de la bandera -o. Puedes canalizar la salida a grep para encontrar la línea relevante rápidamente.

Ejecuta este comando:

nikto -help | grep -- "-o "

La salida te mostrará el uso de las banderas -o y --output.

-o, -output <file>      Write output to this file

Ahora sabes cómo especificar tanto el formato como el nombre del archivo. En el siguiente paso, combinaremos esto para ejecutar un escaneo y guardar los resultados.

Ejecutar el escaneo y generar el archivo de texto

En este paso, realizarás un escaneo y guardarás la salida en un archivo de texto plano. Combinaremos las banderas e información de los pasos anteriores.

Nuestro objetivo es el servidor web local que se ejecuta en el puerto 8000. La URL para este servidor es http://127.0.0.1:8000.

  • Host de destino (-h): http://127.0.0.1:8000
  • Formato (-Format): txt
  • Archivo de salida (-o): scan_report.txt

Ahora, construye el comando completo y ejecútalo en tu terminal. Todas las operaciones deben realizarse en el directorio predeterminado ~/project.

nikto -h http://127.0.0.1:8000 -Format txt -o scan_report.txt

Nikto iniciará el escaneo. Verás el progreso del escaneo en la terminal, pero el informe final se escribirá en el archivo scan_report.txt. Por favor, espera a que el escaneo se complete.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        8000
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ 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

Una vez que el comando finalice, se creará un nuevo archivo llamado scan_report.txt en tu directorio actual (~/project).

Verificar el contenido del archivo de texto guardado

En este paso, verificarás que los resultados del escaneo se guardaron correctamente en el archivo de texto. Puedes usar una herramienta de línea de comandos como cat para mostrar el contenido del archivo.

Ejecuta el siguiente comando para ver el contenido de scan_report.txt:

cat scan_report.txt

La salida será el informe completo de Nikto, que debería parecerse mucho a la salida que viste en la terminal durante el escaneo.

Nikto V2.5.0
================================================================
+-----------+
| General |
+-----------+
Date: ...
Start Time: ...
End Time: ...
Version: 2.5.0
...
+-----------+
|  Target   |
+-----------+
IP: 127.0.0.1
Hostname: 127.0.0.1
Port: 8000
...
+-----------+
| Findings  |
+-----------+
+ The anti-clickjacking X-Frame-Options header is not present.
...

Has guardado con éxito un informe de escaneo de Nikto en un archivo de texto plano. Este archivo ahora se puede almacenar, archivar o compartir fácilmente.

Repetir el proceso para guardar en formato CSV

En este paso, repetirás el proceso para guardar los resultados del escaneo en un formato diferente: CSV (Comma-Separated Values). El formato CSV está estructurado y es ideal para importar en hojas de cálculo como Excel o LibreOffice Calc, o para procesar con scripts.

El procedimiento es casi idéntico. Solo necesitas cambiar el valor de la bandera -Format a csv y proporcionar un nuevo nombre de archivo con una extensión .csv.

  • Host de destino (-h): http://127.0.0.1:8000
  • Formato (-Format): csv
  • Archivo de salida (-o): scan_report.csv

Ejecuta el siguiente comando para generar el informe en formato CSV:

nikto -h http://127.0.0.1:8000 -Format csv -o scan_report.csv

Después de que el escaneo se complete, se creará un nuevo archivo llamado scan_report.csv. Veamos su contenido con el comando cat.

cat scan_report.csv

La salida estará estructurada con campos separados por comas, que es el estándar para los archivos CSV.

"Host","IP","Port","Banner","Date","Vulnerability","Method","Description","Reference"
"127.0.0.1","127.0.0.1","8000","","...","OSVDB-3233: The anti-clickjacking X-Frame-Options header is not present.","GET","",""
"127.0.0.1","127.0.0.1","8000","","...","OSVDB-3092: 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.","GET","",""
...

Ahora has generado con éxito un informe en dos formatos diferentes, demostrando la flexibilidad de las opciones de salida de Nikto.

Resumen

En este laboratorio, has aprendido a gestionar la salida del escáner de servidores web Nikto. Escaneaste con éxito un servidor web local y guardaste los resultados en archivos para su uso posterior.

Específicamente, practicaste:

  • Listar los formatos de salida disponibles usando la opción -list-plugins.
  • Usar las banderas -o y -Format para controlar el archivo de salida y su formato.
  • Generar un informe de escaneo en texto plano (.txt).
  • Generar un informe de escaneo en Comma-Separated Values (.csv).

Esta habilidad es fundamental para cualquier profesional de la seguridad que necesite documentar hallazgos, realizar análisis fuera de línea o integrar resultados de escaneos en sistemas de informes más grandes.