Saltar al contenido

Análisis de CMS con Nikto

Ya vimos como podíamos realizar un escaneo de páginas realizadas con WordPress para encontrar posible vulnerabilidades:

también vimos como sería el proceso para páginas realizadas con Joomla:

Ahora veremos una herramienta que no es para un CMS en concreto y que nos permite encontrar vulnerabilidades independientemente de si el sitio web utiliza wordpress, joomla, droopal o moodle.

Nikto es un escáner de servidor web de código abierto (GPL) que realiza pruebas exhaustivas contra servidores web para múltiples elementos, incluidos más de 6700 archivos / programas potencialmente peligrosos, verifica versiones obsoletas de más de 1250 servidores y problemas específicos de versión en más de 270 servidores. También comprueba los elementos de configuración del servidor, como la presencia de múltiples archivos de índice, las opciones del servidor HTTP e intentará identificar los servidores web y el software instalados. Los elementos de escaneo y los complementos se actualizan con frecuencia y se pueden actualizar automáticamente.

Nikto no está diseñado como una herramienta sigilosa. Probará un servidor web en el menor tiempo posible, y es obvio en los archivos de registro o en un IPS / IDS. Es decir, su uso dejará rastro. Sin embargo, hay soporte para los métodos anti-IDS de LibWhisker en caso de que quiera probarlo (o probar su sistema IDS).

No todos los reportes son un problema de seguridad, aunque la mayoría lo son. Hay algunos elementos que son verificaciones de tipo «solo información» que buscan cosas que pueden no tener una falla de seguridad, pero que el webmaster o el ingeniero de seguridad pueden no saber que están presentes en el servidor. Estos elementos generalmente están marcados adecuadamente en la información impresa. También hay algunas comprobaciones de elementos desconocidos que se han visto escaneados en archivos de registro.

En primer lugar vamos a actualizarlo ya que constantemente van encontrando nuevas vulnerabilidades y las van a ir agregando a su base de datos por lo que es importante tener las nuevas actualizaciones.

Lo haremos con nikto -update

Como la versión es más reciente nos está indicando que lo debemos hacer a través de git.

Mientras que las versiones anteriores de Nikto usaban la opción -update, a partir de la versión 2.1.6, la herramienta git debería usarse para actualizar (e instalar) Nikto. La mayoría de los sistemas operativos tienen un instalador o paquete para git, y también existen muchos programas con funcionalidad de interfaz de usuario.

En mi caso no sería necesario actualizarlo ya que tengo la última versión. Podéis ver las actualizaciones en:

http://cirt.net/nikto/UPDATES/

Para realizar un escaneo, por ejemplo a la página oficial de Joomla, lo haríamos con nikto -h https://www.joomla.org

Al inicio del escaneo podemos ver la IP, el host, el puerto que está utilizando, información sobre el certificado SSL que está utilizando, el servidor…

Si probamos otra página veremos que nos encuentra más vulnerabilidades:

Nos muestra que no tiene una protección anti-clickjacking X-Frame-Options. Que X-XSS-Protection no está definidad. Que Strict-Transport-Security HTTP header tampoco está definido y que Expect-CT header no está presente.

Para que nos listase los plugins que utiliza la página usaríamos la opción nikto -list-plugins www.ejemplo.es

Otra opción interesante que podemos utilizar es mediante Tuning para ver un tipo de información concreta.

nikto -h www.ejemplo.es -Tuning opcion

Las diferentes opciones serían:

Scan tuning:

1 Interesting File / Seen in logs

2 Misconfiguration / Default File

3 Information Disclosure

4 Injection (XSS/Script/HTML)

5 Remote File Retrieval – Inside Web Root

6 Denial of Service

7 Remote File Retrieval – Server Wide

8 Command Execution / Remote Shell

9 SQL Injection

0 File Upload

a Authentication Bypass

b Software Identification

c Remote Source Inclusion

d WebService

e Administrative Console

x Reverse Tuning Options (i.e., include all except specified)