viernes, 25 de octubre de 2019

Pwnagotchi, un adorable nuevo gadget para auditar redes WiFi

Hoy vengo a hablaros de lo que a simple vista parece un simple gadget pero que realmente más que eso, detrás de su aspecto amigable y "de juguete" se esconde una gran herramienta que puede facilitarnos mucho las cosas y automatizarnos de forma autónoma algunos pasos en nuestras auditorias inalámbricas: el Pwnagotchi!!


Pwn-a-que!!??

Pwnagotchi, si, en una clara reminiscencia a aquel juguete electrónico-tecnológico de mediados de los 90 llamado Tamagotchi que nacía de de un huevo en una pantalla LCD y acaparaba periódicamente nuestra atención solicitando comida, juegos y mas atenciones mientras iba creciendo... pero este Pwnagotchi es totalmente autónomo y solo hace una cosa: comer!, se alimenta "zampando" handshakes WPA de toooooda aquella red WiFi que pilla a su alcance, constantemente y sin cesar pero de modo inteligente añadido (aunque a veces tratará de seducirte y hacerte guerra psicológica poniendo caritas tristes y pidiéndote que lo lleves pasear a la vez que te dice lo aburrido que está).

Thrust, mi pwangotchi, en un día aburrido falto de redes al alcance y handshakes que zampar.

Pwnagotchi es un proyecto desarrollado y llevado a cabo por @evilsocket (creador de la conocida herramienta Bettercap enfocada al reconocimiento, escaneo y ataques de red) y cuyo objetivo inicial primitivo que persigue es el de "weaponizar" una Raspberry Pi Zero W sacando el máximo jugo de la Rest API de Bettercap y dotando de una interface gráfica que permita seguir de cerca sus avances (y de paso para ponerle "cara" al bicho) para lo cual implementa compatibilidad para 4 modelos diferentes de pantallas de tinta liquida e-ink.

Lo que empezó en sus inicios siendo solo un dispositivo para realizar "deauth-attacks" y almacenamiento de los handshakes WPA2 de forma automatizada pronto cobró inteligencia mediante TensorFlow y aprendizaje por refuerzo (Deep Reinforcement Learning) para adaptarse así al entorno al entorno que lo rodea en todo momento y volverte aún más selectivo y efectivo en la recolección de los handhsakes (para los interesados en sabes más sobre AI y A2C os dejo este y este link).
Entre todas las cosas que Pwnagotchi aprendió esta la de comunicarse con sus iguales! Y es que si detecta otro pwnagotchi en las inmediaciones, automáticamente se asocian entre ellos y comienzan a trabajar en modo colaborativo (por ejemplo repartiéndose el numero de canales WiFi en los que ir analizando redes disponibles publicadas).

Cuando Thrust encontró a Grijander...

Recientemente no deja de recibir upgrades e implementaciones nuevas como diferentes caras/gestos, soporte para diferentes idiomas o un modulo crypto para el intercambio de mensajes cifrados extremo a extremo con las claves RSA entre distintas unidades pwnagotchi.


Hardware necesario

Para todos los que os animéis a probarlo, a continuación os pongo el listado de hardware necesario para llevarlo a buen puerto:
  • Raspberry Pi zero W (aunque teóricamente también corre sin problema en Raspberry standard en sus versiones 3 y 4, yo lo he instalado con éxito en una 3B).
  • Tarjeta MicroSD de, al menos, 8 Gb.
  • Cable USB-MicroUSB que, además de carga, permita también el intercambio de datos si queremos alimentar la raspberry a través del puerto USB de nuestro ordenador (lo cual también nos ofrece posibilidad de compartirle la conexión a Internet desde el ordenador y el acceso por navegador web a la interface de usuario). 
  • [Opcional] Powerbank (yo personalmente uso una standard de petaca, pero si queréis algo que se ajuste a las medidas de la Raspi puedes valorar una PiSugar PowerPack o UPS Lite V1.1). Lo marco como opcional porque tenemos una opción muy interesante de alimentar nuestra RasPi através del puerto usb
  • [Opcional] Pantalla e-ink: en el momento de escribir este artículo las pantallas compatibles con las Waveshare eInk 2.13” Display (en ambas versiones V1 and V2), Pimoroni Inky pHAT y PaPiRus eInk Screen. Lo marco como opcional porque Pwnagotchi nos ofrece una UI web a la que podemos acceder a través del navegador cuando la conectamos a nuestro ordenador para alimentarla.

Proceso de Instalación

En el momento de escribir este artículo estamos de suerte y gracias al esfuerzo de su creador ya han quedado atrás la instalación manual de Bettercap, R4ason-Kernel, Tensorflow y el resto de dependencias y librerías necesarias en las primeras versiones del proyecto (algún fin de semana entero ha caído tirándome de los pelos con ello, lo reconozco!).
Actualmente el proceso se limita a descargar la última versión de la imagen estable desde la sección de despliegues de su GitHub y proceder a planchar esa imagen en la tarjeta MicroSD.

Hay unos pasos de configuración previos al primer arranque que deben realizar y que pueden llevarse a cabo directamente sobre el sistema de archivos de la MicroSD una vez montando la unidad.

IMPORTANTE: en el primer arranque, todo tarda un poco mas de lo normal en ponerse "en el sitio" y en empezar a funcionar, es debido a la creación de las claves RSA. Es importante ser pacientes y no caer en la tentación de interrumpir el suministro electricio de la Raspberry pues puede corromper el sistema.


Usando el Pwnagotchi

Tal como ya se ha descrito mas arriba, el pwnagotchi es totalmente autónomo (siempre y cuando tenga alimentación externa) pero su modo de funcionamiento (AUTO o MANUAL) vendrá determinado por el modo de alimentación con el que arranquemos nuestra Rapsberry.

Si la RPi0W arranca con alimentación por el puerto MicroUSB de solo alimentación (el mas cercano al borde de la placa) en cuanto levante el sistema y nuestra pantalla empiece a refrescarse ya comenzará a buscar redes WiFi y tratar de capturar sus handshakes. Si por el contrario usamos el otro puerto MicroUSB cuando la alimentamos desde nuestro ordenador para, por ejemplo, compartirle la conexión a Internet o conectarnos por SSH ella, el sistema inicia pero el Pwnagotchi no comenzará a rastrear WiFI hasta que no arranquemos manualmente el servicio pero si tendremos acceso a la interface web tanto de Pwnagotchi como de Bettercap.

ui


Existe un tercer modo (habilitado por defecto en la configuración) llamado AI al que cambia el modo AUTO después de unos 20/30 minutos, que son los que necesita el sistema para cargar las dependencias de la red neuronal. Una vez que las dependencias están cargadas el modo AI escogerá el conjunto óptimo de parámetros a utilizar en sus rastreos de redes en tiempo real dependiendo de cuánto tiempo haya sido entrenado.

En la página oficial del proyecto el creador os ofrece fotografías e informaciones detalladas y claras sobre cada una de las información que se muestran en la interface gráfica del Pwnagotchi.

ui


Usando el Pwnagotchi sin pantalla, a través del navegador

Si no disponemos de pantalla e-ink pero queremos visualizar la GUI del Pwnagotchi tenemos la opción de alimentar la RPi0W desde un puerto usb de nuestro equipo como indiqué más arriba. Al conectar la rapsberry a nuestro ordenador, este la reconocerá como un adaptador de de red y para poder conectarnos a ella debemos asignarle una IP estática acorde a la siguiente configuración:
  • IP: 10.0.01
  • Mask: 255.255.255.0
  • Gateway: 10.0.0.1 
Una vez aplicados los cambios probaremos conectividad lanzando un ping a la ip del pwnagotchi (por defecto 10.0.0.2) y si obtenemos respuesta ya podremos conectarnos a ella mediante SSH e igualmente acceder a su interface web dedicada navegando a http://10.0.0.2:8080



Nota: http://pwnagotchi.local:8080/ también nos dará acceso pero en algunos casos dependiendo de si el OS host de nuestro equipo sea windows, quizás necesitamos la instalación de Bonjour para que reconozca el .local en las url.

Si en vez de a la UI de Pwnagotchi queremos acceder a la UI de Bettercap, debemos acceder directamente a http://pwnagotchi.local (sin especificar ningún puerto esta vez).




Plugins y mas funcionalidades

Por defecto el sistema dispone de varios plugins ya pre-cargados que podemos utilizar a nuestro antojo entre los que se encuentran algunos muy interesantes como por ejemplo almacenar las ubicaciones GPS de las redes que procesa (muy práctico para wardriving) o la posibilidad de subir automáticamente los handshakes a 3 plataformas online de cracking WPA2 (cuando le compartas conexión a Internet).



Conclusiones y Opiniones personales

Lo cierto es que he de admitir que para mi este proyecto ha sido muy emocionante en cuanto a su "nacimiento" y el ímpetu y el grandísimo esfuerzo de su creador que se esfuerza en todo momento en implementar mejoras, updates y es un proyecto que esta muy "vivo" y que no para de crecer.
Cuando empecé las primeras instalaciones manualmente en los inicios y después a crear mis propias imágenes con las primeras versiones reconozco que era un poco engorroso y que algunas dependencias fueron muy duras de pelar pero actualmente el proceso es infinitamente fácil y sencillo tan solo descargando la imagen y grabándola en la MicroSD!

Además su funcionamiento a parte de autónomo es sorprendentemente rápido "pwneando" redes WiFi y obteniendo los handhsakes; si te dispones a hacer una auditoria WiFi es fácil llevarlo en la mochila ya funcionando a modo wardriving o conectarlo al llegar a las inmediaciones del objetivo y dejarlo encima de la mesa mientras arrancas tu portátil y te tomas un café seguramente ya cuentes con el preciado handshake!

La parte mala (o mejor dicho: menos buena) es que a partir de la obtención del handshake ya es asunto nuestro que hacer con ello, pero si lo que queremos es crackearlo (siempre en laboratorios propios controlados o bien en auditorias previamente formalizadas por contrato... por supuesto!!! :-P ) las limitaciones de recursos de la rapsberry lo hacen inviable y lógicamente debemos de pasarnos lo a otro equipo mas potente y utilizar herramientas y procedimientos enfocados al cracking de WPA/WPA2. Sed buenos!!!!


Un par de cosas más

Solo un par de apreciaciones totalmente personales sobre dos componentes: la carcasa y la pantalla de tinta liquida.

Respecto a las carcasa, si disponéis de impresora 3D hay múltiples modelo por la red, la que mas me gusta y que podéis ver en las fotos es la desarrollada por elkentaro y podéis encontrarla en thingiverse.



La otra alternativa que también me gusta mucho respecto a las carcasas es la de OutOfStep también en thingiverse.




Respecto a las pantallas, como podéis observar en las fotos, basándome en mi experiencia personal puedo hablar de la Waveshare V2 y de las Pimoroni PinkyHAT. Me gusta bastante mas la primera, el refresco de pantalla (que por defecto lo hace cada 3 segundos) es mucho mas suave en la Waveshare que en la Pimoroni, y se reduce en gran medida el "image ghosting". Próximamente trataré de subir un vídeo comparativo para que decidáis por vosotros mismos!





Espero que os haya gustado la entrada y que os animéis con el proyecto, es sencillo y muy interesante. Además, el número de pwnagotchis registrados por todo el mundo crece a diario en el PWNMAP ¿Quieres formar parte de esta invasión?  ;-)


Saludos!!!!!

0 comentarios:

Publicar un comentario