Personalizar el comportamiento del escaneo con el archivo nikto.conf

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, verifica versiones desactualizadas de más de 1250 servidores y problemas específicos de versión en más de 270 servidores.

Si bien Nikto se puede configurar mediante opciones de línea de comandos, su comportamiento predeterminado se controla mediante un archivo de configuración central, nikto.conf. Comprender cómo modificar este archivo le permite cambiar permanentemente la configuración predeterminada, adaptar los escaneos a entornos específicos y optimizar su flujo de trabajo.

En este laboratorio, aprenderá a localizar, leer y modificar el archivo nikto.conf. Cambiará la cadena USERAGENT predeterminada, ejecutará un escaneo para observar el nuevo comportamiento y luego restaurará la configuración original.

Localizar el archivo de configuración principal de nikto.conf

En este paso, localizará el archivo de configuración principal de Nikto, nikto.conf. Este archivo contiene todas las configuraciones predeterminadas que Nikto utiliza cuando se ejecuta. En sistemas basados en Debian, como el entorno Ubuntu que está utilizando, este archivo se encuentra típicamente en el directorio /etc/.

Podemos usar el comando find para buscar el archivo en todo el sistema de archivos. Esta es una técnica útil cuando no está seguro de la ubicación exacta de un archivo de configuración.

Ejecute el siguiente comando en su terminal para encontrar nikto.conf. Redirigiremos el error estándar (2) a /dev/null para ocultar cualquier mensaje de "Permiso denegado" y obtener una salida más limpia.

sudo find / -name nikto.conf 2> /dev/null

Debería ver la ruta al archivo de configuración como salida:

/etc/nikto.conf

Ahora que conoce su ubicación, puede proceder a inspeccionar su contenido.

Abrir el archivo y revisar configuraciones predeterminadas como RFIURL

En este paso, abrirá el archivo nikto.conf utilizando un editor de texto y examinará algunas de sus configuraciones predeterminadas. Utilizaremos el editor nano, que es un editor de texto simple en línea de comandos. Dado que el archivo se encuentra en /etc/ y es propiedad del usuario root, debe usar sudo para abrirlo.

Abra el archivo con nano:

sudo nano /etc/nikto.conf

Una vez dentro de nano, puede navegar con las teclas de flecha. El archivo está muy comentado (líneas que comienzan con #) para explicar qué hace cada variable.

Busquemos una variable específica, RFIURL. Esta variable define el archivo externo que Nikto utiliza para las pruebas de Inclusión Remota de Archivos (RFI). Presione Ctrl + W para abrir el indicador de búsqueda, escriba RFIURL y presione Enter. Debería ver una línea similar a esta:

## The URL to a remote file to use for RFI tests.
RFIURL=http://cirt.net/rfi.txt

A continuación, busquemos la variable USERAGENT, que modificaremos en el siguiente paso. Presione Ctrl + W nuevamente, escriba USERAGENT y presione Enter. Encontrará la cadena User-Agent predeterminada que Nikto utiliza para identificarse ante el servidor web.

## The User-Agent to send to the web server
USERAGENT=Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 (Nikto/2.5.0)

Después de revisar estas configuraciones, puede salir de nano sin guardar ningún cambio presionando Ctrl + X.

Cambiar una variable estática como el USERAGENT predeterminado

Ahora, modificará una variable estática en el archivo de configuración. Cambiaremos el USERAGENT predeterminado por un valor personalizado. Cambiar el User-Agent puede ser útil para imitar un navegador específico, evadir detecciones simples o etiquetar el tráfico de su escaneo para fines de registro.

Primero, abra el archivo nuevamente con nano:

sudo nano /etc/nikto.conf

Use Ctrl + W para buscar USERAGENT nuevamente. Una vez que haya encontrado la línea, es una buena práctica mantener el valor original como referencia. Agregue un # al principio de la línea original de USERAGENT para comentarla. Luego, en una nueva línea directamente debajo, agregue su User-Agent personalizado.

Sus cambios deberían verse así:

## The User-Agent to send to the web server
#USERAGENT=Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 (Nikto/2.5.0)
USERAGENT=MyCustomScanner/1.0

Ahora, guarde los cambios y salga del editor. Presione Ctrl + O para escribir los cambios, presione Enter para confirmar el nombre del archivo y luego presione Ctrl + X para salir de nano. Su configuración ahora está actualizada.

Ejecutar un escaneo para observar el nuevo comportamiento predeterminado

En este paso, ejecutará un escaneo de Nikto contra el servidor web local para ver su nuevo USERAGENT en acción. El script de configuración para este laboratorio ya ha instalado e iniciado un servidor web Apache, que se está ejecutando en 127.0.0.1 (localhost).

Cuando Nikto inicia un escaneo, imprime un resumen de la configuración que está utilizando. Esto nos permite verificar nuestro cambio sin necesidad de inspeccionar los registros del servidor web.

Ejecute un escaneo básico contra el servidor local con la opción -h (host):

nikto -h http://127.0.0.1

Observe la salida inicial de Nikto. Enumerará la información del objetivo y algunas de las opciones que se utilizan para el escaneo. Debería ver su User-Agent personalizado reflejado en la salida.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        80
+ Start Time:         2023-10-27 10:30:00 (GMT0)
---------------------------------------------------------------------------
- Server: Apache/2.4.52 (Ubuntu)
+ User-Agent: MyCustomScanner/1.0
- The anti-clickjacking X-Frame-Options header is not present.
... (los resultados del escaneo continuarán) ...

Como puede ver en la línea + User-Agent: MyCustomScanner/1.0, Nikto ahora está utilizando el valor predeterminado que estableció en nikto.conf. Puede detener el escaneo en cualquier momento presionando Ctrl + C.

Revertir los cambios a la configuración original

Finalmente, es una buena práctica restaurar la configuración a su estado original, especialmente en un entorno compartido. En este paso, revertirá los cambios realizados en nikto.conf.

Durante la configuración del laboratorio, se creó automáticamente una copia de seguridad del archivo de configuración original en /etc/nikto.conf.bak. Puede restaurar esta copia de seguridad utilizando el comando mv (move) para sobrescribir su archivo modificado con el original.

Ejecute el siguiente comando para restaurar la copia de seguridad:

sudo mv /etc/nikto.conf.bak /etc/nikto.conf

Este comando mueve /etc/nikto.conf.bak a /etc/nikto.conf, reemplazando efectivamente el archivo que editó.

Para confirmar que el archivo ha sido revertido, puede usar el comando grep para verificar la línea USERAGENT nuevamente.

grep USERAGENT /etc/nikto.conf

La salida ahora debería mostrar la línea original de User-Agent sin comentarios, confirmando que sus cambios se han revertido con éxito.

USERAGENT=Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 (Nikto/2.5.0)

Resumen

En este laboratorio, personalizó con éxito el comportamiento de Nikto editando su archivo de configuración principal, nikto.conf. Esta es una habilidad fundamental para adaptar las herramientas de seguridad a los requisitos específicos de una prueba de penetración o una auditoría de seguridad.

Ha aprendido a:

  • Localizar el archivo nikto.conf en un sistema Linux.
  • Leer y comprender el propósito de las variables de configuración.
  • Modificar una variable estática, específicamente el USERAGENT.
  • Verificar el cambio de configuración ejecutando un escaneo y observando la salida.
  • Restaurar la configuración original desde un archivo de copia de seguridad.

Dominar los cambios en los archivos de configuración le permite establecer valores predeterminados personalizados y persistentes para sus herramientas, haciendo que sus pruebas de seguridad sean más eficientes y efectivas.