Crackear WPA de modems Infinitum

Como ejercicio mental estuve pensando en el tiempo y costo que tomaría crackear la contraseña de mi router Infinitum que tiene cifrado WPA en modo PSK y la contraseña viene escrita en 10 caracteres hexadecimales en la etiqueta del aparato. Cabe recordar que antes de 2012 todos venían con cifrado WEP de 40 bits.

Para algunas marcas de estos modems, como Thomson y Huawei, existen herramientas disponibles al público (Router Keygen) que permiten calcular la contraseña sin mayor esfuerzo, esto se debe a que sus contraseñas por defecto vienen derivadas del BSSID (MAC Address del router). También existen otros ataques fáciles de realizar para routers con el protocolo WPS (muchos Infinitum lo traen), una herramienta para esto es reaver.

Para los casos en los que esto no funciona y la única opción es la fuerza bruta nos enfrentamos a dos cosas: (1) tenemos que obtener un handshake entre el modem y un cliente (tablet, laptop, etc.) conectado y (2) tratar de encontrar la clave a través de ese handshake. Para la primera parte se puede hacer un ataque con aircrack. Para la segunda parte vamos a suponer que ya tenemos nuestro handshake propio capturado, que contiene el Pairwise Master Key (PMK), y de donde vamos a recuperar la contraseña WPA original (ver nota final).

Existen dos herramientas principales para hacer lo más rápido posible el cálculo de PMKs, la primera es coWPAtty y la segunda pyrit. La ventaja de pyrit es que funciona sobre tarjetas gráficas (en la página vienen los benchmarks de PMK/segundo por modelo de tarjeta). En Amazon EC2 podemos rentar instancias de GPU y según alguien que ya hizo las pruebas llegó hasta 50,000 PKM/segundo, con un costo de $2.10 dólares por hora. En una hora se pueden calcular un total de 180 millones de PMK (aprox 2^{27.42}).

Si quisiéramos realmente probar todas las claves posibles, que en este caso son 2^{40}, nos tomaría con una sola instancia un total de 6,109 horas a un costo de $12,821 dólares. No quiere decir que nos tardaríamos meses porque este proceso es completamente paralelizable y con 36 instancias simultáneas en una semana se hace el cracking total.

Podemos concluir que es un costo demasiado elevado y aunque no es una seguridad perfecta está muy fuera del alcance de un cracker de medio pelo pero no para un gobierno. Este análisis también sugiere el tiempo/costo necesario para crackear una contraseña TrueCrypt de 8 caracteres alfanuméricos, que es equivalente a una de 41.3 bits (log_2(36^8)), sólo tomaría poco más del doble de tiempo y recursos. Así que si la NSA quisiera podría cracker fácil una contraseña así y por eso TrueCrypt recomienda contraseñas de 20 caracteres, para al menos lograr una seguridad de 103 bits.

Nota: El handshake WPA contiene la contraseña pero no en texto plano, lo que contiene es la derivación de esa llave (Pairwise Master Keys) a partir del algoritmo PBKDF2. Dicho pronto y mal para WPA se aplica 4096 veces SHA1 sobre la contraseña y utiliza como salt el SSID (nombre de la red), por lo que probar una clave no es tan trivial como calcular sólo un SHA1, además que el salt evita tener tablas universales precalculadas.

De balas perdidas, cines y Hendrik

Por la petición a gritos de un conocido hace tiempo, hice el ejercicio de calcular la trayectoria de una bala disparada por un arma calibre 9mm a la lejanía. Primero para saber hasta donde podría llegar, en qué angulo caía y por último para saber si era posible que el proyectil a su caída pudiera herir a alguien. Todo esto a raíz del sonado caso que ocurrió en la Ciudad de México, de un niño llamado Hendrik que recibió un proyectil en la cabeza mientras estaba en una función de cine. [Nota periodística]

La trayectoría balística

La manera más simple de calcular la trayectoria de una bala es mediante el movimiento parabólico, que dice que un objeto disparado desde el suelo con cierta inclinación recorre una parábola perfecta y toca el suelo con la misma velocidad con la fue disparado. Esta sería una aproximación muy buena si el objeto viajara a velocidades bajas, digamos a velocidades en donde a simple vista se pudiera observar perfectamente el objeto en movimiento, pero para el caso de una bala esto no es así por lo que es necesario considerar que el aire frena al objeto durante la trayectoria recorrida.

En el siguiente dibujo se puede observar la trayectoria ideal (en verde) y la trayectoria real (en rojo) de una bola de beisbol al ser lanzada. La trayectoria real, cuando se considera la fricción del aire, no describe tal cual una parábola y el ángulo de caída es más cerrado que el ángulo de salida.

Ejemplo de trayectoria

La cuestión es compleja y cada instante que el objeto viaja en el aire es frenado en cierta magnitud, dependiendo de la densidad del aire y el área del objeto. Para modelar esta desaceleración en conjunto con el movimiento parabólico es necesario usar una ecuación diferencial y el cálculo de la trayectoria se torna más complejo que simplemente dibujar una parábola.

Calculando la trayectoria

Para hacer el cálculo de la trayectoria, me basé en el artículo de Amanda Wade, GOING BALLISTIC: BULLET TRAJECTORIES. En el texto se describe cómo calcular la trayectoria real de una bala disparada por un rifle con cierta inclinación, considerando la desaceleración producida por el aire en el movimiento horizontal. Lo más interesante es que también detalla la manera de calcular esta trayectoria usando el Método de Euler, para ecuaciones diferenciales de primer orden y con ayuda de Excel.

Lo único que hace falta es considerar que la bala es diferente, con diferente masa, diferente área y velocidad inicial. Para este caso se considerará una bala de diámetro 9mm, masa de 8 gramos y velocidad de salida de 360 m/s. Con todo eso se puede calcular la trayectoria de un disparo “al aire”, digamos con una inclinación de 70º, ya que sería absurdo considerar un tiro vertical perfecto de 90º o tiro de 45º, porque la bala podría chocar antes con un edificio cercano. El archivo de Excel con las fórmulas se puede descargar de aquí [Bala Excel].

Una vez hecho el cálculo lo graficamos y podemos observar la trayectoria de la bala en el siguiente dibujo.

En resumen los datos que se obtienen indican que la bala alcanza unos 1,700 metros de distancia y otro dato muy importante, que no se puede observar en la gráfica pero en los cálculos detallados sí, es que la magnitud de la velocidad final al tocar el suelo es de 133 m/s, bastante menos que su velocidad de salida, pero letal. Se sabe, desde los años 20, que una bala desde 61 m/s atraviesa la piel [Ver artículo].

Ángulo de entrada

Un aspecto más que se debe analizar para efectos del caso que ocurrió en México es el ángulo de entrada. Digamos que si se quisiera uno proteger de esa bala colocándose atrás de una pared de 10 metros, ¿qué tan cerca tengo que colocarme de la pared para que la bala ni me roce?

El ángulo de entrada durante los últimos 100 metros de caída es de aproximadamente 7º. Por lo que si hacemos un diagrama considerando una pared de 10 metros, nos quedaría algo así:

bala-pared

Es decir que un adulto de 1.8 m de altura tendría que estar parado a 1 metro o menos de la pared para que la bala ni siquiera lo roce. Bastante cerca.

Otra observación que se puede hacer es que aunque el tiro fuera a 45º, el ángulo de entrada sería de aprox. 18º, por lo que aún así tendríamos que estar a 3 metros o menos de la misma pared para que ni nos roce la bala. Se ve muy minada la protección que podría ofrecer esa pared dado el ángulo de entrada.

Los Mythbusters

Los Mythbusters son especiales para abordar los asuntos quisquillosos y se dedican a hacer experimentos para decidir si cierta afirmación es: verdadera, posible o imposible. Lo único malo es que están muy bien producidos, son esclavos del rating y tienen que levantar polémica si no perdería lo interesante su programa, en el momento en que mencionen una ecuación diferencial perderían el 80% de la audiencia, caso contrario de lo que pasa cuando realizan disparos con una Barret calibre .50. No podemos culparlos, estoy hablando de ellos por su fama.

Ellos abordaron un asunto similar a este, pero disparando al aire en ángulo de 90º y concluyeron, pronto y mal, que la velocidad terminal impediría que una bala disparada al aire fuera letal al caer (o al menos eso es lo que entendió la audiencia). Lo único malo es que no dijeron, y nunca dicen, es que hacer un tiro de 90º perfecto es casi imposible y que cualquier tiro en un ángulo menor hace que la bala mantenga su giro, ya que las balas van girando al salir porque los barriles de las pistolas tienen forma de espiral por dentro para darles el efecto. Al mantener el giro la bala no simplemente sube y cae como un pedazo de metal, mantiene su posición con la punta hacia el objetivo.

Por ello se han escrito muchas entradas en otros blogs tratando de poner perspectiva a las afirmaciones de los Mythbusters. Aquí hay una en donde calculan las velocidades terminales para tiro en diferentes ángulos con calibre 9mm. Y un artículo de wikipedia sobre tiros de celebración al aire.

Conclusión

Haya sido como haya sido la “imbestigación” de las autoridades en México, el pésimo manejo de Cinépolis, etc. etc. Muy al estilo de los Mythbusters: un niño sentado en un cine SÍ puede morir por una bala al aire que cae y atraviesa el endeble plafón del techo del cine. Además el cráneo de un niño es más suave que el de un adulto, porque somos el mamífero que tiene el mayor crecimiento del cerebro postparto.

Sesión SSH duradera

Las conexiones SSH, así como las HTTP y de otros servicios, tienen por defecto una política de timeout que cierra la conexión si no hay actividad, por seguridad y por eficiencia para liberar los recursos no usados.

En muchas ocasiones, como cuando se hacen túneles SSH, es más cómodo mantener una conexión abierta que no se cierre por timeout. Una manera de hacerlo es mediante las políticas del servidor SSH, pero otra manera más sencilla es hacerlo por cada conexión desde el cliente.

Comúnmente en los clientes SSH en Unix están las opciones TCPKeepAlive y ServerAliveInterval. La primera indica que se quiere mandar un paquete SSL por TCP hacia el servidor para mantener la actividad y la otra indica el intervalo en segundos en el cual se van a mandar los paquetes. Un ejemplo de uso sería el siguiente:

ssh -o TCPKeepAlive=yes -o ServerAliveInterval=5 usuario@servidor

Así ya podrán mantener sus sesiones de SSH abiertas todo el tiempo que quieran y no olviden cerrarlas cuando las dejen de usar.

Developer Tools incompletas en OS X Lion

Después de hace unos meses de usar el OS X Lion y tener previamente instalado XCode 4 desde la App Store, me veo en la necesidad de instalar el comando watch con MacPorts, y cual es mi sorpresa que me muestra un error rarísimo, y un poco más tarde trato de instalar un módulo de Perl y oh sorpresa el comando make no esta instalado, por lo que me doy cuenta de que el XCode que instalas desde la App Store no viene la opción de “Command Line Tools” que en versiones pasadas era muy facil instalar, y bueno solo les dejo el tip de que para bajar dichas herramientas necesitan estar registrados como desarrolladores y bajarlas desde aqui una vez instaladas todo vuelve a la normalidad.

Que puedo decirles no estoy a favor de que Apple se olvide de los Power Users pero en fin…

Udacity la nueva universidad en línea y gratuita por Sebastian Thrun

Sebastian Thrun, lanzó la primera universidad en línea llamada Udacity la cual trata de dar clases de buen nivel a todo el mundo, después de que su experimento de “Introducton to AI” lanzado en conjunto con Stanford diera buenos resultados, yo tome el curso pasado y aprendí como nunca y ahora con Udacity ya la hemos probado nosotros y de hecho estamos inscritos a los cursos y vaya que son buenos.

La idea de estos cursos es que cada quien pueda tomarlos a la hora que mejor se le acomode, parece una idea muy prometedora!!

Cuando le preguntaron a Sebastian Thrun porque renunció a Stanford dijo:

Having done this, I can’t teach at Stanford again, you can take the blue pill and go back to your classroom and lecture to your 20 students, but I’ve taken the red pill and I’ve seen Wonderland.

Muy al estilo Matrix!! y además comentó:

I am against education that is only available to the top 1% of all students. I am against tens of thousands of dollars of tuition expenses. I am against the imbalance that the present system brings to the world. I want to empower the 99%. I want to democratize education. Education should be free. Accessible for all, everywhere, and any time.

Help me spread the world. I can’t do this alone.

Palabras de Sebastian Thrun

Fuentes:

http://www.msnbc.msn.com/id/46138856/ns/technology_and_science-innovation/#.T0yZjHJAYzB

http://robots.stanford.edu/index.html

Mejores prácticas para Time Machine

A estas alturas del partido, dado el uso extendido de las computadoras en todos los ámbitos, es ya imprescindible mantener respaldos de todo el trabajo realizado para no pasar un mal rato cuando el disco duro falle, y lo peor de todo es que la vida útil de un disco duro es menor que cualquier otro componente de una computadora (salvo la batería quizá).

Hace poco tuve un accidente con mi MacBook Pro y el disco fue lo único que se dañó, porque también es el componente más sensible a una caída (ya ni la pantalla) y no se volvió inservible, pero se dañó lo suficiente para que no todos los archivos fueran recuperables, por lo que perdí casi toda mi música y algunas otras cosas. Lo único bueno es que generalmente mis proyectos de software están en un SVN por lo que no perdí información trascendental y valiosa. Pero para cualquier desarrollador es muy engorroso y lento instalar de nuevo todo el software que utilizas de diario, por lo que me arrepiento tanto de no haber tenido un Time Machine.

Antes de hacer mi copia me estuve informando y estuve pensando seriamente cómo debía hacer este proceso, por lo que aquí les dejo unas recomendaciones:

  1. Compra un buen disco duro externo, con capacidad de al menos el doble de capacidad de tu disco duro actual
  2. La versión inicial de Time Machine es muy importante, porque de ahí se derivará todo un árbol a futuro de los cambios que se vayan haciendo a tus archivos
  3. Baja una herramienta como GrandPerspective o DaisyDisk para observar cómo está distribuido el espacio en tu disco actual.
  4. Organiza tus archivos, haz un directorio llamado “NoBK” en donde vayan archivos grandes o cosas que ocupen mucho espacio y que si el día de mañana no estuvieran no tendría importancia.
  5. Algunos discos duros externos vienen con algún formato o traen herramientas para formartearlos. Lo mejor será abrir la Utilidad de Discos, borrar todo el disco y formatearlo en Mac OS Plus
  6. Antes de hacer la primer copia de seguridad, configura tu Time Machine y excluye tu carpeta “NoBK” y la de “Descargas”. Algunos recomiendan otras de sistema pero es un error si quieres poder recuperar tu instalación actual en caso de un percance
  7. Haz tu copia de seguridad inicial y procura diario hacer una al menos por las noches

Time Machine no sólo sirve para hacer copias de seguridad en caso de daño a tu disco o robo, también si quieres jubilar tu actual Mac a una más nueva puedes usar la copia de Time Machine para restaurar tu instalación en otro equipo.

Otra reflexión interesante cuando ocurrió el percance, es que mis datos más importantes nunca estuvieron en peligro, porque actualmente todo está en la nube, el correo, documentos, calendarios y código fuente en svn.

Si en lugar de usar Time Machine quieres algo más ubiquo y en la nube puedes probrar CrashPlan, es un servicio que te permite hacer respaldos en la nube, pero debes tener una muy buena conexión para que sea útil.

Inseguridad Telmex

Estaba yo navegando por la página de El Universal, cuando veo un anuncio enorme en donde Telmex ofrece servicios de seguridad perimetral en redes. Sé que muchos ya estarán riéndose de esto, pero algunos pensarán que como es una empresa grande (que gana mucho dinero) alguna calidad deben tener sus servicios y algún otro tal vez hasta piense contratar esto para su empresa ¡cuidado!

Es bien sabido que Telmex es la principal empresa proveedora de enlaces a internet en este país y en el mundo de la seguridad (sobre todo para los amantes de aircrack) es además bien sabido que son la principal empresa que instala sus modems preconfigurados con la insegura y obsoleta tecnología WEP para proteger el acceso a las redes inalámbricas de cada punto de acceso. Para decirlo pronto y claro, cualquier persona con un pequeño entrenamiento puede colarse a la red inalámbrica de tu casa si es que tienes Infinitum.

Con esta información, da mucha risa que ofrezcan estos servicios de “seguridad” cuando sería trivial colarse a la red local de una empresa que tenga contratado un Infinitum, por más firewall, VPN e IPS que tengan configurado. Una vez dentro de la red local “de ahí pal real” con todas las máquinas Windows que tengan, recursos compartidos en red, conversaciones en MSN, passwords que viajen en texto plano (sin https), etc.

Al final es triste recordar la incultura en seguridad que se tiene en el mundo empresarial, las pésimas políticas que se adoptan y los engaños de marketing que les cuelan. Lo peor es que no se limita a México, sino en todo el mundo es lo mismo.

Si quieren verdadera seguridad para sus servicios, ahí les dejo nuestro enlace.

P.D. Dado que no quiero darle referencias de este blog a esa abominación de empresa llamada Telmex usé la etiqueta rel=”nofollow” para el enlace.