Conexiones

Esta entrada puede resultar poco amena, ya que es una descripción algo técnica de una manera muy simple para evitar la protección por filtrado de MAC en redes WiFi

La semana pasada, mi conexión a la red de la universidad dejó de funcionar. Pasó lo mismo que otras veces: de pronto, se fue la señal en la toma Ethernet de mi cuarto, como si alguien hubiera cortado el cable. Parece ser que el problema es el switch de mi bloque, ya que a veces bloquea puertos sin motivo. Se supone que sólo debería cerrar un puerto cuando detecta en él alguna actividad no permitida, como por ejemplo que el ordenador conectado tenga una dirección MAC o IP distinta a la que está registrada para ese puerto.

Durante más de una semana no hubo señal en la toma Ethernet :(

Hace algunos días apareció un aviso en la puerta del edificio, en el que un vecino pedía firmas para que cambiaran el switch por uno que funcione bien. El problema es que el Studentenwerk no quiere pagar los 2000 € que cuesta uno nuevo, ya que me imagino que no lo ven necesario: el que hay ahora funciona y sólo hace falta reajustarlo cuando bloquea algun puerto. Sin embargo, parece ser que los admins de la red no siempre tienen tiempo, por lo que puede pasar más de una semana hasta que se arregla, como ha ocurrido esta vez.

Firmé en el aviso por si acaso, pero no se si servirá de algo. La verdad es que no tener Internet es un problema, sobre todo cuando no hay clases: el lunes todavía fui a la universiadad para conectarme, pero el resto de la semana decidí molestar una vez al día a mi compañera de piso para que me dejara usar su ordenador un rato. Mientras tanto, me entretuve buscando información acerca de seguridad en redes WiFi, siempre con fines unicamente educativos :D

Captura de "airodump", una herramienta para análisis de seguridad en redes WiFi

En mi cuarto se reciben cinco redes inalámbricas, de las cuales cuatro están protegidas por WPA2. Aunque es un cifrado mucho más seguro que WEP, parece que es bastante fácil obtener la contraseña: simplemente hay que echar de la red a un ordenador que ya esté conectado a ella, de manera que vuelva a autenticarse enviando la contraseña. A pesar de que la envia cifrada, es posible capturar los paquetes de autenticación y utilizarlos para obtener la clave por fuerza bruta. Es decir, hay que coger un diccionario y cifrar cada una de las palabras: si el resultado es el mismo que el contenido del paquete capturado, la clave es la palabra del diccionario que se acaba de cifrar.

Para que el truco funcione, la clave debe ser una palabra habitual que esté contenida en el diccionario: es decir, se trata de aprovechar la tendencia habitual de los usuarios a elegir palabras existentes como contraseña. Sin embargo, para poder capturar el 4-Way-Handshake de autenticación, hace falta una tarjeta de red que pueda funcionar en modo monitor. El problema es que la mayoría de las tarjetas integradas descartan todo el tráfico que no esté dirigido a su MAC o a direcciones de difusión.

4-Way-Handshake para puntos de acceso con WPA2

La quinta red inalámbrica que se ve en mi cuarto no está cifrada, pero rechaza las conexiones de sistemas cuya MAC no esté registrada en el punto de acceso: sin embargo, esa protección por filtrado de MAC es bastante fácil de evitar. Sólo hace falta cambiar la MAC del ordenador que se quiera conectar a la red por una dirección válida en el sistema. Según lo que he leido en algunas páginas, hay que seguir los siguientes pasos:

  1. Trabajar en Linux o cualquier otro sistema operativo que permita cambiar facilmente la dirección MAC de una interfaz de red. Se supone que en Windows también se puede, pero es bastante más complicado Los demás pasos están descritos para una distribución Ubuntu.
  2. Desactivar la configuración automática de red. Para ello, hay que hacer clic derecho en el icono del gestor de redes que hay arriba a la derecha y deseleccionar la opción "Activar red" del menú emergente que aparece.
  3. Instalar Aircrack-ng, que es un conjunto de herramientas relacionadas con seguridad en redes WiFi: sudo apt-get install aircrack-ng
  4. Iniciar el interfaz de red en modo monitor con sudo airmon-ng start wlan0, en donde el parámetro "wlan0" identifica la tarjeta de red que se quiera utilizar.
  5. Listar las redes actuales con sudo airodump-ng wlan0. En la parte superior se listan los puntos de acceso y en la parte inferior los ordenadores que se han conectado a ellos. Sólo hay que buscar un ordenador que esté en la red protegida por filtrado y apuntar su dirección MAC.
  6. Antes de falsear la MAC puede ser interesante apuntar la dirección original para poder reestablecerla más tarde: se puede obtener ejecutando ifconfig.
  7. Para cambiar la MAC sólo hace falta ejecutar sudo ifconfig wlan0 hw ether MAC_apuntada_en_paso_cinco
  8. Finalmente hay que reactivar la configuración automática de red volviendo a marcar la casilla "Activar red" del segundo paso. Si la red tiene DHCP, se debería configurar automaticamente. Sino, puede ser necesario ajustar la dirección IP, la máscara de subred, la puerta de enlace y el servidor DNS de la forma habitual. Para obtener esos datos, puede ser interesante utilizar Wireshark.

Por supuesto, sólo pongo las instrucciones por si acaso alguien quiere probarlo con su propio punto de acceso ;) La verdad es que las redes me entretienen mucho: podría estar horas viendo pasar paquetes en Wireshark e intentando entender su significado :D

Red Light District

La semana que viene se va Daniel, uno de mis compañeros de piso, ya que ha terminado el proyecto fin de carrera este semestre: es decir, ya no es estudiante, y por lo tanto no puede seguir viviendo en la residencia. En los últimos meses ha estado buscando trabajo y la semana pasada ha conseguido un puesto en Stuttgart. Me da pena que se vaya, ya que la verdad es que en estos últimos meses siempre ha dado mucha vida a nuestro piso compartido. Además le encanta cocinar, por lo que gracias a su ayuda he aprendido algo en estos últimos meses :)

En nuestra residencia cada piso puede elegir quien sustituirá a los que se van: en nuestro caso no conociamos a nadie que estuviera buscando habitación, asi que simplemente lo anunciamos. Hubo bastantes interesados, de los que elegimos a los que habían escrito los mails más motivados para que vinieran a una entrevista. Al final la mayoría no vino ya que encontraron otro piso antes, de manera que la decisión fue fácil: nuestro nuevo compañero será Stephan, un estudiante de 22 años que acaba de empezar "Maschinenbau".

Al final no ha sido posible seguir los sabios consejos

La novia de Daniel nos propuso organizar una fiesta de despedida sorpresa en nuestro piso este viernes. Aprovechando que mis dos compañeras de piso ya tenían intención desde antes de Navidades de hacer una "Red Light District Party" en casa, esa fue la temática elegida. Creo que al final fuimos unas treinta personas, de las cuales algunos nos atuvimos menos al tema de la fiesta que otras, pero eso tampoco fue mayor problema :D

Un amigo se dedicaba a "pagar" a las invitadas con estos billetes: iba disfrazado de cura :D

Daniel estaba plenamente convencido de que ayer por la noche ibamos a hacer una cena de despedida tranquila en casa: quedamos en que él se encargaría de preparar "Maultaschen-Lasagne", un experimento que consiste en sustituir las laminas de pasta por "Maultaschen". Como en casa no tenemos el horno que hace falta para la lasaña, fue con un amigo a la cocina comun que hay en uno de los edificios antiguos, mientras en casa supuestamente preparabamos otro plato.

En realidad, nos dedicamos a sustituir las bombillas blancas por rojas y a mover muebles para despejar la cocina. Como la zona común no es muy grande, también hicimos sitio en el cuarto de Rossana. Habíamos quedado con Daniel que empezaríamos a cenar a las ocho, pero la lasaña tardó más de lo esperado: cuando al fin vino, se quedó sin palabras. Como era de esperar, a lo largo de la noche fue llegando la mayoría de la gente. La verdad es que nunca hubiera imaginado que cupieran tantas personas en nuestra cocina!

Ibamos a sacar la mesa de la cocina, pero fue imposible pasarla por ninguna puerta

Para la música utilizamos el equipo de Daniel, que tiene dos altavoces bastante respetables. Sin embargo, sólo cubrían la cocina, dejando el cuarto de Rossana demasiado tranquilo. Por ello, dedique gran parte de la noche a configurar el VLC para enviar por streaming el audio desde el portatil que estaba conectado al equipo de música grande a otro portatil en el cuarto de Rossana, que estaba conectado a unos altavoces más pequeños. Lo más complicado fue conseguir acceder al portatil principal, ya que siempre había alguien queriendo cambiar la lista de reproducción.

Al final lo conseguí, pero curiosamente el sonido se recibía muy distorsionado: supongo que elegí una tasa de bit demasiado pequeña para el streaming. En cualquier caso, fue un entretenimiento estupendo para pasar el rato. Como era de esperar, realmente no participé demasiado en la fiesta. Aunque podría justificarlo diciendo que apenas conocía a nadie aparte de mis compañeros de piso, sólo sería una excusa. Bueno, tampoco es nada nuevo.

Entre tres hemos terminado de fregar en seguida

Esta mañana, nuestro piso tenía un aspecto interesante. Una vez más he podido comprobar que el suelo de la cocina tiene una propiedad curiosa: tanto cuando esta limpio como cuando está sucio, tiene el mismo color y aspecto. El único indicativo de que a lo mejor habría que limpiarlo era que estaba pegajoso :D A lo largo del día hemos recogido todos los restos, hemos fregado innumerables vasos y hemos coleccionado las más de sesenta botellas de cerveza vacías para recuperar el famoso "Pfand" (Fianza).

A la hora de la cena, la casa volvía a tener el aspecto de siempre. La verdad es que ha sido interesante ver nuestro piso tan distinto de lo habitual: por ejemplo, hasta ahora siempre había asociado el espacio de la cocina a comer, pero nunca me lo había imaginado como una pista de baile. Aunque hay muchas fotos de ayer, no las puedo poner, principalmente porque no las tengo, asi que en este caso dejo la ilustración a cargo de la imaginación de cada cual :D

Competiciones

Hace algunos meses escribí acerca de un robot de LEGO Mindstorms que tenía que programar para una de las asignaturas que he tenido este semestre. Como esta ha sido la última semana de clase, el miércoles hubo una competición en la que cada grupo presentó su solución al problema. El grupo que más puntos consiguiera y que terminara en menos tiempo, ganaba. Eso si, a pesar de que programar el robot sea parte de la asignatura, ganar no influye en la nota final.

En la competición participaron diez grupos

Se trataba de programar al robot de manera que atravesara un tablero dividido en varias zonas, comunicadas entre si mediante portales. El robot no podía cruzar por completo ninguna línea continua, aunque se permitía que las sobrepasara un poco, ya que los sensores de luz no están delante del todo. El objetivo era llegar al otro extremo, coger una lata con las pinzas, volver a la zona inicial y soltar la lata. Para que nadie programara al robot siguiendo un camino fijo, el miércoles los portales estaban desplazados respecto a como estaban en el laboratorio.

El robot volviendo a la zona de inicio después de haber recogido la lata

Creo que sólo había dos posibles soluciones: una fácil y otra dificil. La fácil era ir buscando los portales probando cada cierto tiempo a ir en dirección hacia la lata, mientras que la dificil consistía en ir recorriendo las líneas. En mi grupo decidimos programarlo de la manera fácil, ya que ninguno teníamos tiempo para pasar demasiadas tardes en el laboratorio. A mi me hubiera encantado dedicarle más tiempo, ya que la verdad es que programar el robot era muy divertido :)

Eso si, también había soluciones ingeniosas: por ejemplo, un grupo decidió no complicarlo tanto, sino programar al robot para que fuera recto saltandose varias lineas negras, cogiera la lata y volviera marcha atrás al inicio. A pesar de que les restaron puntos por atravesar lineas, sacaron más puntuación que otros grupos que intentaron programarlo de alguna de las maneras correctas :D Además, no había quien les ganara en cuanto a tiempo: sólo tardaron 26 segundos!

Las puntuaciones y los tiempos: nosotros eramos el grupo siete

Sólo hubo un grupo que eligió la solución complicada: fue el ganador, aunque no por puntuación, sino por tiempo. Al final nosotros quedamos segundos, lo cual no está nada mal teniendo en cuenta el poco tiempo que pudimos dedicar a programar el robot. Eso si, también es cierto que la diferencia con el tercero eran tan sólo dos segundos :D Al final, el profesor dio a cada uno un diploma en el que se refleja el puesto en el que quedó su grupo :) Pude grabar nuestro intento con el móvil, asi que he subido el video por si alguien quiere verlo:

En el video el robot empieza en la segunda zona, ya que empecé a grabar un poco tarde

De momento tengo inlcuso dos, ya que uno de mis compañeros no fue a la competición

El viernes por la tarde fui con los amigos de mi piso a ver una representación de deportes y bailes organizada por la universidad, ya que una de mis compañeras de piso actuaba con su grupo de streetdance. La verdad es que mereció la pena, ya que todas las actuaciones estuvieron muy bien: hubo desde Aikido hasta Capoeira, pasando entre otros por acrobacia, trampolín y boxeo! El grupo de mi amiga bailó Technologic, con una coreografía realmente impresionante: el video en Facebook se puede ver aquí.

El programa incluía veinte actuaciones

Esta canción también aparecía de fondo en el video que puse de la DreamHack

Hasta ayer por la noche no tuve Internet, ya que me habían vuelto a cortar la conexión, por lo que no he podido escribir la entrada hasta hoy. Por suerte, parece que esta vez sólo fue un error, ya que de pronto volvió a funcionar. Mientras tanto, sigo evaluando la posibilidad de escribir una entrada significativa en relación con los origenes de este blog. A lo largo de los últimos meses he aprendido un montón de cosas a las que a lo mejor merece la pena dar forma escrita, pero no se si a alguien le interesará.

Cansancio

Ultimamente estoy muy cansado: aunque es cierto que no duermo demasiado, normalmente no me afecta tanto. A pesar de que hoy he dormido más de siete horas, sigo cayendome de sueño al estudiar y leer artículos de investigación. En general lo resuelvo con siestas cortas de veinte minutos, pero creo que nunca las había necesitado tantas veces al día. Después de cada siesta estoy bien durante unas cuantas horas, hasta que vuelve el cansancio.

Tampoco parece que la situación vaya a mejorar, ya que todavía queda casi mes y medio hasta que termine los exámenes. Al menos, sólo queda una semana de clase: el próximo viernes empiezan las "Semesterferien", que duran hasta que empiece el segundo semestre el 12 de Abril. Por suerte pude adelentar uno de los exámenes orales que tengo este semestre, ya que las fechas propuestas por el profesor son a mediados de Abril!

Mientras tanto, supongo que tendré que abandonar mi idea de dormir sólo seis horas al día, al menos hasta que no consiga un analizador de sueño que me despierte en el momento oportuno para no estar cansado. A lo mejor también tiene que ver con la falta de luz: como decía Lara, aunque no lo creamos, detras de esas nubes grises hay cielo azul y un sol esplendido :D De momento, me han dicho que el verano en Darmstadt es impresionante, aunque no se si creermelo...

Darmstadt el verano pasado: es cierto que la plaza al menos no estaba cubierta de nieve...

Una semana interesante

La semana pasada no pude escribir ninguna entrada, ya que me cortaron Internet en la residencia :( Después de varios días sin conexión, conseguí hablar por fin con el administrador de la red y enterarme de la razón del corte: unos días antes me había asignado manualmente a mi mismo una IP durante unos minutos, ya que el servidor DHCP no funcionaba, y parece ser que eso está prohibido. El switch cerró automaticamente mi puerto, que sólo puede ser abierto de nuevo por el admin. Por suerte, no puso demasiadas pegas para volverlo a abrir.

Después de lo que me pareció una eternidad, el lunes recuperé mi conexión. Ese día preparamos cena entre todos en casa: a sugerencia de Max, hicimos una tortilla en honor a Pablo, nuestro compañero de piso que en Diciembre volvió a Castellón tras entregar el proyecto fin de carrera. Era un experto haciendo tortillas, asi que intentamos seguir su receta al pie de la letra según lo que nos acordabamos. La verdad es que al final el resultado estuvo muy bien :)

La tortilla estaba acompañada de ensalada trielemento: maíz, tomate y atún

El martes fue un día complicado, ya que me convencieron para ir a ver Avatar por la tarde, a pesar de que tenía clase hasta las 19:30 y el miércoles tenía que estar de nuevo en la universidad a las 08:00. Fuimos a ver la versión en 3D y la verdad es que me gustó bastante: sobre todo me sorprendió que no se me hiciera larga, a pesar de durar más de dos horas y media. Eso si, en mi caso al menos, en cuanto estuve inmerso en la historia, apenas me daba cuenta del efecto 3D. En cualquier caso, la pelicula merece la pena!

Un poco antes ese mismo día, al principio me costó creer lo que veía. Fue una sensación muy extraña, casi irreal: de pronto, después de 1 año, 5 meses y 20 días, la pulsera se soltó. En cierta manera tuve suerte, ya que ocurrió en casa y no la perdí. Intenté volver a atarla, pero el lazo que hay en un lado del cierre ya sólo tiene un hilo que está muy débil, por lo que tenía miedo de que se rompiera del todo. Además, en caso de que hubiera conseguido atarla, podría perderla en cualquier momento sin darme cuenta.

Excepto el cierre, la pulsera está en buenas condiciones

Por ello decidí guardarla, después de llevarla ininterrumpidamente durante casi un año y medio: por suerte todavía tengo la segunda pulsera :) El martes pensé en volver a sujetar la primera mediante el único imperdible que tengo, pero creo que eso sólo hubiera roto aún más la pulsera. La verdad es que ambas me hicieron muchísima ilusión cuando ella me las regaló, por lo que siempre me ha encantado llevarlas :)

El miércoles tuvimos clase práctica de redes móviles: el ejercicio consistía en aprender a programar un sensor SunSPOT en Java. Se trata de un nodo  diseñado para formar parte de una red de sensores inalámbrica (WSN) con LEDs, acelerómetros, sensor de temperatura y conexión inalámbrica ZigBee. Como apenas nos dio tiempo a configurar los portatiles para poder programar el nodo, a cada grupo nos dejaron llevarnos uno para terminar el ejercicio en casa, a pesar de que cada SunSPOT cuesta más de 200 €!

De momento, he conseguido cambiar el color del segundo LED :D

El viernes estuve grabando con Pablo una demo de la practica que hemos hecho este semestre, ya que el martes tendremos que enseñar el video durante la presentación final. En principio sólo ibamos a grabar por la mañana, pero como era de esperar, al final tuvimos algunos problemas y estuvimos casi todo el día en el laboratorio. Esta mañana he subido el video a YouTube, asi que lo pongo por si a alguien le interesa: se trata de localizar un dispositivo dentro de un edificio analizando unicamente redes WiFi y BlueTooth.

A veces, mi inglés deja bastante que desear: el texto de los comentarios está aquí

La verdad es que ha sido una semana interesante: no se como será la próxima, pero de momento la lista de cosas importantes por hacer no hace más que crecer :( Ejercicios, estudiar, repasar clases, estudiar, mandar mails, estudiar, preparar presentaciones, estudiar, entregas, estudiar... Es decir, por ahora estoy bastante entretenido :D