ACTUALIZADO A DÍA 01/02/2021

TÉCNICAS DE ESCANEO CON NIKTO

Tuning Nikto

Las opciones de Tuning controlan los test que ejecuta Nikto contra un objetivo, por defecto todos los test son ejecutados, sin embargo, con la opción -tuning (-T) se puede especificar cuales de los test deben de ser ejecutados por Nikto en el caso de que sea de interés solamente ejecutar algunos.

Cada test esta identificado por el siguiente listado de argumentos que identifican el test que debe ejecutar Nikto, la opción -Tunning admite varios argumentos, de esta forma se pueden declarar mas de uno de los test definidos.

VALOR

TEST

0

File Upload

1

Ficheros Interesantes/Visualizar los Logs

2

Malas Configuraciones/Ficheros por defecto

3

Revelación de Información

4

Inyección XSS y  HTML Injection

5

Recuperación de Archivos remotos/Interior del directorio Web raíz

6

Denegación del Servicio

7

Recuperación de Archivos remotos/ Directory listing

8

Ejecución de Comandos/Consola Remota

9

Inyección SQL

a

Salto de Autenticación

b

Identificación de Software

c

Inclusión Remota de Código

x

Opciones de Tuning inversas (por ejemplo: incluir todas menos las especificadas)

Cuando se emplea la opción x, todas las opciones siguientes son omitidas por Nikto, algunos ejemplos de estas opciones son:

Ejecutar Inyección SQL, Salto de autenticación e Inyección XSS

./nikto.pl -h 127.0.0.1 -T 9a4 -nolookup

Ejecutar Inyección XSS y excluir Inclusión remota de Código

./nikto.pl -h 127.0.0.1 -T 4xc -nolookup -nocache

Plugins en Nikto

Los plugins en Nikto permiten ejecutar rutinas en el escaneo activo, permite la combinación de varios plugins para diversos fines, estos permiten extender las funcionalidades de las opciones estándar de Nikto, lo que quiere decir, que en muchos casos algunas opciones se encuentran deprecadas y se recomienda utilizar un Plugin existente.

Los plugins en Nikto pueden consultarse con la opción -list-plugins:

Como puede verse, existen plugins independientes que pueden usarse directamente con la opción -Plugin y Macros definidas que combinan una serie de plugins ya creados, a excepción del macro @@NONE que indica que no se usará ningún Macro.
La forma en la que se debe especificar un Plugin es la siguiente:

nombrePlugin(nombre_parametro1:valor_parametro1,valor_parametro2:valor_parametro2,otros_parametros)

A modo de ejemplo, el plugin test tiene la siguiente información con el comando -list-plugins

Plugin: tests

Nikto Tests – Test host with the standard Nikto tests

Written by Sullo, Deity, Copyright (C) 2008 CIRT Inc.

Options:

report: Report a status after the passed number of tests

passfiles: Flag to indicate whether to check for common password files

all: Flag to indicate whether to check all files with all directories

Para el plugin test, existen 3 parámetros distintos: report, passfiles,all

Un ejemplo sobre cómo usar este plugin puede ser:

./nikto.pl -host localhost -Plugins «test(report:500,verbose)»

./nikto.pl -host localhost -Plugins «test(passfiles,verbose)»

./nikto.pl -host localhost -Plugins «test(all,verbose)»

En las opciones adicionales de todos los Plugins se pueden especificar los argumentos verbose y debug para generar una salida del escaneo mas detallada, por ejemplo:

./nikto.pl -host http://localhost -Plugins «apache_expect_xss(verbose,debug)»

./nikto.pl -host http://localhost -Plugin «apacheusers(enumerate,home,dictionary:/home/userlist.lst,verbose)»

./nikto.pl -h localhost -Plugins «outdated(verbose,debug)»

./nikto.pl -h localhost -Plugins «cookies(verbose,debug)»

./nikto.pl -h localhost -Plugins «httpoptions(verbose,debug)»

Finalmente, la opción -Format, no funciona de la forma esperada cuando se especifica la opción -Plugins, ya que los reportes relacionados con los plugins ejecutados, también son tratados como plugins por Nikto, por esta razón existen los siguientes plugins para reportes:

report_csv: Genera Reportes CSV

report_html: Genera Reportes HTML

report_text: Genera Reportes de texto

report_xml: Genera Reportes XML

report_nbe: Genera Reportes NBE (Formato Nexpose/Nessus)

report_msf: El reporte se registra en Metasploit.

Estos plugins se usan en conjunto con la opción -output, del mismo modo como ya se ha indicado anteriormente.

./nikto.pl -host http://localhost -Plugins «apache_expect_xss(verbose,debug);report_xml» -o /home/reporte.xml

./nikto.pl -host http://localhost -Plugins «apache_expect_xss(verbose,debug);report_nbe» -o /home/reporte.nbe

./nikto.pl -host http://localhost -Plugins «apache_expect_xss(verbose,debug);report_text» -o /home/reporte.txt

./nikto.pl -host http://localhost -Plugins «apache_expect_xss(verbose,debug);report_csv» -o /home/reporte.csv

./nikto.pl -host http://localhost -Plugins «apache_expect_xss(verbose,debug);report_html» -o /home/reporte.html

./nikto.pl -host http://localhost -Plugins «apache_expect_xss(verbose,debug);report_msf» -o msf:password@http://127.0.0.1:55553/RPC2 -Format msf

Técnicas de Mutación

La técnica de mutación combina varios Test para intentar “adivinar” valores. Estas técnicas utilizan varias combinaciones que en algunos casos pueden llevar bastante tiempo cuando se ejecutan contra un objetivo determinado, dado que frecuentemente se asocian con ataques de fuerza bruta. A partir de la versión 2.1.4 de Nikto esta opción se encuentra deprecada, se recomienda que en su lugar se utilice la opción -Plugins.

al igual que algunas opciones de Nikto, esta opción admite uno o varios argumentos para definir su comportamiento ante las combinaciones de estos argumentos, a continuación se listan los que se encuentran soportados por la opción -mutate:

1 : Prueba todos los ficheros con todos los directorios raíz:

2 : Intenta obtener claves para un fichero de usuarios determinado

3 : Intenta enumerar nombres de usuarios del sistema por medio de apache (Peticiones tipo /~user)

4 : Intenta enumerar nombres de usuarios del sistema por medio de cgiwrap (Peticiones tipo /cgi-bin/cgiwrap/~user)

5 : Intenta ejecutar un ataque de fuerza bruta a nombres de subdominios, asumiendo que el nombre del host especificado con la opción -h corresponde al dominio principal.

6 : Intenta obtener nombres de directorios desde un diccionario especificado.

Por otro lado la opción mutate-options suministra información adicional a la opción -mutate como por ejemplo en algunos casos un diccionario para las opciones de fuerza bruta que lo requieren.

Como se ha indicado anteriormente, las opciones -mutate y -mutate-options se encuentran depreciadas en Nikto 2.1.4, en lugar de esto se utilizan los siguientes plugins:

1 tests(all)

2 tests(passfiles)

3 apacheusers(enumerate,home[,dictionary:dict.txt]

4 apacheusers(enumerate,cgiwrap[,dictionary:dict.txt]

5 subdomain

6 dictionary(dictionary:dict.txt)


Existen otros posts interesantes sobre Nikto en éste blog que a lo mejor te puede interesar leer. Por ejemplo, si quieres conocer los conceptos básicos de Nikto o las opciones para Personalizar Nikto estos enlaces pueden ser de ayuda.

Un saludo y Happy Hack!
Adastra.