Escaneo de Vulnerabilidades en Cualquier Sitio Web Usando Nikto

Usar Nikto

Antes de atacar cualquier sitio web, un hacker o especialista en Pentetration Test primero compilará toda la información necesaria como comenzar. Después de que hayan hecho un buen reconocimiento y encontrado los lugares adecuados para apuntar su alcance, utilizará una herramienta de escaneo de servidores web como Nikto para buscar vulnerabilidades que podrían ser vectores potenciales de ataque.

Nikto es un escáner de servidores web sencillo y de código abierto que examina un sitio web e informa sobre las vulnerabilidades que ha encontrado y que se pueden utilizar para explotar o hackear el sitio. Además, es una de las herramientas de vulnerabilidad de sitios web más utilizadas en la industria, y en muchos círculos, considerada el estándar de la industria.

Aunque esta herramienta es extremadamente efectiva, no es sigilosa (stealthy) en absoluto. Cualquier sitio con un sistema de detección de intrusos u otras medidas de seguridad detectará que está siendo escaneado. Inicialmente diseñado para pruebas de seguridad, el sigilo nunca fue una preocupación para este soft.

La manera correcta de usar Nikto

Si ejecuta Nikto por sí mismo en un sitio web específico, es posible que no sepa qué hacer con la información del análisis. Nikto es en realidad más como un primer paso para llamar a un golpe mucho más grande.

Primero, hablemos de la superficie del objetivo (target surface). Esto es casi cualquier lugar donde un hacker intente atacar y podría incluir cosas como impresoras expuestas a la red o un servidor web. Cuando lleguemos a usar Nikto más tarde, en relación al objetivo, tendremos que proporcionarle alguno de los siguientes datos: una dirección IP para un servicio local, un dominio web para atacar o un sitio web SSL/HTTPS.

Antes de comenzar el escaneo con Nikto, quizás es mejor hacer un reconocimiento adicional utilizando una herramienta de inteligencia de código abierto como Maltego. Herramientas como ésta pueden ayudar a crear un perfil y una lista más centrada de objetivos disponibles en los que se debería concentrar la atención. Una vez hecho esto, Nikto puede ser usado para afinar las vulnerabilidades potenciales de los objetivos de la lista.

Con algo de suerte, se encontrará una vulnerabilidad con su respectivo exploit, lo que significa que ya existe una herramienta para aprovechar la debilidad. Con la herramienta adecuada, que explotará automáticamente la vulnerabilidad, un hacker puede acceder al objetivo para realizar cualquier número de ataques entre bastidores, como añadir código para realizar una actividad maliciosa.

Instalar Nikto

Si estás usando Kali Linux, Nikto viene preinstalado, así que no tienes que descargar o instalar nada. Se ubicará en la categoría “Vulnerability Analysis”. Si no lo tienes por alguna razón, puedes obtener Nikto desde su GitHub o simplemente usar el comando apt install.

Si lo quieres instalar en una MAC, puedes usar Homebrew.

Usar la Sintaxis Básica de Nikto

Nikto tiene muchas opciones, pero para nuestros propósitos, nos ceñiremos a la sintaxis básica de la siguiente manera. Sustituiremos el <IP o nombre de host> por la dirección IP real o el nombre de host sin corchetes angulares.

Sin embargo, Nikto es capaz de realizar un análisis que puede ir tras el SSL y el puerto 443, el puerto que utilizan los sitios web HTTPS (HTTP utiliza el puerto 80 de forma predeterminada). Por lo tanto, podemos realizar evaluaciones de vulnerabilidades en sitios que utilizan SSL, lo que hoy en día es casi un requisito para ser indexados en los resultados de búsqueda en Google.

Si sabemos que es un sitio SSL al que estamos apuntando, podemos especificarlo en Nikto para ahorrar tiempo en el análisis añadiendo -ssl al final del comando.

Escanear un sitio web habilitado para SSL

Por ejemplo, comencemos por escanear algún ejemplo para ver algunos de los tipos de información que un escaneo de Nikto mostrará. Después de que se conecta al puerto 443, vemos que hay información útil sobre el cifrado y una lista de otros detalles como que el servidor es Nginx, pero no hay una gran cantidad de datos interesantes aquí para nosotros.

Escanear una dirección IP

Ahora que hemos realizado un análisis rápido de un sitio web, intentemos usar Nikto en una red local para encontrar servidores incrustados, como una página de inicio de sesión para un enrutador o un servicio HTTP en otra máquina que es sólo un servidor sin sitio web. Para empezar, busquemos nuestra dirección IP usando ifconfig.

La dirección IP que queremos es la de “inet”. Entonces podemos ejecutar ipcalc en él para obtener nuestro rango de red. Si no tienes ipcalc, puede instalarlo con apt install ipcalc, luego inténtelo de nuevo. El rango estará al lado de “Network”, en mi caso, 192.168.0.0/24.

Ahora, vamos a querer ejecutar Nmap para encontrar servicios que se ejecutan en el rango de red. Escanearemos el puerto 80 con nuestro rango y añadiremos -oG (salida grepable) para extraer sólo los hosts que están funcionando, es decir, los que responden indicando que el puerto 80 está abierto. Entonces lo guardaremos todo en un archivo, que voy a llamar analisis.txt, pero que podría llamarse de cualquier forma.

Hay un pequeño truco que puede enviar todos los hosts directamente a Nikto para escanearlos. Usamos CAT para leer la salida almacenada en nuestro documento analisis.txt (o como lo llames). Luego está awk, una herramienta de Linux que ayudará a buscar el siguiente patrón, donde UP significa que el host está arriba e imprimir $2 significa imprimir la segunda palabra en esa línea para cada uno, es decir, sólo la dirección IP. Luego, enviamos esos datos a un nuevo archivo llamado targetIP.txt (o como quieras llamarlo).

Ahora podemos ver el contenido de nuestro nuevo archivo con cat para ver todas las direcciones IP que tienen el puerto 80 abierto.

Esto es perfecto para Nikto porque puede interpretar fácilmente archivos como este. Así que podemos enviar esta salida a Nikto con el siguiente comando.

Los resultados serán similares a los que obtuvimos al realizar el análisis SSL.

Escanear un sitio web HTTP

Hemos escaneado un sitio web seguro y una dirección IP en una red local, y ahora es el momento de ir tras un dominio web no seguro utilizando el puerto 80. Para este ejemplo, usaremos “afl.com.au”, que no estaba usando SSL en el momento de realizar este análisis.

Arriba, podemos ver que hay un servidor de Varnish y algunas cabeceras que ayudan a indicar cómo está configurado el sitio web. Sin embargo, lo más jugoso son los directorios encontrados que pueden ayudar a ver archivos de configuración que pueden contener credenciales u otras cosas que han sido mal configuradas y dejadas accesibles involuntariamente.

Los elementos con el prefijo OSVDB son vulnerabilidades reportadas en “Open Source Vulnerability Database” (un sitio que se cerró en 2016). Es similar a otras bases de datos de vulnerabilidades como SecurityFocus, Technet de Microsoft y Common Vulnerabilities and Exposures. En este caso consultaremos “the National Vulnerability Database“.

Aunque no hay nada importante que se pueda explotar de este análisis, si lo hubiera, puede utilizar la herramienta de CVE reference tool para traducir el identificador OSVDB a una entrada CVE, de modo que puede utilizar uno de los otros sitios anteriores para leer más acerca de la vulnerabilidad.

Digamos que encontramos algunos que vale la pena explorar, como CVE-2018-10933, una vulnerabilidad de Libssh. El CVE contiene información sobre lo que se puede explotar, cuál es la puntuación de gravedad (por ejemplo, crítica) y alguna otra información que puede ayudar a determinar un vector de ataque. Si es algo que vale la pena usar, puedes buscar en Metasploit, ya que es probable que alguien ya haya desarrollado un módulo para que lo explote más fácilmente.

 CVE-2018-10933Pair Scans con Metasploit

Una de las mejores cosas de Nikto es que puedes exportar información a un formato que Metasploit pueda leer. Para ello, basta con utilizar los comandos anteriores para realizar el escaneo, pero añadiendo -Format msf+ al final de los mismo.

Por lo tanto, en esta guía, pasamos de determinar la superficie del objetivo a encontrar una vulnerabilidad y luego encontrarle su respectivo exploit para no tener que hacer todo el trabajo. Dado que Nikto no es una herramienta sigilosa (stealthy), es aconsejable realizar este tipo de escaneos desde una VPN, a través de Tor, u otro tipo de servicio para que su dirección IP real no se marque por comportamiento sospechoso.

Fuente: https://null-byte.wonderhowto.com/how-to/scan-for-vulnerabilities-any-website-using-nikto-0151729/

 

 

 

 

 

 

https://null-byte.wonderhowto.com/how-to/scan-for-vulnerabilities-any-website-using-nikto-0151729/

 

Comentarios