viernes, 28 de agosto de 2009

Corriendo Nikto

Nikto es un scanner open source (GPL) que permite realizar test exhaustivos contra webservers que permiten detectar múltiples problemas incluyendo alrededor de 3500 archivos/CGIs potencialmente peligrosos y problemas específicos por versión de webserver en alrededor de 250 de ellas. Los ítems y plugins se actualizan regularmente y se puede actualizar el programa sin limitaciones (esto 28 de agosto de 2009).

Es particularmente interesante para los novatos el que Nikto detecte múltiples potenciales problemas en sus reportes de corrida contra X webserver, al mismo tiempo que otros programas,  comerciales incluso y bastante caros, detectan unas pocas o mucho menos vulnerabilidades que Nikto, para entender esto hay que sopesar algunas "advertencias" de Nikto que no son necesariamente vulnerabilidades. Para más datos leer la información disponible en el sitio.

Correr Nikto básicamente consiste en tener instalado Perl, que está en el 99% de las distros Linux y versiones de Unix del planeta...luego de eso queda bajar Nikto (así figura en el sitio):

"Posted by sullo | 10/06/2007 
Download
Version 2.03 .gz or .bz2 | Plugins & DBs"

 

Una vez descomprimido, vemos que las fechas de acceso de los archivos disponibles hoy (agosto-09), fueron modificados en sept. 2008 por última vez, lo que es interesante recordar cuando lo utilicemos para escanear por posibles problemas relativos a las vulnerabilidades más nuevas (falsos positivos, total indetección, etc.). Igualmente hay que sopesar esa evaluación contra la disponibilidad de los updates de Nikto y el que la lista de correo muestra actividad en el desarrollo (...tal vez habría que testear sitios con Nikto también desde una versión SVN reciente - para comparar outputs - pero antes habría que darse una vuelta por los threads de la lista para estudiar los cambios no documentados sobre la versión estable publicada...).

Correr Nikto es fácil, interpretar los informes es la parte complicada normalmente, pero brinda una linda salida HTML que se puede utilizar como base de informes regulares; incluso gracias a su interfaz de línea de comandos, se puede llegar a "cronearlo" (CRON), para que corra regularmente y envíe sus datos.

Los paranoicos a los que nunca les pasa nada pueden llegar a hablar de integrar en el CRON algun script que "grepee" el informe regular de Nikto buscando cadenas alarmantes relevantes (incluído el mail de alerta urgente), de las que podríamos llegar a hacer una buena lista, simplemente accediendo a los plugins (o al SVN de Nikto en su defecto). Algun avezado paranoico ha llegado a optimizar esto incluyendo la ejecución de Nikto+script de grepeo como reacción en un Nagios ante un cambio en el rendimiento de un website...en fin las posibilidades son muchas.

La documentación de Nikto: aquí 

Libros en los que pueden leer sobre Nikto: aquí (y pueden buscar con Google dentro de esos libros en la red...)

Una corrida típica de Nikto sería así:

./nikto.pl -h www.sitio-a-escanear.com -Format html -output informe.html

No hay comentarios: