Nikto es una escaner Open Source de vulnerabilidades web, es capaz de detectar más de 6700 archivos maliciosos, revisar versiones desactualizadas en más de 1250 servidores y encontrar fallos sobre versiones especificas en más de 270 servidores.
Nikto también intenta detectar configuraciones del servidor y las versiones exactas de las tecnologías que usa Por defecto Nikto viene instalado en Kali Linux, sin embargo lo podemos descargar desde su repositorio en GitHub https://github.com/sullo/nikto/archive/master.zip
El comando más sencillo que podemos ejecutar es: nikto -h IP. El cuál asume que queremos escanear especificamente por el puerto 80.
Nikto también intenta detectar configuraciones del servidor y las versiones exactas de las tecnologías que usa Por defecto Nikto viene instalado en Kali Linux, sin embargo lo podemos descargar desde su repositorio en GitHub https://github.com/sullo/nikto/archive/master.zip
El comando más sencillo que podemos ejecutar es: nikto -h IP. El cuál asume que queremos escanear especificamente por el puerto 80.
Cómo utilizar Nikto para escanear vulnerabilidades de cualquier sitio web en Kali Linux
Cuando un probador de penetración o un analista de seguridad comienza a realizar pruebas de sitios web, el primer paso es realizar un reconocimiento de dónde obtendría información relacionada con el objetivo y, a partir de eso, puede identificar la superficie de ataque.
La superficie de ataque no es más que una suma total de vulnerabilidades que se pueden aprovechar para llevar a cabo un ataque de seguridad. Una vez que el analista identifica la superficie de ataque, utilizará algunas herramientas de escaneo web útiles para identificar mejor esas vulnerabilidades, que podrían convertirse en los principales vectores de ataque.
Hasta ahora, Nikto es uno de los escáneres de vulnerabilidades de sitios web más utilizados en la industria. Es un escáner de servidor web de código abierto que muestra un montón de vulnerabilidades encontradas en un sitio web que podrían explotarse. Por lo tanto, desempeña un papel principal para realizar la evaluación del sitio web y detecta posibles vulnerabilidades en un sitio para mantenerlo a salvo de un atacante.
Solo entendamos cómo funciona esto. Suponga que tiene una URL de un objetivo, al usar Nikto debe proporcionarle uno de los tres tipos diferentes de información, es decir, una dirección IP para un servicio local, un dominio web o un sitio web habilitado para SSL / HTTPS. Estas son las tres principales informaciones de destino que utiliza Nikto para investigar y buscar las vulnerabilidades.
Aunque no podemos negar la efectividad de esta herramienta, sin embargo, una de las principales desventajas de dicha herramienta es que no es sigilosa. Mientras realiza el escaneo en cualquier sitio web que tenga controles de seguridad habilitados como el Sistema de detección de intrusiones o el Sistema de prevención de intrusiones, se les notificará que están siendo escaneados.
Instalación de la herramienta Nikto
Puede instalar Nikto mediante apt-get install nikto, pero en Kali Linux está preinstalado en la categoría “Análisis de vulnerabilidad”.
Testing
Desde arriba podemos ver que tiene muchas opciones basadas en realizar diferentes tareas. Vamos a utilizar una sintaxis estándar, es decir, sustituyendo la IP del objetivo con el indicador -h y especificando -ssl para forzar el modo ssl en el puerto:
Esto muestra el escaneo rápido del sitio web de destino.
Ahora pruebe Nikto en una red local para encontrar servidores integrados, por ejemplo, una página de inicio de sesión para un enrutador o un servicio HTTP en otra máquina que es solo un servidor sin sitio web.
Después de obtener la IP, ejecute ipcalc para obtener el rango. Si no está instalado en su máquina, primero instálelo mediante: # apt-get install ipcalc y luego ejecute # ipcalc 192.168.0.109
Tenemos el rango, ahora estamos interesados en ejecutar Nmap para que podamos encontrar servicios que se ejecuten en ese rango de red.
Comencemos con el puerto 80 y escaneemos nuestro rango de red con él, también especifiquemos el indicador -oG (salida grepable) para eliminar todos los hosts que están en funcionamiento. Guarde la salida en un archivo llamado 'ehacking.txt'. Puedes nombrarlo como quieras.
Use el comando cat para leer la salida de nuestro archivo guardado
Use cat con 'awk', una herramienta de Linux que escaneará los patrones donde 'Up' significa que el puerto está abierto y el host está activo mientras que 'print 2 $' indicaría imprimir la segunda palabra para cada uno en esa línea, es decir , Dirección IP. Guarde esos datos en un nuevo archivo llamado 'targetIP.txt' ya que Nikto puede interpretar fácilmente archivos como este.
Estos son todos los hosts que tienen el puerto 80 activado. Ejecute Nikto en targetIP.txt.
Hasta ahora, hemos escaneado un sitio web habilitado para SSL y una dirección IP en una red local, ahora escaneemos un sitio web usando el puerto 80 (habilitado para HTTP), es decir, un dominio web no seguro:
Entonces, esto nos puede decir que está usando el servidor Varnish y algunos de los encabezados que indicarían la configuración del sitio web.
Las últimas entradas con el prefijo OSVDB (http://www.osvdb.org/) las vulnerabilidades informadas en la base de datos de vulnerabilidades de código abierto (este sitio se cierra en 2016).
puede usar la herramienta CVE(https://cve.mitre.org/data/refs/refmap/source-OSVDB.html)para convertir el identificador OSVDB en una entrada CVE para que pueda usar uno de los otros sitios anteriores para obtener más información sobre la vulnerabilidad. El CVE contiene información sobre lo que se puede explotar, cuál es la puntuación de gravedad (como crítica) y otra información que puede ayudar a acceder a un vector de ataque.
Las primeras lineas especifican que efectivamente se está haciendo escaneo a la IP indicada y por el puerto 80. Luego, Nikto logra detectar la versión exacta del servidor web remoto, extrae el header "x-powered-by" de las cabeceras HTTP de la consulta, lo que nos permite conocer la versión exacta de PHP, las siguientes lineas nos alertan de que la versión del servidor apache está desactualizada, de que logró encontrar archivos sensibles como /phpinfo.php y una instalación de phpMyAdmin, un sistema de administración para bases de datos MySQL que podría llegar a convertirse en un factor de ataque.
Si por ejemplo en los resultados de nuestros escaneos con Nmap hubieramos detectado otro servidor web corriendo por algun puerto como el 8080, o en el siguiente caso el 8180:
Podríamos lanzar un escaneo con Nikto hacia ese puerto especificandolo con la opción -p
Como vemos, el servidor corriendo por el puerto es Tomcat. Algo interesante es que Nikto logra detectar el panel de administración de Tomcat, por lo que podríamos proceder con un ataque de Password guessing, además de una instalación de WebDav, que podría ser explotada como vimos en la clase de Explotación de vulnerabilidades del curso de Introducción al Hacking ético.
Ventajas de Nikto
Una de las mejores cosas de Nikto es que puede exportar información a un formato que Metasploit pueda leer cuando esté escaneando. Para hacer eso, simplemente use los comandos anteriores para escanear, pero agregue -Format msf + al final. El formato nos permitirá emparejar datos rápidamente con un exploit armado.
Se trata de escanear el sitio web objetivo en busca de vulnerabilidades, desde identificar primero la superficie atacante y luego buscar esas vulnerabilidades que se pueden usar como un exploit armado.
Como esta herramienta no es sigilosa, se recomienda que utilice esta herramienta con una VPN o mediante un navegador TOR para ser anónimo y proteger su identidad.
Comentarios