Mostrando las entradas con la etiqueta penetration tests. Mostrar todas las entradas
Mostrando las entradas con la etiqueta penetration tests. Mostrar todas las entradas

01 marzo, 2007

Como Proteger tus Websites y Evaluar su Seguridad

En una entrada anterior hablamos sobre como usar Access Diver para encontrar passwords en los sitios web. Mientras que esta herramienta funciona bien para hacer una prueba inicial de nuestro sitio, esta lejos de ser la mejor prueba de seguridad.

La realidad es que para la mayoría de las empresas que se dedican al desarrollo web o que tienen su propio web mantenido por su departamento de IT, les cuesta mucho tiempo y trabajo el revisar y asegurar sus sitios. Y como en la mayoría de los casos (con excepción de bancos, etc.) piensan que no es probable que los ataquen, dejan las revisiones de seguridad para después, el único detalle es que ese después nunca llega.

Un buen lugar para empezar a empaparse sobre seguridad de sitios web es el libro "How to Break Web Software: Functional and Security Testing of Web Applications and Web Services" de Mike Andrews y, James A. Whittaker ambos expertos en el campo. Sin embargo como el tiempo es oro y rara vez tenemos tiempo para ir a comprar el libro, leerlo y luego ponerlo en práctica, la mejor solución es dejar que una expertos lo hagan por nosotros.

Mientras que en el pasado estas soluciones eran caras, donde tenían que comprar equipo y profesionales que visitaban la oficina, hoy en día existen servicios de excelente calidad un costo muy aceptable, como el ClickToSecure de Cenzic.

Bajo el concepto de SaaS (Software as a Service), usan su famso HailStorm para hacer todo tipo de pruebas en tu sitio web sin necesidad de instalar ni configurar nada. Simplemente les das tu URL, hacen las pruebas y te entregan un reporte completo de todas las vulnerabilidades detectadas. La gran ventaja aquí, es que no hay que comprar ningún software, no hay que aprender a usarlo, configurarlo y correr las pruebas, todo esto se los dejamos a profesionales.

Otra de las ventajas es que no necesitamos estar al día en los diferentes tipos de ataques que existen pues ellos mantienen actualizadas sus pruebas con las últimas amenazas como son: entradas de información sin validar, control de acceso roto, autenticación y administración de sesiones rotas, XSS, buffer overflows, inyecciones de código, mal manejo de errores, y mal aseguradas consolas de administración y bases de datos entre otros.

Una vez obtenido el reporte se preguntarán que hacer para cubrir las vulnerabilidades. Una opción es que los mismo consultores de Cenzic les ayuden a corregirlas, en algunos casos las vulnerabilidades son sencillas y con el puro reporte las podemos corregir nosotros.

En caso de tener aplicaciones web grandes o varios servidores, la mejor opción puede ser instalar el firewall NC-1100 o NC-2000 de Net-Wall. Estos firewalls de aplicación defienden aplicaciones web y transacciones de hackers profesionales. Más del 80% de las intrusiones a servidores son a través de sus aplicaciones web, donde los tradicionesles firewalls e IDS no protegen, y es aquí donde los firewalls NC de Net-Wall nos resultan más útiles.

Estos vienen en dos categorias AF y AG. Los AF son application firewall que dan protección a las applicaciones web, mientras que los AG son application gateway que aparte de dar protección, aumentan el desempeño usando caching, compresión y más.

La ventaja de este firewall, es que no es necesario conocer las vulnerabilidades actuales, pues no depende de una base de datos de vulnerabilidades conocidas, sino que escanea los envíos en busca de inyecciones de SQL, XSS, buffer overflows, forms tampering, cookie tampering, escaneo de puertor, SYN flood, etc. El sistema integra políticas por parte del desarrollador, de tal manera que si queremos que un campo sea de 40 bytes de largo el firewall se asegura que no rebase ese largo en el envío, previniendo que pueden mandar virus, o que algún fuzzer este trantando de estrellar el código, etc.

El NC-1100 y 2000 tienen muchas ventajas más como encripción y desencripción de SSL, caching del contenido web, pooling de las conecxiones TCP, compresión de GZIP, load balancing (round robin, weighted round robin, y least requested por default pero se pueden implementar out of service redirections, y sticky connections). Todo esto no sale barato y por eso el NC-1100 anda alrededor de los $30,000 dólares.

Si les fue útil esta información y se sienten generosos me pueden donar el libro del que les hable en este blog visitando my wish list en Amazon.
My Amazon.com Wish List
Add to Technorati Favorites

Como siempre dejen sus comentarios, experiencias y opiniones.

27 febrero, 2007

Como explotan vulnerabilidades en Wireless

Si se preguntan como es que en el Black Hat del 2006 en Las Vegas, lograron tomar control de una Mac (sirve igual para PCs) en cuestión de segundos (ver video), aquí revisaremos una de las formas en las que se encuentran estas vulnerabilidades.

Nos hemos acostumbrado a proteger las vulnerabilidades en módulos de usuario con técnicas como non-executable pages, address space layout randomization (ASLR) y stack canaries, pero hemos olvidado que a nivel de kernel también existen vulnerabilidades importantes.

Requieren especial atención las vulnerabilidades en los drivers, ya que los programadores de drivers viven en un entorno totalmente diferente a los programadores para usuarios final, desde la diferencia entre los API y el hecho de que a partir de Win NT a la fecha los threads de kernel solo tienen 3 páginas de stack mientras que los de usuario tienen hasta 256KB, sin mencionar el cuidado especial que se debe de tomar en cosas como son performance, error-handling y re-entrancy.

Ya se que deben de estar pensando que es muy poco probable que hagan un ataque en un device driver ya que la mayoría no procesa datos controlados por el atacante. Pero los drivers de red son la excepción. Aunque los driver para ethernet han estado con nosotros por mucho tiempo y no han sufrido vulnerabilidades importantes, no es lo mismo de los wireless. Resulta que los ethernet hacen muy poco de procesamiento mientras que los wireless tienen que manejar una amplia gama de pedidos y exponer su funcionalidad a quien se encuentre en el rango.

Para hacer un ataque en el mundo del 802.11 nos enfocaremos en una device que se encuentre sin autenticar y sin asociar (pueden estar autenticada sin asociarse y autenticada y asociada). En este caso el cliente procesa:
  • Probe Request
  • Probe Reponse
  • Beacon
  • Autenticación
El Probe Response y el Beacon se utilizan para encontrar o publicar las redes inalámbricas locales. Utilizando estos los clientes pueden encontrar las redes de dos maneras, en modo activo el cliente mando un Probe Request con el campo de SSID vacio, cualquier AP que lo escuche responde con un Probe Response con los parámetros de la red. En modo pasivo el cliente esta en escucha de los Beacons y lee los parámetros de la red de estos.

Los paquetes tanto el Probe Response como el Beacon deben contener entre otras cosas un campo para el SSID el cuál según la especificación no debe de ser más de 32 bytes de largo. Sin embargo el largo máximo de cualquier elemento de información es de 255 bytes, lo que deja amplio margen de error en un driver mal escrito.

Para atacar el Beacon de un driver necesitamos una manera de mandar frames al device que se va a atacar. La mejor opción actualmente es la LORCON-library en C (hay una extensión para ruby), desarrollada por Joshua Wright y Michael Kershaw. Una vez familiarizados, podemos implementar un fuzzer que obliga al driver a procesar datos malformados tratando de que con uno de esos se estrelle.

Escojemos un campo en el Beacon o Probe Response que sea de largo variable, como el Information Element. Una vez que se encuentra el problema mediante el uso del fuzzer, iniciamos el proceso de ganar control del pointer de esa instrucción. En el caso de buffer overflows del stack en Windows, el proceso es tan sencillo como determinar el offset de la dirección de regreso y sobreescribirlo con la dirección de una instrucción que haga un "jump" de regreso al stack (ver otro ejemplo). Esta puede ser la parte más compleja de todo el proceso.

Una vez que se gana control del pointer de la instrucción, se hace una ejecución de código arbitrario. Para módulos de usuario este proceso esta totalmente automatizado usando Metasploit. Y en la nueva versión de Metasploit (3.0) ya se pueden implementar exploits del kernel de manera automática.

Si les interesa estudiar a mas detalle todo el proceso les recomiendo que lean un artículo por Johnny Cache, H D Moore, y skape de Metasploit.

Como siempre los invito a que dejen sus comentarios y opiniones y links al respecto .

16 febrero, 2007

THC-Hydra

Anteriormente cubrimos AccessDiver, una herramienta para hacer pruebas de penetración en tus sitos web. Ahora hablaremos de una herramienta mucho más completa y sencilla de usar que pone a nuestra disposición The Hacker's Choice.

TCH-HYDRA es una de mis herramientas favoritas para hacer pruebas de penetración. Si desean proteger su red de la mayoría de los ataques comunes hechos por script kidies y crackers, está herramienta es la opción.

Esta herramienta no hace la labor de un firewall, de proteger la red, sino que encuentra las vulnerabilidades en nuestra red. Específicamente se intenta de descubrir la vulnerabilidad más común que son los passwords. Y aunque existen varias herramientas que hacen ataques de fuerza bruta para encontrar los passwords en una red, ninguna es tan sencilla, ni tan completa como HYDRA.

Actualmente puede utilizar todos los siguientes protocolos:
TELNET, FTP, HTTP, HTTPS, HTTP-PROXY, SMB, SMBNT, MS-SQL, MYSQL, REXEC,RSH, RLOGIN,
CVS, SNMP, SMTP-AUTH, SOCKS5, VNC, POP3, IMAP, NNTP, PCNFS, ICQ, SAP/R3, LDAP2,
LDAP3, Postgres, Teamspeak, Cisco auth, Cisco enable, LDAP2 y
Cisco AAA (en el módulo de telnet)

Puede utilizarla ya sea para demostrar a los directivos, usuarios, administradores de red, etc... que tan sencillo es ganar acceso a la red, o para monitorear constantemente (léase cada semana) la vulnerabilidad de los passwords en la red y forzar políticas más estrictas.

La herramienta es muy flexible y se le pueden añadir más módulos, se tienen planeados otros módulos en un futuro de SSH v1 y Oracle y más después de esos.

Para el servicio de http/www pueden dar de alta un proxy si es que desean hacerlo mediante un proxy, si el proxy requiere que se autentifiquen también pueden dar de alta el nombre de usuario y password.

Es extremadamente sencilla de instalar y utilizar. Sólo una nota extra, la mayoría de los antivirus la van a reconocer como un programa potencialmente peligroso, no quiere decir que tenga un virus cuando lo instalen, sino que para el antivirus este programa es "malware" y trata de evitar que lo instalen, en caso de que no sepan lo que están haciendo. Así que le van a tener que dar permiso de instalarse y de utilizar su conexión al programa si están en un ambiente de windows. Este problema lo van a encontrar en todas las herramientas de penetración de redes que sean "open source" ya que al igual que hay quien las usa para bien hay quien las usa para mal y por eso los antivirus las han "blacklisted" pero si tienen privilegios de administrador, le pueden indicar al antivirus que los deje instalarlas.

Para descargar la versión para windows, la encontrarán aquí.

Como una nota final, la nueva versión añadió soporte para NTML (ahora renombrado a Integrated Windows authentication) para los módulos de pop3, imap, smtp-auth y http-proxy

Una vez más dejen sus comentarios y sugerencias