Hackeando sillas…

Hackeando sillas… sí, sillas.


El otro día estaba tomando algo con unos amigos en una cafetería de mi ciudad. Estábamos tan tranquilos charlando hasta que, de pronto, vi que en mi silla había un código QR pegado, obviamente el código era de la cafetería pero no sé adonde llevaba exactamente, soy muy reacio a acceder a los QR que desconozco…

El caso es que le dije a un amigo: “Tío, esto es muy hackeable, puedes pegar un código QR encima de este, que lleve al lugar que quieras y ya está”.

Como era de esperar mi amigo directamente me respondió: “Pero tu chaval, qué te crees, un hacker por sacar buenas notas?”.

Ahí empezó todo.

Los días siguientes estuve pensando qué podría hacer exactamente con ese código QR, no quería pagar ningún dominio o servidor que simulase ser Facebook (un phishing en toda regla) o algo del estilo. Sabía que sólo tenía dos limitaciones principales: el dinero y usar el QR.

Rebuscando por casa encontré una nodemcu que quería usar desde hace tiempo en algún proyectillo, así que ni lo dudé, me puse manos a la obra.

La idea principal…

Finalmente, me decanté por el siguiente procedimiento: El usuario se sienta en la cafetería y se conecta al Wi-Fi de la misma. Está tan tranquilo con su vida hasta que ve el código QR en la silla, el cual hemos pegado previamente nosotros. Lo escanea debido a su gran curiosidad y porque, quizá, se espere encontrar algún descuento increíble que no puede dejar escapar.

El QR le redirecciona directamente a una web alojada en un servidor creado dentro de la nodemcu y que está en local, es decir, en nuestra red privada (la de la cafetería). Si tenemos la suerte de que el usuario llega hasta aquí, sólo falta la parte fácil, que introduzca sus datos… Puede iniciar sesión con su correo y contraseña pero también, y esto es lo potencia principal, con Facebook y Twitter.

Nota: Si la cafetería tiene portal cautivo todo este proyecto no tendría sentido, porque no podríamos conectar la nodemcu a la red de la cafetería.

Tras iniciar sesión en el user-side no ocurre absolutamente nada pero, en la nodemcu, se guardan el email y la contraseña introducidos en cualquiera de los casos.

Por si alguien le interesa, los datos se guardan en la memoria EEPROM de la nodemcu. Decidí escribir los datos en esta memoria debido a que no es volátil, es decir, no se pierden los datos tras perder la fuente de alimentación.

Tras esto, el atacante coge la nodemcu, se va a su casa, ejecuta un script en la placa y lee todos los datos almacenados en ella. Y si tenemos buena suerte no sólo tendremos las credenciales de Facebook sino también las de otras muchas RRSS, gmail, etc… ya que es de sobra bien conocido que casi todo usuario normal pone la misma contraseña en todas partes, y qué bonita noticia es esta para un atacante ¿Verdad?.

Al final, lo que empezó siendo un “no quiero hacer un phishing” acabó en “vamos a hacer un phishing amigos!”.

La hora de la verdad…

Ahora vamos a hacer una pequeña prueba de concepto en casa usando las 3 maneras de conseguir las credenciales, obviamente todo esto se puede extrapolar al caso de la cafetería (tan sólo necesitas tener acceso a su Wi-Fi).

Para empezar, hay que dejar claro que hemos configurado la nodemcu para que cree el servidor en la dirección 192.168.1.184, por lo que si la cafetería tiene una subnet diferente o algo por el estilo deberíamos modificarlo en el código.

Para empezar vamos a generar un código QR que nos lleve a http://192.168.1.184 y vamos a escanearlo con nuestro móvil. Con esto se nos abrirá la interfaz principal, momento en el cual es usuario tendrá que introducir sus maravillosos datos.

En el siguiente gif se puede observar la introducción de los datos:

En el vídeo se aprecia como se introducen 2 veces las credenciales, una directamente y otra vía Facebook, ambas se han almacenado de forma instantánea en la nodemcu y el usuario víctima no es consciente de ello.

Ahora lo único que hay que hacer para leerlas sería ejecutar el script de lectura de la memoria EEPROM y listo.

Dándonos el siguiente resultado:

Resultado de lectura de la placa

Y con esto ya estaría hecho, como se puede observar el formato de las credenciales es [email:password].

Para todo aquel que esté interesado en usarlo y cacharrear, puede encontrar el código fuente usado en mi Github.

Fuente: David Alonso. > https://davidalonso1.medium.com/


Comentarios

Entradas populares de este blog

¿Qué significa cada emoji?

Este mapa contiene enlaces a todos los periódicos del mundo traducidos

Quishing: Los Peligrosos Códigos QR de los Estafadores

4 cosas que podrías perder si Google elimina tu cuenta

Cómo reparar una memoria USB o memoria SD dañada