Cargando



Escanear vulnerabilidades en servidores web con Nikto

Nikto es un escaner para detectar vulnerabilidades en servidores y sitios web. Aquí tienes el tutorial para enseñarte todas sus funciones y como utilizarlo.


dic 21 2015 22:32
Avanzado
dic 22 2015 10:31

Nikto es una herramienta muy utilizada por quienes realizan actividades de ethical hacking y pentest o test de penetración. Nikto se puede ejecutar cualquier plataforma que permita ejecutar Perl y puede evadir sistemas de detección de intrusos (IDS).

 

Nikto sirve para realizar el control de vulnerabilidades CGI, pero lo hace de una manera evasiva, con el fin de eludir los sistemas de detección de intrusos. Viene con documentación completa que debe ser cuidadosamente revisado antes de ejecutar el programa. Si tiene servidores web que sirven scripts CGI, Nikto puede ser un excelente recurso para el control de la seguridad de estos servidores.

 

panta00.jpg

 

Nikto tiene capacidad de identificar archivos potencialmente vulnerables o peligrosos, también puede identificar que hace o que servicios utiliza la aplicación que esta escaneando y también utiliza una base de datos con vulnerabilidades conocidas que contienen información para reconocer estas amenazas durante el escaneo.

 

Nikto es una herramienta que permite hace un análisis de un servidor web y examinar todos los archivos y servicios para encontrar posibles amenazas y vulnerabilidades de seguridad, incluyendo:

  • Configuraciones erróneas del servidor y del software utilizado
  • Identificar archivos y vulnerables predeterminados
  • Identificar archivos y software vulnerables

 

Nikto puede ser utilizado para escanear las versiones no actualizadas de los software que tenemos instalado en nuestro servido. Nikto nos brindara un análisis rápido para encontrar los archivos y programas potencialmente vulnerables en nuestro servidor o en nuestro sitio web.

 

Para ejecutar el Nikto necesitamos que nuestro servidor soporte Perl, en la mayoría de los casos lo soporta por defecto. Está disponible para todos los sistemas operativos como Linux, Unix, CentOS, Debian, Ubuntu, MacOSX. Windows y soporta SSL.

 

El resultado de escanear el servidor, es un reporte que pode generase en los siguientes formatos TXT, CSV para Excel, HTML, XML.

 

Podemos instalar Nikto descargandolo desde el repositorio de GitHUB Nikto

 

Luego descomprimimos el archivo descargado:

tar zxvf nikto-2.1.4.tar.gz
cd nikto-2.1.4
Ejecutamos con Perl:
perl nikto.pl
Si tenemos un sistema operativo como Ubuntu, Nikto se instala desde los repositorios:
sudo apt-get install nikto
A continuación actualizamos de la base de datos Nikto para acceder a la base de datos de escaneo y actualizar la lista de plugins disponibles.
nikto update

panta01.jpg

nikto -list-plugins

panta02.jpg

 

Nikto actualiza periódicamente sus repositorios para añadir versiones de cada uno y actualizar nuevas vulnerabilidades que van surgiendo. Como lo haría un antivirus, en este caso el repositorio utilizado por Nikto es la base de datos de vulnerabilidades en la web http://osvdb.org/

 

Análisis y Test de vulnerabilidades con Nikto

Escanearemos un servidor web utilizando para este tutorial, una instalación de BadStore que utilizamos en otro tutorial.

 

Comenzaremos escaneando una ip y el puerto 80 con la opción -p (port) para indicar el puerto a escanear

nikto  -h 192.168.0.12 -p 80

panta03.jpg

 

Mientras se realiza el escaneo nos mostrará información de vulnerabilidades que luego podemos buscar por su código en la pagina de Open Source Vulnerability Database (OSVDB) y ver de que se trata la vulnerabilidad y como solucionarla, por ejemplo, tenemos el código OSVDB-27487, vamos a la pagina de búsqueda e ingresamos el código numérico y hacemos clic en GO.

 

panta04.jpg

 

El resultado será un reporter muy completo sobre la vulnerabilidad, incidencias, soluciones al problema y estadísticas sobre cantidad de casos donde se ha detectado, inclusive la ultima fecha que se detecto la vulnerabilidad a gran escala.

 

panta05.jpg

 

A continuación escanearemos la integridad de archivos utilizando los siguiente parámetros:

  • d = modo de depuración
  • v = mostrar detalles
  • h = host a escanear
niktol -D v -h 192.168.0.12

panta06.jpg

 

Después del escaneo podemos observar que se encuentran errores en archivos o enlaces no encontrados en la web. Podemos incluir distintas opciones en cada escaneo como por ejemplo indicar que tarea queremos realizar, veremos solo algunos de los parámetros mas importantes para detectar vulnerabilidades.

 

3 - Divulgación de información
4 - Inyección XSS y Javascript
6 - Denegación de Servicio Scan
9 - Inyección SQL

 

A continuación haremos un ejemplo con la opción 3 para determinar que información tenemos publica mediante el siguiente comando:

nikto -Tuning 3 -h 192.168.0.12

panta07.jpg

 

Podemos observar que el escaneo ha encontrado algunas vulnerabilidades, que podrían permitir ataques XSS, donde se podría tomar el control remoto del servidor, en especial porque se permite el listado de algunos directorios.

 

panta08.jpg

 

También este tipo de vulnerabilidad es debido a que las URL con parámetros no se controlan:

http://midominio/?seccion=miseccion&opcion=101
La solución seria hacer url mas amigables y controlar los parámetros que se envían.

 

Un ataque que se podría realizar es incluir un código JavaScript capaz de leer las cookies del servidor y así tratar de obtener los datos de administrador, como por ejemplo:

http://midominio/?seccion=<script>alert(document.cookie)</script>&opcion=101


¿Te ayudó este Tutorial?


2 Comentarios


Ricardo Matos
dic 22 2015 13:28

Quiero probar Nikto, tiene buena pinta la verdad. Yo he usado otros para estas tareas de scan, ya os contaré.

¡Muy bueno el tutorial, Sergio!. Un 10 como siempre. ¡Gracias y un saludo!.

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X