CONFIGURACIÓN PERSONALIZADA NIKTO

Cuando se ejecuta Nikto, esta herramienta utiliza un fichero de configuración (nikto.conf) que determina el funcionamiento del escaneo, por defecto, se encuentra ubicado en el directorio raíz de instalación de Nikto, este fichero declara las opciones de Nikto utilizadas con mayor frecuencia, aunque para la mayoría de los casos la configuración contenida en dicho fichero es suficiente, muy probablemente un investigador debe conocer y personalizar las opciones de configuración de Nikto con el fin de optimizar el proceso de escaneo.

En primer lugar, en orden de establecer una configuración personalizada de Nikto, es necesario utilizar la opción -config donde se define el fichero de configuración que utilizará Nikto. Para que Nikto pueda localizar este fichero y posteriormente inicializar todos los elementos necesarios para el escaneo, se define un orden de búsqueda de la siguiente forma:

1. /etc/nikto.conf

2. $HOME/nikto.conf

3. nikto.conf

En el caso de que no se indique de forma explicita el fichero de configuración, Nikto intentará buscarlo en las rutas anteriormente indicadas en estricto orden.

./nikto.pl -h localhost -config /path/niktoTest.conf

Ahora bien, las opciones de configuración que pueden definirse en este fichero son:

UPDATES:

Esta opción esta relacionada con el uso del plugin outdated, este plugin siempre consulta en la base de datos interna de Nikto para verificar versiones de servidores web (en el fichero db_outdated se encuentra la información de servidores web que usará este plugin), si en el proceso de escaneo, el plugin no dispone de información del servidor web o se ha detectado una versión superior a la que se encuentra registrada en el fichero db_outdated, Nikto intentará enviar esta información al sitio oficial de Nikto para que esta información sea incluida en próximas actualizaciones del producto, es importante anotar que Nikto no enviá información sensible relacionada con direcciones IP o nombres de hosts principalmente por cuestiones de privacidad en la información de los usuarios.

UPDATES=yes

En el caso de que no se encuentre información del servidor web, o la versión sea superior a la registrada en db_outdated, solicita permiso al usuario para enviar dichos datos al servidor de Nikto localizado en cirt.net

UPDATES=no

No enviá ningún paquete al servidor localizado en cirt.net ni a ningún otro

UPDATES=auto

Automáticamente enviá información sobre versiones no actualizadas o servidores web desconocidos al servidor de Nikto localizado en cirt.net sin solicitar confirmación por parte del usuario

DEFAULTHTTPVER:

Indica la versión de HTTP que nikto empleará para realizar los escaneos, algunos Test sobre-escriben esta propiedad si es necesario, en muchos casos el valor por defecto es suficiente (1.0) sin embargo, se puede especificar una versión diferente dependiendo de las necesidades del escaneo ha realizar.

DEFAULTHTTPSERVER:1.1

SKIPIDS:

Esta opción solamente es valida para los test incluidos en db_test y contiene un listado de identificadores de test que le indican a Nikto que debe omitir, los identificadores de los Test corresponden a los que se encuentran registrados en base de datos de Nikto (db_tests) por lo tanto si se indican en esta opción:

SKIPIDS=000019 6

Corresponde a los test: 1234576890ab y 6 respectivamente.

Por otro lado si se indica:

SKIPIDS=

Todos los test contenidos en la base de datos de Nikto se van a llevar a cabo.

SKIPPORTS:

Indica cuales puertos deben ser omitidos por la ejecución del comando de Nikto, lo que indica que nunca van a ser escaneados, en el fichero de configuración por defecto de Nikto se indican los puertos:

SKIPPORTS=21 111

CLIOPTS:

Indica que opciones son obligatorias y que siempre se deben incluir en la linea de comandos, por ejemplo:

CLIOPTS=-output resultado.txt -Format text

Con esto, siempre que se ejecute el comando Nikto se incluirán estas opciones y sus valores a la ejecución del comando de forma automática sin necesidad que sean ingresadas manualmente.

NIKTODTD:

Esta opción esta directamente relacionada con los reportes generados en formato XML, de esta forma se establece un fichero DTD que determina la estructura del fichero XML.

PROMPTS:

Desactiva mensajes si se establece la opción “no”, aunque solamente estos mensajes son empleados para solicitar la autenticación de proxy o enviar actualizaciones a cirt.net

CIRT:

Corresponde a la dirección IP donde se encuentra ubicado el servidor de cirt.net en Internet, su valor debe ser:
CIRT=174.142.17.165

USERAGENT:

Determina el navegador por defecto utilizado por Nikto, ademas existen otras variables globales

#@VERSION – Nikto version

#@TESTID – Test identifier

#@EVASIONS – List of active evasions

USERAGENT=Mozilla/4.75 (Nikto/@VERSION) (Evasions:@EVASIONS) (Test:@TESTID)

PROXYHOST:

Corresponde al host del proxy (en el caso que se necesite especificar configuración de proxy)

PROXYHOST=localhost

PROXYPORT:
Corresponde al puerto del proxy (en el caso que se necesite especificar configuración de proxy)

PROXYPORT=8080

PROXYUSER:
Corresponde al usuario del proxy (en el caso que se necesite especificar configuración de proxy)

PROXYUSER=user

PROXYPASS:
Corresponde al password del proxy (en el caso que se necesite especificar configuración de proxy)

PROXYPASS=pass

STATIC-COOKIE:

Establece cookies estáticas a las peticiones realizadas con Nikto, se pueden especificar varias separandolas con “;”
STATIC-COOKIE=»nikpassed»=»true»;»nikdone»=»true»

CHECKMETHODS:

Nikto intentará identificar servidores web enviando peticiones por medio de determinados métodos HTTP, con esta opción se establecen los métodos soportados por el protocolo y que Nikto utilizará para realizar el escaneo.

CHECKMETHODS=HEAD GET POST

EXECDIR:
Directorio raíz de Nikto, similar a la variable $HOME en sistemas GNU/Linux

EXECDIR=/opt/nikto

PLUGINDIR:
Directorio donde se encuentran los plugins de Nikto

PLUGINDIR=EXECDIR/plugins

TEMPLATEDIR:
Directorio donde se encuentran plantillas XML/HTML

TEMPLATEDIR=EXECDIR/plugins

DOCDIR:
Directorio donde se encuentran documentos utilizados por Nikto (por ejemplo diccionarios para ataques de fuerza bruta)

DOCDIR=EXECDIR/plugins

RFIURL:
Esta opción esta directamente relacionada con los Test de inclusión remota de código, se trata de una ruta completa donde se especifica un fichero con la invocación a la función PHP phpinfo() , Nikto analizará la salida de la ejecución de dicho comando para determinar si el RFI (Remote File Inclusion) ha sido exitosa.
En el sitio oficial de Nikto se incluye un fichero de inclusión remota en: http://cirt.net/rfiinc.txt? Sin embargo se aconseja utilizar uno propio.

RFIURL=http://localhost/rfi.txt?

donde el fichero rfi.txt contiene simplemente:
<?php phpinfo(); ?>

Finalmente un fichero de configuración adecuado puede ser:

SKIPPORTS=21 22 25 111

USERAGENT=Mozilla/4.75 (Nikto/@VERSION) (Evasions:@EVASIONS) (Test:@TESTID)

RFIURL=http://localhost/rfiinc.txt?

SKIPIDS=

DEFAULTHTTPVER=1.1

UPDATES=no

CIRT=174.142.17.165

PROXYHOST=127.0.0.1

PROXYPORT=80

PROXYUSER=

PROXYPASS=

STATIC-COOKIE=»nikpassed»=»true»;»nikdone»=»true»

CHECKMETHODS=HEAD GET POST

EXECDIR=/opt/nikto

PLUGINDIR=/opt/nikto/plugins

TEMPLATEDIR=/opt/nikto/templates

DOCDIR=/opt/nikto/docs

@@MUTATE=dictionary;subdomain

@@DEFAULT=@@ALL;-@@MUTATE;tests(report:500)