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) |