Escaneo web con Nikto. SEGURIDAD

Nikto es una herramienta de escaneo de servidores web que se encarga de efectuar diferentes tipos de actividades tales como, detección de malas configuraciones y vulnerabilidades en el servidor objetivo, detección de ficheros en instalaciones por defecto, listado de la estructura del servidor, versiones y fechas de actualizaciones de servidores, tests de vulnerabilidades XSS, ataques de fuerza bruta por diccionario, reportes en formatos txt, csv, html, etc.
Nikto es un proyecto robusto que lleva varios años en desarrollo y se encuentra en constante evolución. Unas de las características mas interesantes de esta herramienta son la posibilidad de generar reportes en distintos formatos, la integración con LibWhisker (Anti-IDS), integración con Metasploit, entre otras.
Nikto no esta diseñado para ser una herramienta cuatelosa. Puede probar un servidor web en el menor tiempo posible, pero es obvio en los archivos de los logs. Aunque tiene soporte para métodos anti deteccion de intrusos por si desean probarlo o probar su sistema de deteccion de intrusos que tiene actualmente.

Como instalar Nikto.
Lo primero que tenemos que hacer es instalar el perl y openssl para darle soporte ssl a Nikto. para esto corremos el siguiente comando como root.
#yum install openssl perl
o
#apt-get install openssl perl

Una vez instalemos esto, bajamos a Nikto desde la pagina oficial en una carpeta que desee. En este caso voy a usar /tmp
#cd /tmp
#wget http://cirt.net/nikto/nikto-2.1.5.tar.gz
#tar -xzvf nikto-2.1.5.tar.gz

Aqui se nos creará un carpeta con el script de nikto, accesamos a ella.
#cd /nikto-2.1.5
uso básico de Nikto
Sintaxis
perl nikto.pl  -h [direccion host] [Opciones]
Opciones
-config: Indica un archivo de configuración distinto al que tenemos en el directorio de instalación config.txt.
-Cgidirs: Escanea los directorios CGI. Las palabras claves ‘all’ o ‘none’ pueden utilizarse para escanear todos los directorios o ninguno respectivamente.
cgi/ /cgi-a/”
-dbcheck : Comprueba posibles errores en nuestra base de datos.
-Display+ :Controlar la salida que Nikto muestra. Consulte el Capítulo 5 para obtener información detallada sobre estas opciones. Utilice el número de referencia o una carta para especificar el tipo. Se pueden usar múltiples:
1 – Mostrar redirecciones
2 – Mostrar las cookies recibidas
3 – Mostrar todas las respuestas 200/OK
4 – Mostrar URLs que requieren autenticación
D – Salida de depuración
E – Muestra todos los errores HTTP
P – Imprimir el progreso en STDOUT
V – Salida detallada

-evasion+ :Habilita la detección de intrusiones por medio de técnicas de evasión (consultar documentación de LibWhisker para más información). Para elegir un tipo de detección, utilice los siguientes números (se podrían usar varios al mismo tiempo):
1 – codificación URI aleatoria (no-UTF8)
2 – Directorio de autorreferencia (/ /).
3 – La eyaculación URL final
4 – Anteponer cadena aleatoria larga
5 – parámetro falso
6 – TAB como petición espaciador
7 – Cambiar el caso de la URL
8 – Usar separador de directorio de Windows (\)
A – Utilizar un retorno de carro (0x0D) como separador petición
B – Utilice 0x0b valor binario como espaciador petición

- Format+ Guarde el archivo de salida especificado con la opción-o en este formato (salida). Si no se especifica, el valor por omisión se toma de la extensión de archivo especificado en la opción-output. Los formatos válidos son:
csv – una lista separada por Separado
htm – un informe HTML
msf – Ingresar a Metasploit
txt – un informe de texto
xml – un informe XML

- host+Anfitrión (s) de destino. Puede ser una dirección IP, nombre de host o archivo de texto de los ejércitos. Un único guión (-) puede ser usado para stdin. También se puede analizar la salida estilo nmap-og
- Help Muestra información de ayuda ampliada.
- id+ ID y la contraseña que se utilizará para la autenticación del host básico de acogida. El formato es “id password”.

ass:realms
-list-plugins Listará todos los plugins que Nikto puede ejecutar contra objetivos y luego se cerrará sin realizar un análisis. Estos pueden ajustarse para una sesión usando los -Plugins opción.
El formato de salida es:

Programas name
full name – description
Escrito por el author , Copyright (C) copyright

-mutate Especifique técnica de mutación. Una mutación causará Nikto para combinar las pruebas o intentar adivinar valores. Estas técnicas pueden causar una enorme cantidad de pruebas que se lanzará contra el objetivo. Utilice el número de referencia para especificar el tipo, múltiple se puede utilizar:
1 – Análisis de todos los archivos de todos los directorios raíz
2 – Supongo que para los nombres de archivo de contraseñas
3 – Enumerar los nombres de usuario a través de Apache (/ ~ peticiones de tipo de usuario)
4 – Enumerar los nombres de usuario a través de cgiwrap (/ cgi-bin/cgiwrap / ~ peticiones de tipo de usuario)
5 – Intento de nombres de sub-dominios de fuerza bruta, supongamos que el nombre de host es el dominio principal
6 – Tratar de adivinar los nombres de directorio desde el archivo de diccionario suministrado

-mutate-options Proporcionar información adicional por muta, por ejemplo, un archivo de diccionario
-output Escribe la salida en el archivo especificado. El formato utilizado se tomará de la extensión de archivo. Esto puede ser sobre-riden utilizando la opción-formato (por ejemplo, para escribir archivos de texto con un Extenstion diferente. Archivos existentes tendrán nueva información adjunta.
Un solo punto (.) Se puede especificar el nombre del archivo de salida, en cuyo caso se generará automáticamente el nombre de archivo basado en el objetivo de ser probado. Tenga en cuenta que se requiere la opción-Formato cuando se utiliza esta. El esquema es: nikto_HOSTNAME_PORT_TIMESTAMP.FORMAT
Para ‘-Format msf “la opción de salida toma un significado especial. Debe contener la contraseña y la ubicación del servicio de Metasploit RPC. Por ejemplo, puede ser: ‘-o msf: <contraseña> @ http://localhost:55553/RPC2
-nocache Desactivar la caché de respuesta
-nossl No utilizar SSL para conectarse al servidor.
-no404 Desactive 404 (archivo no encontrado) la comprobación. Esto reducirá el número total de solicitudes realizadas al servidor web y puede ser preferible al comprobar un servidor a través de un vínculo lento, o un dispositivo integrado. En general, esto conducirá a más falsos positivos que se descubran.
-port + El puerto TCP (s) para apuntar. Para probar más de un puerto en el mismo host, especifique la lista de puertos en la opción-p (puertos). Los puertos se pueden especificar como un rango (es decir, 80-90), o como una lista separada por comas, (es decir, 80,88,90). Si no se especifica, el puerto 80 se utiliza.
-Plugins+ Seleccione el que se ejecutarán los plugins en los objetivos especificados. Una lista separada por punto y coma debe proporcionarse el que se enumeran los nombres de los plugins. Los nombres se pueden encontrar mediante el uso-list-plugins.
Hay dos entradas especiales: @ @ ALL, que especifica todos los plugins se ejecutan y @ @ NINGUNO, que especifica ningún plugins se ejecutan. El valor predeterminado es @ @ DEFAULT

-root + Anteponer el valor especificado al principio de cada solicitud. Esto es útil para aplicaciones de prueba o servidores web que tienen todos sus archivos bajo un directorio determinado.
ory
-ssl Sólo probar SSL en los puertos especificados. Con esta opción se acelerará dramáticamente peticiones a puertos HTTPS, ya que de lo contrario la solicitud HTTP tendrá que timeout primero.
-Single Unico modo de respuesta
-timeout+ Segundos de espera antes de que se agote el tiempo una solicitud. Tiempo de espera predeterminado es de 10 segundos.
-Tuning+ Opciones de optimización controlarán la prueba que Nikto utilizará contra un objetivo. De forma predeterminada, se realizan todas las pruebas. Si no se especifica ninguna opción, se llevarán a cabo únicamente las pruebas. Si se utiliza la opción de “x”, que será invertir la lógica y excluir sólo aquellas pruebas. Utilice el número de referencia o una carta para especificar el tipo, múltiple se puede utilizar:
0 – Subir archivo
1 – El archivo Interesante / Visto en los registros
2 – Mala configuración / archivo predeterminado
3 – Divulgación de información
4 – Inyección (XSS / Guión / HTML)
5 – Recuperación de archivos remotos – Inside Root Web
6 – Denegación de servicio
7 – Recuperación de archivos remoto – Servidor ancha
8 – Ejecución de comandos / Shell remoto
9 – Inyección SQL
a – Bypass de autenticación
b – Identificación de Software
c – Inclusión Fuente remoto
x – Opciones de optimización inversa (es decir, incluyen todos excepto especificado)
La cadena dada será analizada de izquierda a derecha, los personajes de x se aplicarán a todos los caracteres a la derecha del carácter.

-update Actualización de los plugins y bases de datos directamente desde cirt.net.
-vhost Especifique el encabezado de host que se enviará a la meta.
-Version Muestra las versiones de software, plugins y base de datos de Nikto.
Usando Nikto.
dirección IP
 perl nikto.pl -h 127.0.0.1
Portal Web
perl nikto.pl -h ejemplo.com
dirección IP, especificando puerto:
perl nikto.pl -h 127.0.0.1:80
dirección IP especificando puerto(s) y protocolo
perl nikto.pl -h 127.0.0.1 -p 443,80,8080 -ssl
Especificando múltiples Objetivos
perl nikto.pl -h archivoobjetivos
El Arhcivo de objetivos contiene un objetivo por linea
características interactivas
Durante el proceso de escaneo, Nikto permite la interacción del usuario para diferentes acciones sobre la ejecución activa simplemente presionando determinadas teclas mientras se ejecuta el comando, se pueden obtener diferentes resultados que pueden ser útiles para obtener información detallada en un momento dado, las opciones contenidas en Nikto para interacción con el usuario en el transcurso del escaneo son:
Espacio: Estado actual del Escaneo.
v: Activar o Desactivar el modo Verbose

d: Activa o Desactiva el modo debug
e: Activar o desactivar mensajes sobre reportes de error
p: Activar o desactivar mensajes sobre progreso de de reportes
r: Activar o desactivar mensajes sobre re direcciones en la pantalla
c: Activar o desactivar mensajes sobre cookies en la pantalla
o: Activar o desactivar mensajes sobre las peticiones correctas (retorno código http 200)
a: Activar o desactivar mensajes sobre intentos de autenticación
q: Finalizar la ejecución de Nikto
N: Continuar con el siguiente Host, si no existe, finalizar con la ejecución de programa.
P: Pausar la ejecución del comando
Nikto es una poderosa herramienta y que podemos utilizar para probar nuestra seguridad. Aqui les mostre su uso básico y capaz de detectar y mostrar muchas vulneraribilidades.Pueden consultar el manual completo en ingles de Nilkto en su página oficial

Comentarios

Entradas más populares de este blog

Que es la Seguridad de Información?

Instalando ModSecurity en Linux CentOS y Apache

Instalando Citrix XenServer 6.2, Paso a Paso.