Escanee su servidor web en busca de vulnerabilidades, una mala configuración en FREE con Nikto scanner

el97% de las aplicaciones analizadas por Trustwave presentaban uno o más puntos débiles.

trustwave-vulnerable-applications

Y el 14% de las intrusiones investigadas se debieron a una mala configuración. Una mala configuración puede acarrear graves riesgos.

trustwave-factors

Existen varios escáneres de vulnerabilidades en línea para probar sus aplicaciones web en Internet. Sin embargo, si lo que desea es probar aplicaciones de Intranet o aplicaciones internas, puede utilizar el escáner web Nikto.

Nikto es un escáner de código abierto y puede utilizarlo con cualquier servidor web (Apache, Nginx, IHS, OHS, Litespeed, etc.). Parece una herramienta interna perfecta para el escaneado de servidores web. Es capaz de escanear más de 6700 elementos para detectar errores de configuración, archivos peligrosos, etc. y algunas de sus características incluyen;

  • Puede guardar el informe en HTML, XML, CSV
  • Soporta SSL
  • Escanea múltiples puertos en el servidor
  • Encuentra subdominios
  • Enumeración de usuarios Apache
  • Comprueba si hay componentes obsoletos
  • Detecta sitios de estacionamiento

Empecemos con la instalación y cómo utilizar esta herramienta.

Hay muchas formas de utilizar Nikto.

  • Usando Kali Linux
  • Contenedor Docker
  • Utilice el binario en una distro basada en UNIX o en Windows.

Nota: realizar el escaneo hace muchas peticiones a su servidor web. Usted reconoce el riesgo y realizar contra sólo sus servidores.

Uso de Nikto en Kali Linux

Como está incorporado en Kali, no necesita instalar nada.

  • Inicie sesión en Kali Linux
  • Vaya a Aplicaciones >> Análisis de vulnerabilidades y haga clic en nikto

kali-linux-nitko

Se abrirá el terminal donde podrá ejecutar el escaneo contra su servidor web. Hay múltiples sintaxis que puede utilizar para ejecutar el escaneo. Sin embargo, la forma más rápida de hacerlo es la siguiente.

# nikto -h $webserverurl

No olvide cambiar $webserverurl por la IP o FQDN real de su servidor web.

root@Chandan:~# nikto -h thewebchecker.com
- Nikto v2.1.6
---------------------------------------------------------------------------
  IP de destino: 128.199.222.244
  Nombre de host de destino: thewebchecker.com
  Puerto de destino: 80
  Hora de inicio: 2016-08-22 06:33:13 (GMT8)
---------------------------------------------------------------------------
  Servidor: Apache/2.4.18 (Ubuntu)
  El servidor filtra inodos a través de ETags, encabezado encontrado con el archivo /, campos: 0x2c39 0x53a938fc104ed
  El encabezado anti-clickjacking X-Frame-Options no está presente.
  La cabecera X-XSS-Protection no está definida. Este encabezado puede dar una pista al agente de usuario para protegerse contra algunas formas de XSS
  La cabecera X-Content-Type-Options no está definida. Esto podría permitir al agente de usuario renderizar el contenido del sitio de forma diferente al tipo MIME
  No se han encontrado directorios CGI (utilice '-C all' para forzar la comprobación de todos los posibles dirs)
  Métodos HTTP permitidos: GET, HEAD, POST, OPTIONS
  Cabecera poco común 'x-ob_mode' encontrada, con contenido: 1
  OSVDB-3092: /manual/: Manual del servidor web encontrado.
  OSVDB-3268: /manual/images/: Directorio indexado encontrado.
  OSVDB-3233: /icons/README: Archivo por defecto de Apache encontrado.
  /phpmyadmin/: Directorio phpMyAdmin encontrado
  7596 peticiones: 0 error(es) y 10 item(s) reportados en el host remoto
  Hora de finalización: 2016-08-22 06:54:44 (GMT8) (1291 segundos)
---------------------------------------------------------------------------
  1 host(es) comprobado(s)

Como puede ver el escaneo anterior es contra la configuración por defecto de Apache 2.4, y hay muchos elementos que necesitan atención.

Puede consultar mi guía Apache Security & Hardening Guide para solucionar estos problemas.

Uso de Nikto en CentOS

  • Inicie sesión en CentOS o en cualquier sistema operativo basado en Linux
  • Descargue la última versión desde Github utilizando wget
wget https://github.com/sullo/nikto/archive/master.zip .
  • Extraiga utilizando el comando unzip
unzip maestro.zip
  • Se creará una nueva carpeta llamada «nikto-master»
  • Vaya dentro de la carpeta nikto-master > programa
cd nikto-master/programa
  • Ejecute nikto.pl con el dominio de destino

Una vez instalado ejecute nikto y debería ir bien. Esta vez, ejecutaré un escaneo contra el servidor web Nginx para ver cómo se comporta.

./nikto.pl -h $DIRECCIONIP
[root@lab programa]# ./nikto.pl -h XX.XX.137.171
- Nikto v2.1.6
---------------------------------------------------------------------------
  IP de destino: XX.XX.137.171
  Nombre de host de destino: XX.XX.137.171
  Puerto de destino: 80
  Hora de inicio: 2020-06-07 07:39:40 (GMT0)
---------------------------------------------------------------------------
  Servidor: nginx/1.14.1
  El encabezado anti-clickjacking X-Frame-Options no está presente.
  La cabecera X-XSS-Protection no está definida. Este encabezado puede dar una pista al agente de usuario para protegerse contra algunas formas de XSS
  La cabecera X-Content-Type-Options no está definida. Esto podría permitir al agente de usuario renderizar el contenido del sitio de forma diferente al tipo MIME
  No se han encontrado directorios CGI (utilice '-C all' para forzar la comprobación de todos los posibles dirs)
  /httpd.conf: Fichero de configuración httpd.conf de Apache
  /httpd.conf.bak: Archivo de configuración httpd.conf de Apache
  8075 peticiones: 0 error(es) y 5 item(s) reportados en el host remoto
  Hora de finalización: 2020-06-07 07:39:50 (GMT0) (10 segundos)
---------------------------------------------------------------------------
  1 host(es) probado(s)
[root@lab programa]#

Así que como puede ver Nginx por defecto, la configuración del servidor web también es vulnerable y esta guía de seguridad le ayudará a mitigarlos.

Solución de problemas

Puede encontrarse con el siguiente error cuando se ejecuta en CentOS y si es así puede solucionarlo como se explica a continuación.

ERROR -1

 ADVERTENCIA: Falta el módulo JSON::PP. -No se puede utilizar la funcionalidad Savedir y Replay.

O

ERROR: Módulo requerido no encontrado: Getopt::Long
ERROR: Módulo requerido no encontrado: Time::Local
ERROR: Módulo requerido no encontrado: Time::HiRes qw(sleep ualarm gettimeofday tv_interval)

Si está recibiendo la advertencia anterior, entonces necesita instalar el módulo Perl de la siguiente manera.

# yum install perl-CPAN*

o utilizando DNF si utiliza CentOS 8

# dnf install perl-CPAN*

ERROR – 2

perl: advertencia: Setting locale failed.

Para ello, necesita exportar la configuración regional en el terminal como se explica aquí.

export LC_CTYPE=es_US.UTF-8
export LC_ALL=es_US.UTF-8

ERROR – 3

No se puede localizar bignum.pm en @INC (puede que necesite instalar el módulo bignum)

Necesita instalar el módulo bignum de Perl.

# yum install perl-bignum

o usando DNF si CentOS 8

# dnf install perl-bignum

Conclusión

Siga adelante y juegue con el software Nikto y si está interesado en aprender más entonces eche un vistazo a este curso de hacking y pruebas de penetración.