Blog sobre seguridad informática, privacidad, anonimato, hacking ético, programación y sistemas operativos en general.

Mostrando las entradas con la etiqueta hacking wifi. Mostrar todas las entradas
Mostrando las entradas con la etiqueta hacking wifi. Mostrar todas las entradas

lunes, 16 de octubre de 2017

Comunicado Oficial - ¡Hackean el protocolo WPA2! Todas las redes WiFi en riesgo.


Introducción


Descubrimos debilidades serias en WPA2, un protocolo que asegura todas las redes Wi-Fi protegidas modernas. Un atacante dentro del alcance de la víctima puede explotar estas debilidades usando Key Reinstallation Attacks(KRACKs). Concretamente, los atacantes pueden usar esta nueva técnica de ataque para leer información que previamente se suponía que estaba cifrada de forma segura. Esto se puede abusar para robar información confidencial, como números de tarjetas de crédito, contraseñas, mensajes de chat, correos electrónicos, fotos, etc. El ataque funciona contra todas las redes Wi-Fi protegidas modernas . Dependiendo de la configuración de la red, también es posible inyectar y manipular datos. Por ejemplo, un atacante podría inyectar ransomware u otro malware en sitios web.

Las debilidades están en el estándar Wi-Fi en sí y no en productos individuales o implementaciones. Por lo tanto, es probable que se vea afectada cualquier implementación correcta de WPA2. Para evitar el ataque, los usuarios deben actualizar los productos afectados tan pronto como las actualizaciones de seguridad estén disponibles. Tenga en cuenta que si su dispositivo es compatible con Wi-Fi, lo más probable es que se vea afectado. Durante nuestra investigación inicial, descubrimos que Android, Linux, Apple, Windows, OpenBSD, MediaTek, Linksys y otros, se ven afectados por alguna variante de los ataques. Para obtener más información sobre productos específicos, consulte la base de datos de CERT (Computer Emergency Response Team)/CC o comuníquese con su proveedor.

La investigación detrás del ataque se presentará en la conferencia sobre Seguridad Informática y comunicaciones (CCS) y en la conferencia Black Hat Europe.

Demostración.

Cómo prueba de concepto, ejecutamos un ataque clave de reinstalación contra un teléfono inteligente Android. En esta demostración, el atacante puede descifrar todos los datos que transmite la víctima. Para un atacante, esto es fácil de lograr, porque nuestro ataque de reinstalación clave es excepcionalmente devastador contra Linux y Android 6.0 o superior. Esto se debe a que Android y Linux pueden engañarse para (re)instalar una clave de cifrado totalmente nula( ver más abajo para obtener más información ). Al atacar a otros dispositivos, es más difícil descifrar todos los paquetes, aunque se puede descifrar un gran número de paquetes. En cualquier caso, la siguiente demostración destaca el tipo de información que un atacante puede obtener al 
realizar ataques de reinstalación de claves contra redes de Wi-Fi protegidas:



Nuestro ataque no se limita a recuperar credenciales de inicio de sesión (es decir, direcciones de correo electrónico y contraseñas). En general, cualquier dato o información que la víctima transmita puede descifrarse. Además, según el dispositivo que se utilice y la configuración de la red, también es posible descifrar los datos enviados a la víctima (por ejemplo, el contenido de un sitio web). Aunque los sitios web o las aplicaciones pueden usar HTTPS como una capa adicional de protección, le advertimos que esta protección extra puede (todavía) pasarse por alto en un número preocupante de situaciones. Por ejemplo, HTTPS se omitió anteriormente en el software de navegadores, en iOS y OS X de Apple, en aplicaciones de Android , en aplicaciones de Android nuevamente, en aplicaciones de respaldo e incluso en aplicaciones VPN.

Detalles


Nuestro ataque principal está en contra del protocolo de enlace (handshake) de 4 vías del protocolo WPA2. Este protocolo de enlace se ejecuta cuando un cliente desea unirse a una red Wi-Fi protegida, y se utiliza para confirmar que tanto el cliente como el punto de acceso poseen las credenciales correctas (por ejemplo, la contraseña precompartida de la red). Al mismo tiempo, el protocolo de enlace de 4 vías también negocia una nueva clave de cifrado que se utilizará para cifrar todo el tráfico subsiguiente. Actualmente, todas las redes Wi-Fi protegidas modernas utilizan el protocolo de enlace de 4 vías. Esto implica que todas estas redes se ven afectadas por (alguna variante de) nuestro ataque. Por ejemplo, el ataque funciona contra redes Wi-Fi personales y empresariales, contra el WPA anterior y el último estándar WPA2, e incluso contra redes que solo usan AES. Todos nuestros ataques contra WPA2 usan una técnica novedosa llamada ataque de reinstalación clave (KRACK):

Ataques clave de reinstalación: descripción de alto nivel


En un ataque de reinstalación de clave, el adversario engaña a una víctima para que vuelva a instalar una clave que ya está en uso. Esto se logra manipulando y reproduciendo mensajes criptográficos de comunicación . Cuando la víctima reinstala la clave, los parámetros asociados, como el número de paquete de transmisión incrementa y el número de paquete de recepción (es decir, el contador de reproducción) se restablecen a su valor inicial. Básicamente, para garantizar la seguridad, una clave solo debe instalarse y usarse una vez. Desafortunadamente, encontramos que esto no está garantizado por el protocolo WPA2. Al manipular los protocolos de enlace criptográficos, podemos abusar de esta debilidad en la práctica.

Ataques clave de reinstalación: ejemplo concreto contra el protocolo de enlace de 4 vías.


Como se describe en la introducción del documento de investigación, la idea detrás de un ataque clave de reinstalación se puede resumir de la siguiente manera. Cuando un cliente se une a una red, ejecuta el enlace de 4 vías para negociar una nueva clave de cifrado. Instalará esta clave después de recibir el mensaje 3 del protocolo de enlace de 4 vías. Una vez que se instala la clave, se usará para cifrar los marcos de datos normales utilizando un protocolo de encriptación. Sin embargo, como los mensajes se pueden perder o descartar, el Punto de acceso (AP) retransmitirá el mensaje 3 si no recibió una respuesta apropiada como acuse de recibo. Como resultado, el cliente puede recibir el mensaje 3 varias veces. Cada vez que recibe este mensaje, reinstalará la misma clave de cifrado y, por lo tanto, reiniciará el número de paquete de transmisión incremental y recibirá el contador de reproducción utilizado por el protocolo de cifrado. Mostramos que un atacante puede forzar estos restablecimientos recolectando y reproduciendo retransmisiones del mensaje 3 del protocolo de enlace de 4 vías. Al forzar la reutilización del nonce de esta manera, el protocolo de encriptación puede ser atacado, por ejemplo, los paquetes pueden ser reproducidos, descifrados y / o forjados. La misma técnica también se puede utilizar para atacar a la clave de grupo, PeerKey, TDLS, y rápido enlace de transición BSS.

Impacto practico


En nuestra opinión, el ataque más extendido y prácticamente impactante es el ataque de reinstalación clave contra el protocolo de enlace de 4 vías. Basamos este juicio en dos observaciones. Primero, durante nuestra propia investigación encontramos que la mayoría de los clientes se vieron afectados por ella. En segundo lugar, los adversarios pueden usar este ataque para descifrar los paquetes enviados por los clientes, lo que les permite interceptar información confidencial, como contraseñas o cookies. El descifrado de paquetes es posible porque un ataque de reinstalación de clave hace que los números de transmisión (a veces también denominados números de paquete o vectores de inicialización) se restablezcan a cero. Como resultado, se usa la misma clave de cifrado con valores nonce que ya se han usado en el pasado . A su vez, esto hace que todos los protocolos de encriptación de WPA2 reutilicen el flujo de claves al encriptar los paquetes. En caso de que un mensaje que reutilice el flujo de claves tenga contenido conocido, se vuelve trivial derivar el flujo de claves usado. Este flujo de claves se puede usar para descifrar mensajes con el mismo valor. Cuando no hay contenido conocido, es más difícil descifrar paquetes, aunque aún es posible en varios casos. En la práctica, encontrar paquetes con contenido conocido no es un problema, por lo que se debe suponer que cualquier paquete puede descifrarse.

La capacidad de descifrar paquetes puede usarse para descifrar paquetes TCP/SYN. Esto permite a un adversario obtener los números de secuencia TCP de una conexión y secuestrar las conexiones TCP. Como resultado, aunque se usa WPA2, el adversario ahora puede realizar uno de los ataques más comunes contra redes Wi-Fi abiertas: inyectar datos maliciosos en conexiones HTTP no cifradas. Por ejemplo, un atacante puede abusar de esto para inyectar ransomware o malware en sitios web que la víctima está visitando.

Si la víctima usa el protocolo de cifrado WPA-TKIP o GCMP, en lugar de AES-CCMP, el impacto es especialmente catastrófico. Contra estos protocolos de encriptación, la reutilización de nonce permite a un adversario no solo descifrar, sino también forjar e inyectar paquetes . Además, debido a que GCMP utiliza la misma clave de autenticación en ambas direcciones de comunicación, y esta clave se puede recuperar si los números se reutilizan, se ve especialmente afectada. Tenga en cuenta que la compatibilidad con GCMP se está actualizando con el nombre Wireless Gigabit (WiGig), y se espera que se adopte a un ritmo elevado en los próximos años.

La dirección en la que los paquetes pueden descifrarse (y posiblemente forjarse) depende del protocolo de enlace que se está atacando. Simplificado, al atacar el enlace de 4 vías, podemos descifrar (y forjar) los paquetes enviados por el cliente. Al atacar el protocolo de enlace de Fast BSS Transition (FT), podemos descifrar (y forjar) los paquetes enviados al cliente. Finalmente, la mayoría de nuestros ataques también permiten la reproducción de tramas unidifusión, difusión y multidifusión. Para más detalles, consulte la Sección 6 de nuestro trabajo de investigación .

Tenga en cuenta que nuestros ataques no recuperan la contraseña de la red Wi-Fi . Tampoco recuperan (ninguna parte de) la nueva clave de encriptación que se negocia durante el protocolo de enlace de 4 vías.

Android y Linux


Nuestro ataque es especialmente catastrófico contra la versión 2.4 y superior de wpa_supplicant, un cliente Wi-Fi comúnmente usado en Linux. Aquí, el cliente instalará una clave de cifrado totalmente cero en lugar de reinstalar la clave real. Esta vulnerabilidad parece ser causada por un comentario en el estándar Wi-Fi que sugiere borrar la clave de cifrado de la memoria una vez que se instaló por primera vez. Cuando el cliente recibe ahora un mensaje retransmitido 3 del protocolo de 4 vías, volverá a instalar la clave de cifrado ahora borrada, instalando efectivamente una clave de cero. Como Android usa wpa_supplicant, Android 6.0 y superior también contiene esta vulnerabilidad. Esto hace que sea trivial interceptar y manipular el tráfico enviado por estos dispositivos Linux y Android . Tenga en cuenta que actualmente el 41% de los dispositivos Android son vulnerables a esta variante excepcionalmente devastadora de nuestro ataque.

Asignados identificadores CVE


Se asignaron los siguientes identificadores y vulnerabilidades comunes (CVE, por sus siglas en inglés) para rastrear qué productos se ven afectados por instancias específicas de nuestro ataque de reinstalación clave:

* CVE-2017-13077 : Reinstalación de la clave de encriptación pairwise (PTK-TK) en el enlace de 4 vías.
* CVE-2017-13078 : Reinstalación de la clave de grupo (GTK) en el enlace de 4 vías.
* CVE-2017-13079 : Reinstalación de la clave del grupo de integridad (IGTK) en el enlace de 4 vías.
* CVE-2017-13080 : Reinstalación de la clave de grupo (GTK) en el protocolo de enlace de grupo.
* CVE-2017-13081 : Reinstalación de la clave de grupo de integridad (IGTK) en el protocolo de enlace de grupo.
* CVE-2017-13082 : aceptación de una solicitud de reasignación de transición rápida de BSS (FT) y reinstalación de la clave de cifrado por parejas (PTK-TK) mientras la procesa. 
* CVE-2017-13084 : Reinstalación de la tecla STK en el protocolo de enlace PeerKey.
* CVE-2017-13086 : reinstalación de la clave de configuración de enlace directo Tunneled (TDLS) PeerKey (TPK) en el protocolo de enlace TDLS.
* CVE-2017-13087 : reinstalación de la clave de grupo (GTK) al procesar un marco de respuesta de modo de suspensión de gestión de red inalámbrica (WNM).
* CVE-2017-13088 : reinstalación de la clave de grupo de integridad (IGTK) al procesar un marco de respuesta de modo de suspensión de gestión de red inalámbrica (WNM).

Tenga en cuenta que cada identificador de CVE representa una instanciación específica de un ataque de reinstalación de clave. Esto significa que cada ID de CVE describe una vulnerabilidad de protocolo específica y, por lo tanto, muchos proveedores se ven afectados por cada ID de CVE individual . También puede leer la nota de vulnerabilidad VU#228519 de CERT/CC para obtener detalles adicionales sobre qué productos se sabe que están afectados.

Herramientas


Hemos realizado secuencias de comandos para detectar si una implementación del protocolo de enlace de 4 vías, el protocolo de enlace de grupo o el protocolo de enlace de transición rápida (FT) es vulnerable a los ataques de reinstalación de claves. Estas secuencias de comandos se lanzarán una vez que hayamos tenido tiempo de limpiar sus instrucciones de uso.

También realizamos un script de prueba de concepto que explota la instalación de la llave (re) all-zero presente en ciertos dispositivos Android y Linux. Este script es el que usamos en el video de demostración . Será lanzado una vez que todos tengan una posibilidad razonable de actualizar sus dispositivos (y tuvimos un cambio para preparar el repositorio de códigos para su lanzamiento). Observamos que la fiabilidad de nuestro script de prueba de concepto puede depender de cuán cerca esté la víctima de la red real. Si la víctima está muy cerca de la red real, la secuencia de comandos puede fallar porque la víctima siempre se comunicará directamente con la red real, incluso si la víctima está (forzada) en un canal de Wi-Fi diferente a esta red.


Preguntas y Respuestas


¿Necesitamos ahora WPA3?

No, afortunadamente las implementaciones pueden parchearse en una forma compatible con versiones anteriores . Esto significa que un cliente parcheado puede comunicarse con un punto de acceso sin parcheo, y viceversa. En otras palabras, un cliente o puntos de acceso parcheado envía exactamente los mismos mensajes del protocolo de enlace que antes, y exactamente en los mismos momentos en el tiempo. Sin embargo, las actualizaciones de seguridad asegurarán que una clave solo se instala una vez, evitando nuestros ataques. De nuevo, actualice todos sus dispositivos una vez que las actualizaciones de seguridad estén disponibles.

¿Debo cambiar mi contraseña de Wi-Fi?

Cambiar la contraseña de su red Wi-Fi no impide (o atenúa) el ataque. Por lo tanto, no tiene que actualizar la contraseña de su red Wi-Fi. En su lugar, debe asegurarse de que todos sus dispositivos estén actualizados, y también debe actualizar el firmware de su enrutador. Después de actualizar su enrutador, puede opcionalmente cambiar la contraseña de Wi-Fi como precaución adicional.

Estoy usando WPA2 con solo AES. ¿Eso también es vulnerable?

Sí, esa configuración de red también es vulnerable. El ataque funciona contra WPA1 y WPA2, contra redes personales y empresariales, y contra cualquier conjunto de cifrado que se use (WPA-TKIP, AES-CCMP y GCMP). ¡Entonces todos deben actualizar sus dispositivos para evitar el ataque!

Usas la palabra "nosotros" en este sitio web. ¿Quienes somos nosotros?

Utilizo la palabra "nosotros" porque eso es lo que estoy acostumbrado a escribir en los documentos. En la práctica, todo el trabajo lo hago yo, siendo yo Mathy Vanhoef. Mi impresionante supervisor se agrega bajo una autoría honorífica al trabajo de investigación por su excelente orientación general. Pero todo el trabajo real se hizo por mi cuenta. Entonces, la lista de documentos académicos del autor no representa la división del trabajo :)

¿Es mi dispositivo vulnerable?

Probablemente. Cualquier dispositivo que use Wi-Fi es probablemente vulnerable. Póngase en contacto con su proveedor para obtener más información.

¿Qué sucede si no hay actualizaciones de seguridad para mi enrutador?

Nuestro ataque principal está en contra del protocolo de enlace de 4 vías, y no explota los puntos de acceso, sino que se dirige a los clientes. Por lo tanto, es posible que su enrutador no requiera actualizaciones de seguridad. Le recomendamos encarecidamente que contacte a su proveedor para obtener más detalles. Sin embargo, en general, puede intentar mitigar los ataques contra enrutadores y puntos de acceso deshabilitando la funcionalidad del cliente (que se utiliza, por ejemplo, en los modos de repetidor) y deshabilitando 802.11r (roaming rápido). Para los usuarios habituales del hogar, su prioridad debe ser la actualización de clientes, como computadoras portátiles y teléfonos inteligentes.

¿Cómo descubriste estas vulnerabilidades?

Cuando trabajé en la versión final de otro artículo, estaba revisando dos reclamos que hicimos sobre la implementación de OpenBSD del enlace de 4 vías. En cierto sentido, estaba desfalleciendo, porque se suponía que debía estar terminando el trabajo, en lugar de mirar el código. Pero allí estaba yo, inspeccionando un código que ya leí cien veces, para evitar tener que trabajar en el próximo párrafo. Fue en ese momento cuando me llamó la atención una llamada particular a ic_set_key . Esta función se invoca al procesar el mensaje 3 del protocolo de enlace de 4 vías, e instala la clave de par al controlador. Mientras miraba esa línea de código pensé: "Ha. Me pregunto qué pasa si esa función se llama dos veces". En el momento en que (correctamente) adiviné que llamarlo dos veces podría restablecer los nonces asociados a la clave. Y dado que el mensaje 3 puede ser retransmitido por el punto de acceso, en la práctica podría llamarse de hecho dos veces. "Es mejor hacer una nota de eso. Otros proveedores también pueden llamar a esa función dos veces. Pero terminemos primero este artículo ... " . Unas semanas más tarde, después de terminar el trabajo y completar otro trabajo, investigué esta nueva idea con más detalle. Y el resto es historia.

El protocolo de enlace de 4 vías fue matemáticamente probado como seguro. ¿Cómo es posible tu ataque?

La breve respuesta es que la prueba formal no asegura que una llave se instale una vez. En cambio, solo garantiza que la clave negociada permanezca en secreto, y que los mensajes de saludo no se pueden falsificar.

La respuesta más larga se menciona en la introducción de nuestro trabajo de investigación : nuestros ataques no violan las propiedades de seguridad probadas en el análisis formal del protocolo de enlace de 4 vías. En particular, estas pruebas indican que la clave de cifrado negociada sigue siendo privada, y que se confirma la identidad tanto del cliente como del punto de acceso (AP). Nuestros ataques no pierden la clave de cifrado. Además, aunque los marcos de datos normales se pueden falsificar si se usa TKIP o GCMP, un atacante no puede forjar mensajes de enlace y, por lo tanto, no puede suplantar al cliente o AP durante los protocolos de enlace. Por lo tanto, las propiedades que se probaron en el análisis formal del protocolo de enlace de 4 vías siguen siendo verdaderas. Sin embargo, el problema es que las pruebas no modelan la instalación de la clave. Dicho de otra manera, los modelos formales no definían cuándo debía instalarse una clave negociada. En la práctica, esto significa que la misma clave se puede instalar varias veces, restableciendo así los contadores de no repetición y repetición utilizados por el protocolo de cifrado (por ejemplo, mediante WPA-TKIP o AES-CCMP).

¿La gente está explotando esto en la naturaleza?

No estamos en condiciones de determinar si esta vulnerabilidad ha sido (o está siendo) explotada activamente en la naturaleza. Dicho esto, las reinstalaciones clave pueden ocurrir espontáneamente sin que haya un adversario presente. Esto puede suceder, por ejemplo, si se pierde el último mensaje de un protocolo de enlace, lo que provoca una retransmisión del mensaje anterior. Al procesar este mensaje retransmitido, las claves pueden volver a instalarse, lo que da como resultado la reutilización del nonce como en un ataque real.

¿Debo usar temporalmente WEP hasta que mis dispositivos estén parcheados?

¡NO! Siga usando WPA2.

¿Se actualizará el estándar Wi-Fi para abordar esto?

Parece que hay un acuerdo de que el estándar Wi-Fi debe actualizarse para evitar explícitamente nuestros ataques. Es probable que estas actualizaciones sean compatibles con versiones anteriores con implementaciones anteriores de WPA2. El tiempo dirá si y cómo se actualizará el estándar.

¿La Alianza Wi-Fi también aborda estas vulnerabilidades?

Para aquellos que no están familiarizados con Wi-Fi, Wi-Fi Alliance es una organización que certifica que los dispositivos Wi-Fi cumplen con ciertos estándares de interoperabilidad. Entre otras cosas, esto garantiza que los productos Wi-Fi de diferentes proveedores funcionen bien juntos.

Wi-Fi Alliance tiene un plan para ayudar a remediar las vulnerabilidades descubiertas en WPA2. Resumiendo, ellos:

 1. Exigir pruebas para esta vulnerabilidad dentro de su red de laboratorio de certificación global.
 2.  Proporcione una herramienta de detección de vulnerabilidades para usar por cualquier miembro de Wi-Fi Alliance (esta herramienta se basa en mi propia herramienta de detección que determina si un dispositivo es vulnerable a algunos de los ataques de reinstalación de llaves descubiertos).
 3. Comunique ampliamente los detalles sobre esta vulnerabilidad, incluidos los remedios, a los proveedores de dispositivos. Además, se recomienda a los vendedores que trabajen con sus proveedores de soluciones para integrar rápidamente los parches necesarios.
 4. Comunique la importancia de que los usuarios se aseguren de que han instalado las últimas actualizaciones de seguridad recomendadas por los fabricantes de dispositivos.

¿Por qué utilizaste match.com como ejemplo en el video de demostración?

Los usuarios comparten mucha información personal en sitios web como match.com. Por lo tanto, este ejemplo resalta toda la información sensible que un atacante puede obtener, y es de esperar que con este ejemplo las personas también se den cuenta mejor del impacto potencial (personal). También esperamos que este ejemplo haga que las personas conozcan toda la información que estos sitios web de citas pueden recopilar.

¿Cómo se pueden prevenir estos tipos de errores?

Necesitamos más inspecciones rigurosas de implementaciones de protocolos. ¡Esto requiere ayuda e investigación adicional de la comunidad académica! Junto con otros investigadores, esperamos organizar talleres para mejorar y verificar la corrección de las implementaciones del protocolo de seguridad.

¿Por qué el nombre de dominio krackattacks.com?

En primer lugar, soy consciente de que los ataques KRACK son pleonasmos, ya que KRACK significa una instalación rápida y, por lo tanto, ya contiene la palabra ataque. Pero el nombre de dominio rima, por eso se usa.

¿Recibió recompensas de errores por esto?

Aún no he solicitado ninguna recompensa por errores, ni he recibido ninguna.

¿Cómo se compara este ataque con otros ataques contra WPA2?

Este es el primer ataque contra el protocolo WPA2 que no se basa en adivinar la contraseña. De hecho, otros ataques contra la red habilitada para WPA2 están en contra de las tecnologías circundantes, tales como Wi-Fi Protected Setup (WPS), o son ataques contra estándares más antiguos como WPA-TKIP. Dicho de otra manera, ninguno de los ataques existentes estaba en contra del protocolo de enlace de 4 vías o en contra de los paquetes de cifrado definidos en el protocolo WPA2. En contraste, nuestro ataque de reinstalación clave contra el protocolo de enlace de 4 vías (y contra otros protocolos de enlace) resalta las vulnerabilidades en el protocolo WPA2.

¿Otros protocolos también se ven afectados por los ataques de reinstalación de claves?

Esperamos que ciertas implementaciones de otros protocolos sean vulnerables a ataques similares. Por lo tanto, es una buena idea auditar las implementaciones del protocolo de seguridad con este ataque en mente. Sin embargo, consideramos que es improbable que otros estándares de protocolo se vean afectados por ataques similares (o al menos así lo esperamos). Sin embargo, ¡todavía es una buena idea auditar otros protocolos!

¿Hay una versión de mayor resolución del logotipo?

Si hay ¡Y muchas gracias a la persona que hizo el logo!

¿Cuándo notificó por primera vez a los proveedores sobre la vulnerabilidad?

Enviamos notificaciones a proveedores cuyos productos probamos a nosotros mismos alrededor del 14 de julio de 2017. Después de comunicarnos con estos proveedores, nos dimos cuenta de cuán generalizadas son las debilidades que descubrimos (solo entonces realmente me convencí a mí mismo de que era de hecho una debilidad del protocolo y no un conjunto de Errores de implementación). En ese momento, decidimos dejar que CERT/CC ayudara con la divulgación de las vulnerabilidades. A su vez, el CERT/CC envió una amplia notificación a los vendedores el 28 de agosto de 2017.

¿Por qué OpenBSD lanzó silenciosamente un parche antes del embargo?

OpenBSD fue notificado de la vulnerabilidad el 15 de julio de 2017, antes de que CERT/CC estuviera involucrado en la coordinación. Muy rápidamente, Theo de Raadt respondió y criticó la fecha límite de divulgación tentativa: "En el mundo de código abierto, si una persona escribe un diff y tiene que sentarse durante un mes, eso es muy desalentador" . Tenga en cuenta que escribí e incluyé un diff sugerido para OpenBSD ya, y que en ese momento la fecha límite de divulgación tentativa era hacia fines de agosto. Cómo compromiso, les permití parchear en silencio la vulnerabilidad. En retrospectiva, esta fue una mala decisión, ya que otros podrían redescubrir la vulnerabilidad mediante la inspección de su parche silencioso. Para evitar este problema en el futuro, OpenBSD ahora recibirá notificaciones de vulnerabilidad más cerca del final de un embargo.

¿Entonces esperas encontrar otras vulnerabilidades de Wi-Fi?

"Creo que recién estamos comenzando". - Master Chief, Halo 1

Recomendaciones de Security Hack Labs.

1. Si es posible, deshabilite su conexión mediante Wi-Fi hasta que se encuentre una solución al problema.
2. Use datos móviles en su celular en lugar de Wi-Fi.
3. Implemente la seguridad en su red haciendo uso de software cómo DNSCrypt, I2P, TOR y VPNs.
4. Mantenga actualizado diariamente el software de su computadora, móvil y router.

Esperamos que esta publicación haya sido de utilidad, cualquier inquietud o sugerencia dejarla en los comentarios en bien, en los medios que indicamos a continuación.
Síguenos en Facebook, Twitter, unete a nuestra charla en Riot (Para charlar con nosotros online) o únete a Telegram.

Fuentes: https://www.krackattacks.com/

jueves, 7 de septiembre de 2017

Bettercap - Una herramienta completa, modular y de fácil uso para realizar ataques Man-In-The-Middle estudiada a fondo.



Buen día a todos nuestros lectores, hoy vamos a explicarles las principales funciones de esta poderosa herramienta, así como su instalación, principales funciones y sus modos de uso.

¿Qué es Bettercap?

BetterCAP es una herramienta potente, flexible y portátil creada para realizar varios tipos de ataques MITM contra una red, manipular HTTP , HTTPS y tráfico TCP en tiempo real, buscar credenciales y mucho más. 

Ataques Man-In-The-Middle.

En la criptografía y la seguridad informática , un ataque de hombre en el medio (a menudo abreviado a MITM , MitM , MIM , MiM o MITMA ) es un ataque donde el atacante secretamente transmite y posiblemente altera la comunicación entre dos partes que creen que son comunicándose directamente entre sí .  A través de una analogía de ajedrez se pueden pensar los ataques de hombre en el medio .

Alguien que apenas sabe jugar al ajedrez , afirma que puede jugar dos grandes maestros simultáneamente y ganar un juego o sacar ambos .  Espera a que el primer gran maestro haga un movimiento y luego hace este mismo movimiento contra el segundo gran maestro .  Cuando el segundo gran maestro responde , Mallory hace el mismo juego contra el primero.  El juega todo el juego de esta manera y no puede perder.

Un ataque de hombre en el medio (MITM) es una estrategia similar y puede utilizarse contra muchos protocolos criptográficos . Un ejemplo de ataques de hombre en el medio es la escucha activa , en la que el atacante establece conexiones independientes con las víctimas y transmite mensajes entre ellos para hacerles creer que están hablando directamente entre sí a través de una conexión privada , cuando de hecho la toda la conversación es controlada por el atacante . El atacante debe ser capaz de interceptar todos los mensajes relevantes que pasan entre las dos víctimas e inyectar nuevos . Esto es sencillo en muchas circunstancias ; por ejemplo , un atacante dentro del rango de recepción de un punto de acceso inalámbrico Wi - Fi no cifrado , puede insertarse como un hombre en el medio.
Esta es una descripción genérica, sobre todo porque (si estamos hablando de ataques MITM de red), la lógica y los detalles dependen en gran medida de la técnica que se está utilizando (más en la sección de spoofing).

Sin embargo, podemos simplificar el concepto con un ejemplo. Cuando se conecta a alguna red (su red doméstica, WiFi público, StarBucks, etc.), el router / switch es responsable de reenviar todos sus paquetes al destino correcto, durante un ataque MITM "forzamos" a la red a considerar nuestra dispositivo como el enrutador (nosotros "spoofeamos/suplantamos" la dirección original del ranurador / del interruptor de cierta manera): 



Una vez que esto ocurre, todo el tráfico de la red pasa a través de su computadora en lugar del enrutador/switch legítimo y en ese momento usted puede hacer prácticamente todo lo que quiere, desde sólo sniffear datos específicos (correos electrónicos, contraseñas, cookies, etc de otras personas en su red) hasta interceptar y procesar activamente todas las peticiones de algún protocolo específico con el fin de modificarlas (puede, por ejemplo, reemplazar todas las imágenes de todos los sitios web visitados por todos, eliminar conexiones, etc.).

BetterCap es responsable de proporcionar al investigador de seguridad todo lo que necesita en una sola herramienta que funciona simplemente en sistemas GNU / Linux, Mac OS X y OpenBSD.

¿Por qué Bettercap?

Usted podría pensar que Bettercap es sólo otra herramienta que ayuda a script-kiddies a dañar las redes ... pero es mucho más que eso, sus casos de uso son muchos, por ejemplo:
* Muchos profesionales de la penetración probadores encontrar un gran compañero en bettercap desde su primer lanzamiento.
*   Los ingenieros inversos lo utilizan para invertir o modificar protocolos de red cerrados.
*  Los investigadores de seguridad de Móvil/IoT están aprovechando las capacidades de bettercap para probar la seguridad de los sistemas móviles.

¿Por qué otra herramienta MITM?


Esto es exactamente lo que estás pensando ahora mismo, ¿no? :D Pero permítete pensarlo por 5 minutos más ... lo que deberías estar preguntando es:

 ¿Existe una herramienta MITM completa, modular, portátil y fácil de extender?

Si su respuesta es "ettercap", permítanme decirles algo:

*  Ettercap era una gran herramienta, pero hizo su tiempo.
*  Ettercap filtros no funcionan la mayoría de las veces, son obsoletos y difíciles de implementar debido al lenguaje específico en el que se implementan.
* Ettercap es inestable en grandes redes ... intenta lanzar un escaneo en una red más grande que el usual /24.
* A menos que seas un desarrollador de C / C ++, no puedes extender fácilmente ettercap ni crear tu propio módulo.

Además:

* Los módulos MITM e ICMP spoofing en ettercap son completamente inútiles.
* Ettercap no proporciona un sniffer de credenciales inteligente y completamente personalizable, lo hacemos.

Instalación


BetterCap viene empaquetado como una gema de Ruby , lo que significa que necesitará un intérprete Ruby (> = 1.9) y un entorno RubyGems instalado. Además, es totalmente compatible con las plataformas GNU / Linux, Mac OS X y OpenBSD .

Dependencias

Todas las dependencias de Ruby se instalarán automáticamente a través del sistema GEM, sin embargo algunas GEMS necesitan bibliotecas nativas para compilar como son build-essential ruby-dev libpcap-dev, instalalas.

Instalación en Kali Linux:

apt install bettercap

Instalación en ArchLinux (Pentesting).

pacman -S bettercap  

Una vez instalado podemos ver las opciones disponibles usando el comando bettercap --help, cómo usuario root.

Opciones generales


Las siguientes son las principales opciones que determinan el comportamiento general de BetterCap, estas opciones no son obligatorias , de hecho bettercap detectará automáticamente todo lo que necesita para trabajar, solo necesitará usar una o más de las siguientes opciones para especificar algunos comportamientos personalizados en casos específicos.

Ejemplos

Atacar objetivos específicos:

sudo bettercap -T 192.168.1.10,192.168.1.11

Ataca un objetivo específico mediante su dirección MAC:

sudo bettercap -T 01:23:45:67:89:10

Atacar una gama de direcciones IP:

sudo bettercap -T 192.168.1.1-30

Atacar una subred específica:

sudo bettercap -T 192.168.1.1/24

Modificar la dirección MAC de la interfaz durante el ataque:

sudo bettercap --random-mac

Opciones

-I, --interface IFACE

BetterCAP detectará automáticamente su interfaz de red predeterminada y la utilizará, si desea hacerla usar otra interfaz (cuando tenga más de uno, digamos eth0 y wlan0 ) puede usar esta opción.

--use-mac ADDRESS

Cambia la dirección MAC de la interfaz a este valor antes de realizar el ataque.

--random-mac

Cambia la dirección MAC de la interfaz a una aleatoria antes de realizar el ataque.

-G, --gateway ADDRESS

Lo mismo ocurre con la puerta de enlace, o bien permite que bettercap lo detecte automáticamente o especifique manualmente su dirección.

-T, --target ADDRESS1,ADDRESS2

Si no se especifica un destino específico en la línea de comandos, bettercap añadirá como target cada una de las direcciones de la red. Hay casos en los que ya conoce la dirección IP o MAC de su(s) destino(s), en estos casos puede utilizar esta opción.

--ignore ADDRESS1,ADDRESS2

Ignore estas direcciones IP si se encuentran durante la búsqueda de objetivos.

--no-discovery
Hace que bettercap no busque activamente hosts, solo use la cache ARP actual, por defecto desactivada .

--no-target-nbns

Deshabilite la resolución de nombre de host NBNS de destino.

--packet-throttle NUMBER

Número de segundos (puede ser un número decimal) para esperar entre cada paquete a enviar.

--check-updates

Verificará si hay alguna actualización disponible y luego sale.

-h, --help

Muestra las opciones disponibles. 

Spoofing


Como se describió anteriormente en la sección de introducción, la suplantación es el corazón de cada ataque MITM. Estas opciones determinarán qué técnica de spoofing utilizar y cómo utilizarla.

BetterCap ya incluye un spoofer ARP (funcionando tanto en modo dúplex completo como medio duplex), un spoofer de DNS y el primer spoofer de ICMP DoubleDirect totalmente funcional y totalmente automatizado en el mundo.

Ejemplos


Utilice el viejo, pero efectivo ARP spoofing:

sudo bettercap o sudo bettercap -S ARP o sudo bettercap --spoofer ARP

Utilice un ataque de suplantación de redireccionamiento ICMP de full duplex :

sudo bettercap -S ICMP o sudo bettercap --spoofer ICMP

Desactivar el spoofing:

sudo bettercap -S NONE o sudo bettercap --spoofer NONE o sudo bettercap --no-spoofing

Prohibir que una dirección IP se conecte a la red (En este caso 192.168.1.2):

sudo bettercap -T 192.168.1.2 --kill

Opciones

-S, --spoofer NAME

Módulo Spoofer a utilizar, disponible: ARP , ICMP , NONE - por defecto: ARP .

--no-spoofing

Deshabilitar spoofing.

--kill

En lugar de reenviar paquetes, este conmutador hará que las conexiones de destino sean eliminadas.

--full-duplex

Habilitar MITM dúplex completo, esto hará el ataque de bettercap entre en el/los objetivo(s) y el enrutador.

Sniffing y recolección de credenciales


El sniffer incorporado es actualmente capaz de diseccionar e imprimir desde la red (o desde un archivo PCAP previamente capturado) las siguientes informaciones:

* URLs visitadas.
* Hosts HTTPS que están siendo visitados.
* HTTP POSTed datos.
* Autenticaciones HTTP Basic y Digest.
* Cookies HTTP.
* Credenciales de FTP.
* Credenciales de IRC.
* Credenciales POP, IMAP y SMTP.
* Credenciales NTLMv1 / v2 (HTTP, SMB, LDAP, etc).
* Credenciales del protocolo DICT.
* Credenciales del MPD.
* Credenciales NNTP.
* Mensajes DHCP y autenticación.
* Credenciales de inicio de sesión de REDIS.
* RLOGIN credenciales.
* Credenciales SNPP.
Y más! 

Ejemplos

Utilice bettercap como un sniffer de red local simple:

sudo bettercap --local o sudo bettercap -L

Utilice el archivo capture.pcap en su directorio personal como fuente de paquetes:

sudo bettercap --sniffer-source ~/archivo.pcap

Spoof toda la red y guardar todos los paquetes en el archivo capture.pcap en su directorio personal:
sudo bettercap --sniffer-output ~/archivo.pcap

Spoofear toda la red, pero sólo sniffear tráfico HTTP:

sudo bettercap --sniffer-filter "tcp port http"

Spoofear toda la red y extraer los datos de los paquetes que contienen la palabra "contraseña":

sudo bettercap --custom-parser ".*password.*"

Opciones

-X, --sniffer

Habilitar el sniffer.

-L, --local

De forma predeterminada, bettercap sólo analizará los paquetes procedentes de/a otras direcciones de la red, si también desea procesar los paquetes enviados o recibidos desde su propia computadora puede utilizar esta opción (NOTA: habilitará el sniffer).

--sniffer-source FILE

Carga los paquetes del archivo PCAP especificado en lugar de la interfaz de red (NOTA: habilitará el sniffer).

--sniffer-output FILE

Guarda todos los paquetes en el archivo PCAP especificado (NOTA: activará el sniffer).

--sniffer-filter EXPRESSION

Configura el sniffer para usar este filtro BPF (NOTA: habilitará el sniffer).

-P, --parsers PARSERS

Lista separada por comas de analizadores de paquetes para habilitar, * para todos (NOTA: habilitará el sniffer), disponible: COOKIE , CREDITCARD , DHCP , DICT , FTP , HTTPAUTH , HTTPS , IRC , MAIL , MPD , MYSQL , NNTP , NTLMSS , PGSQL , POST , REDIS , RLOGIN , SNMP , SNPP , URL , WHATSAPP , predeterminado a * .

--custom-parser EXPRESSION

Utilice una expresión regular personalizada para capturar y mostrar datos sniffeados. (NOTA: habilitará al sniffer).

Acerca de Proxying.

Bettercap se suministra con un proxy HTTP/HTTPS (con SSL Stripping y HSTS Bypass) y TCP transparente que se puede utilizar para manipular HTTP / HTTPS o tráfico TCP de bajo nivel en tiempo de ejecución, por ejemplo, puede usar el proxy HTTP / HTTPS para inyectar javascripts en los objetivos que visitan páginas (BeEF sería una gran elección: D), reemplazar todas las imágenes, etc o utilizar el TCP para otros protocolos.


Una vez habilitados uno o más proxies, bettercap se hará cargo de las reglas de spoofing y firewall necesarias para redirigir el tráfico de sus objetivos al proxy.

De forma predeterminada, los proxies builtin no harán otra cosa que registrar todas las solicitudes, además puede especificar un "módulo" para usar y podrá cargar uno de los complementos integrados (o los suyos) y manipular todo el tráfico como lo haga me gusta.

HTTP / HTTPS


Bettercap trae integrados proxies transparentes HTTP y HTTPS que se pueden utilizar para manipular el tráfico HTTP y HTTPS en tiempo de ejecución (inyectar javascripts en las páginas visitadas, reemplazar las imágenes, etc.). De forma predeterminada, los proxies integrados no harán otra cosa que registrar solicitudes HTTP(S), pero si especifica un argumento --proxy-module , podrá cargar uno de los módulos incorporados (o el suyo) y manipular el tráfico HTTP como te gusta.

Los módulos incorporados son:

InjectJS ( --proxy-module injectjs ): Se utiliza para inyectar código javascript / archivos dentro de páginas HTML.

InjectCSS ( --proxy-module injectcss ): Se utiliza para inyectar código CSS / archivos dentro de páginas HTML.

InjectHTML ( --proxy-module injecthtml ): Se utiliza para inyectar código HTML dentro de páginas HTML.

Los módulos proxy HTTP/HTTPS pueden requerir argumentos de línea de comandos adicionales, siempre es una buena idea mirar sus menús de ayuda específicos:

bettercap --proxy-module NOMBRE_DEL_MODULO -h

Módulo de ejemplo

Puede implementar fácilmente un módulo para inyectar datos en páginas o simplemente inspeccionar las peticiones / respuestas creando un archivo ruby ​​y pasarlo a bettercap con el argumento --proxy-module , lo siguiente es un módulo de ejemplo que inyecta algunos contenidos en la etiqueta de título de cada página html, puede encontrar otros módulos de ejemplos en el repositorio dedicado de módulos proxy.

HTTP

SSL Stripping.

SSL stripping es una técnica introducida por Moxie Marlinspike (El creador de Signal Private Messenger, la aplicación de mensajería más segura del mundo) durante BlackHat DC 2009, la descripción del sitio web de esta técnica va como:

"Se secuestrará de forma transparente el tráfico HTTP en una red, observará los enlaces HTTPS y los redireccionamientos y, a continuación, asignará esos vínculos a vínculos HTTP parecidos o enlaces HTTPS similares a homógrafos. "
En resumen, esta técnica reemplazará cada enlace https en páginas web que el objetivo está navegando con http , así que si una página normalmente se veía así:

  ... <a href = "https://www.facebook.com/"> Iniciar sesión </ a > ...

Durante un ataque de SSL stripping  su código HTML se modificará como:

  ... <a href = "http://www.facebook.com/"> Iniciar sesión </ a > ...

Siendo un ataque MITM, esto nos permite sniffear y modificar páginas que normalmente no podríamos ver.

Desvío HSTS

El SSL stripping funcionó bastante bien hasta 2010, cuando se introdujo la especificación HSTS , Wikipedia dice:

"HTTP Strict Transport Security (HSTS) es un mecanismo de política de seguridad web que ayuda a proteger sitios web contra ataques de degradación del protocolo y secuestro de cookies. Permite a los servidores web declarar a los navegadores web (u otros agentes de usuario) que sólo deben interactuar con él mediante conexiones HTTPS seguras y nunca a través del protocolo HTTP inseguro. HSTS es un protocolo de seguimiento de normas IETF y se especifica en RFC 6797. "

Por otra parte las políticas de HSTS se han incorporado a los principales navegadores, lo que significa que ahora, incluso con un ataque SSL stripping ejecutándose, el navegador se conectará a HTTPS de todos modos, incluso si se especifica el esquema http:// , haciendo inútil el ataque.


Por esta razón, Leonardo Nve Egea presentó sslstrip + (o sslstrip2) durante BlackHat Asia 2014. Esta herramienta era una mejora sobre la versión original de Moxie, creada específicamente para eludir las políticas de HSTS. Dado que las reglas HSTS la mayoría de las veces se aplican en base a cada nombre de host, el truco es rebajar los enlaces HTTPS a HTTP y añadir un nombre de dominio secundario personalizado a ellos. Cada enlace resultante no será válido para ningún servidor DNS, pero ya que estamos MITMing podemos resolver estos nombres de host de todos modos.

Tomemos la página de ejemplo anterior:

  ... <a href = "https://www.facebook.com/"> Iniciar sesión </ a > ...

Un ataque de derivación de HSTS lo cambiará a algo como:

  ... <a href = "http://wwww.facebook.com/"> Iniciar sesión </ a > ...

Tenga en cuenta que https ha sido degradado a http y www reemplazado por wwww.

Cuando la "víctima" haga clic en ese enlace, no se aplicará ninguna regla HSTS (ya que no hay regla para tal subdominio que acabamos de crear) y el software MITM (BetterCap en nuestro caso) se encargará de la resolución DNS, lo que nos permite ver y alterar el tráfico que se supone no podemos ver.






Demostración

El siguiente video muestra cómo realizar ataques SSL Stripping y HSTS Bypass para capturar las credenciales de inicio de sesión de Facebook de un destino específico.

DNS

Si desea realizar spoofing de DNS, debe especificar el argumento en la línea de comandos --dns FILE, donde el valor FILE es el nombre de un archivo compuesto por entradas como las siguientes:

# Empty lines or lines starting with # will be ignored.

# redirect *.google.com to the attacker ip address
local .*google\.com

# redirect *.microsoft.com to 10.10.10.10
10.10.10.10 .*microsoft\.com


Entonces todo lo que te queda por hacer es ejecutar:

sudo bettercap --dns dns.conf


--dns FILE


Activa el servidor DNS y utiliza este archivo como una tabla de resolución de hosts.

--dns-port PORT

Establecer el puerto del servidor DNS, por defecto es el 5300.

Con esto finalizamos este post acerca de bettercap, si tienen alguna recomendación o duda pueden hacernos saber en los comentarios o en nuestra sala de chat.

Síguenos en Facebook, Twitter y unete a nuestra charla en Riot. También puedes dejar su donación a nuestra cuenta Paypal.

martes, 5 de septiembre de 2017

Realizando pruebas de Hacking WiFi usando WifiPhisher, parte 1.



WifiPisher (como su nombre lo indica) es una herramienta automatizada que realiza ataques de suplantación de puntos de acceso WiFi ya sea para robar credenciales o enviar malware. Esta herramienta sigue el principio propio de la Ingeniería Social sin necesidad de recurrir a otro tipo de ataques (Bruteforce / fuerza bruta) por ejemplo. WifiPisher es de código abierto y se distribuye bajo la licencia GPL, puede ser descargada aquí o desde github.

Cómo funciona WifiPhiser.

Después de lograr una posición de Man-In-The-Middle usando el ataque de Twin o KARMA Evil, Wifiphisher redirecciona todas las solicitudes HTTP a una página de phishing controlada por el atacante.

Desde la perspectiva de la víctima, el ataque se utiliza en tres fases:

1) La víctima es desautenticada de su punto de acceso . Wifiphisher congela continuamente todos los dispositivos Wi-Fi del punto de acceso objetivo dentro del rango forjando paquetes "Deauthenticate" o "Disassociate" para interrumpir las asociaciones existentes. 

2) La víctima se une a un punto de acceso falso. Wififhiff olfatea el área y copia la configuración del punto de acceso de destino. A continuación, crea un punto de acceso inalámbrico que es modelado por el objetivo. También configura un servidor NAT / DHCP y reenvía los puertos correctos. Por consiguiente, debido al bloqueo, los clientes eventualmente empezarán a conectarse al punto de acceso falso. Después de esta fase, la víctima es MiTMed. Además, Wifiphisher escucha los marcos de solicitud de sondeo y falsifica las redes abiertas "conocidas" para causar asociación automática. 

3) La victima se está sirviendo una página de phishing realista especialmente personalizada . Wifiphisher emplea un servidor web mínimo que responde a las solicitudes HTTP y HTTPS. Tan pronto como la víctima solicite una página de Internet, wifiphisher responderá con una página falsa realista que pide credenciales o sirve malwares. Esta página será diseñada específicamente para la víctima. Por ejemplo, una página de configuración router contendrá logotipos del proveedor de la víctima. La herramienta admite plantillas creadas por la comunidad para diferentes escenarios de suplantación de identidad. A continuación una imagen de cómo funciona: 



Requisitos de instalación:

* La herramienta está especialmente diseñada para Kali Linux, todas las nuevas características que se añadan se probarán primero en la distribución mencionada por lo tanto si deseas tenerlas, instala Kali Linux.

Nota: Si has seguido nuestros post y tienes ArchLinux configurada como tu distribución de pentesting o en su caso BlackArch, puedes instalarla usando el comando: pacman -S wifiphisher.

* Un dispositivo WiFi que soporte el modo AP (Acces Point Mode) o modo de punto de acceso, es necesaria para crear nuestra red inalámbrica falsa.
* Un dispositivo WiFi que soporte el modo Monitor para poder capturas todas las señales y el tráfico que haya en las redes WiFi disponibles. Si no tienes una segunda tarjeta WiFi, puedes correr el script usando la opción --nojamming, aunque esta también desactivará el ataque de desauteticación a las victimas.

Instalación:

Para realizar el proceso de instalación lo podemos hacer de dos maneras:

Desde el gestor de paquetes:

Kali Linux/Parrot Securtiy: apt install wifiphisher
ArchLinux*/BlackArch: pacman -S wifiphisher

*Para poder realizar la instalación en un sistema ArchLinux, primero debes configurar ArchLinux como una distribución de pentesting.

Desde el código fuente:

git clone https://github.com/wifiphisher/wifiphisher.git
cd wifiphisher
sudo python2 setup.py install

Hasta aquí la primera parte de este post, en el siguiente post explicaremos el uso y las diferentes tácticas de ataque que se pueden realizar con esta herramienta. 

Síguenos en Facebook, Twitter y unete a nuestra charla en Riot. También puedes dejar su donación a nuestra cuenta Paypal.