lunes, 29 de junio de 2015

Auditando con Nikto

Compartir este artículo:
Buenas a todos, en el post de hoy quería hablaros del software Nikto, un interesante escáner que podremos utilizar para auditar servidores web. Tiene licencia GPL y realiza numerosos tests gracias a sus plugins que podéis ir actualizando.

Nikto puede ser descargado desde el siguiente enlace:


A continuación os listo las funcionalidades completas indicadas en la web del desarrollador:
  • SSL Support (Unix with OpenSSL or maybe Windows with ActiveState's
  • Perl/NetSSL)
  • Full HTTP proxy support
  • Checks for outdated server components
  • Save reports in plain text, XML, HTML, NBE or CSV
  • Template engine to easily customize reports
  • Scan multiple ports on a server, or multiple servers via input file (including nmap output)
  • LibWhisker's IDS encoding techniques
  • Easily updated via command line
  • Identifies installed software via headers, favicons and files
  • Host authentication with Basic and NTLM
  • Subdomain guessing
  • Apache and cgiwrap username enumeration
  • Mutation techniques to "fish" for content on web servers
  • Scan tuning to include or exclude entire classes of vulnerability checks
  • Guess credentials for authorization realms (including many default id/pw combos)
  • Authorization guessing handles any directory, not just the root directory
  • Enhanced false positive reduction via multiple methods: headers,
  • page content, and content hashing
  • Reports "unusual" headers seen
  • Interactive status, pause and changes to verbosity settings
  • Save full request/response for positive tests
  • Replay saved positive requests
  • Maximum execution time per target
  • Auto-pause at a specified time
  • Checks for common "parking" sites
  • Logging to Metasploit
  • Thorough documentation
Nikto se encuentra disponible en algunas distribuciones de auditoría como Kali Linux, pero también podremos descargarlo desde la web que os hemos indicado anteriormente para utilizarlo en otros sistemas operativos. 

Una vez descomprimido el zis donde se encuentras la herramienta, tendremos que ejecutar el script "nikto.pl":



Para comenzar un escaneo sencillo, podremos utilizar el siguiente comando:
>nikto -h <IP_o_DOMINIO_auditado>
Con el parámetro -p podremos añadirle un puerto, por si el aplicativo se encontrase en otro puerto tipo Tomcat, 8080, etc.

>nikto -h <IP_o_DOMINIO> -p <PUERTO>
Podremos indicar todos los puestos que precisemos, separados por comas (al estilo NMAP).

Por defecto Nikto intentará escanear HTTP, pero si queremos forzar un análisis SSL, tendremos que añadir el flag "-ssl". 

Una utilidad a tener a mano en un proceso de audoría.

Saludos!

viernes, 26 de junio de 2015

Buscando contraseñas con Google Hacking

Compartir este artículo:
Buenas a todos, en el post de hoy me gustaría hablaros sobre la exposición de numerosos sistemas de "cifrado" de contraseñas que utilizan infinidad de servicios web de Internet.


Por gracia o por desgracia (dependiendo de si nos toca auditar.... o proteger :P), md5 sigue siendo un estándar utilizado a la hora de hashear contraseñas para almacenarlas en base de datos, a pesar de que md5 lleva roto dos décadas... Fue desarrollado en 1991 como reemplazo de md4 después de que Hans Dobbertin descubriese su debilidad, pero solo tuvo la oportunidad de ser considerado 100% seguro durante 5 años, hasta que en 1996 el mismo Hans Dobbertin anunciase una colisión de hash. Hoy en día, mediante rainbow tables y fuerza bruta es posible romper md5 en un tiempo aceptable (en comparación con otros algoritmos como SHA1 o SHA256).


Si queréis saber más sobre md5 os recomiendo este genial libro de Manuel J. Lucena, del que soy muy fan desde que me ayudó a aprobar criptografía en la facultad y a dominar numerosos algoritmos criptográficos :)

Volviendo al origen del post, vamos a buscar algunas exposiciones de distintos sitios web encargados de la generación y/o el almacenamiento de contraseñas bajo md5.


Con una búsqueda tan simple como la anterior en Google, podremos encontrar más de 3.500 scripts SQL en los que aparecen sentencias "select", con las palabras md5 y password o pass. Dentro de todos ellos encontraremos desde procedimientos almacenados y funciones, hasta triggers, sentencias de inserción.... cada script es un mundo.

Si escogemos algunos al azar podemos ver que muchos programadores han decidido realizar la lógica de generación de hashes en el propio código SQL, en lugar de en el código del servidor web, como por ejemplo PHP. No es una práctica que aminore la seguridad, en absoluto, siempre y cuando dichos scripts no acaben en Internet...


Así que consejo número uno, cuidado de donde almacenáis las contraseñas y cómo las almacenáis. Consejo número dos, revisad los permisos de los archivos y carpetas de vuestros servidores, para impedir que ciertos archivos acaben en Internet y si es posible, limitad también que se puedan exponer archivos con ciertas extensiones críticas, como por ejemplo "sql". Y por supuesto, ¡comenzad a olvidar md5, en favor de otros algoritmos más robustos como SHA256!

Saludos!
Related Posts Plugin for WordPress, Blogger...