string(14) "attribute >>>>" array(0) { }

Analizando el funcionamiento de PoisonTap

string(14) "attribute >>>>" array(5) { ["width"]=> int(599) ["height"]=> int(167) ["file"]=> string(32) "2016/11/Route-e1479668616637.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(4) { ["file"]=> string(17) "Route-150x150.jpg" ["width"]=> int(150) ["height"]=> int(150) ["mime-type"]=> string(10) "image/jpeg" } ["medium"]=> array(4) { ["file"]=> string(16) "Route-300x84.jpg" ["width"]=> int(300) ["height"]=> int(84) ["mime-type"]=> string(10) "image/jpeg" } } ["image_meta"]=> array(12) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" ["orientation"]=> string(1) "0" ["keywords"]=> array(0) { } } } array(5) { ["width"]=> int(550) ["height"]=> int(376) ["file"]=> string(15) "2016/11/Web.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(4) { ["file"]=> string(15) "Web-150x150.jpg" ["width"]=> int(150) ["height"]=> int(150) ["mime-type"]=> string(10) "image/jpeg" } ["medium"]=> array(4) { ["file"]=> string(15) "Web-300x205.jpg" ["width"]=> int(300) ["height"]=> int(205) ["mime-type"]=> string(10) "image/jpeg" } } ["image_meta"]=> array(12) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" ["orientation"]=> string(1) "0" ["keywords"]=> array(0) { } } } array(0) { }
news and informations automotive,business,crime,health,life,politics,science,technology,travelautomotive,business,crime,health,life,politics,science,technology,travel

Esta pasada semana hemos visto cómo en muchas webs de tecnología y de seguridad se nos avisaba de un nuevo gadget que puede hackear nuestro ordenador simplemente con conectarlo a un puerto USB. Este nuevo juguete se llama PoisonTap.

Llama la atención el coste tan bajo que tiene el hardware necesario para construirlo, ya que basta con una Raspberry Pi Zero y podemos encontrarla por unos 5€. Sin embargo, si contamos con cualquier otra versión de Raspberry Pi, también sirve pero será necesario contar con el adaptador Ethernet a USB.

¿Qué puede hacer PoisonTap si se conecta a nuestro equipo?

  • Captura todo el tráfico que enviamos a Internet
  • Captura cookies y sesiones de los sitios web más conocidos (el primer millón de sitios que aparecen en Alexa).
  • Instala un troyano para los sitios web mencionados y es persistente, permaneciendo en el equipo incluso si desconectamos el dispositivo.
  • Fuerza a nuestro ordenador a enviar peticiones a los sitios web utilizando nuestras cookies

Todo esto lo consigue incluso si nuestro equipo está en la pantalla de bloqueo y tiene protección por contraseña.

¿Cómo funciona?

El funcionamiento de PoisonTap se divide en fases empezando por el secuestro de la red para luego capturar las cookies e instalar el troyano. Aquí vamos a hablar de la primera fase, la red, y en otros artículos explicaremos el resto del proceso.

Cuando se conecta PoisonTap a un puerto USB simula ser una tarjeta Ethernet que es reconocida por el sistema operativo, aunque la carga como un adaptador de baja prioridad (métrica alta). En la siguiente captura vemos 2 tarjetas, eth0 y wlan0, de mi portátil con diferentes métricas, 100 y 600.

route

Estos valores de métricas hacen que mi ordenador “prefiera” utilizar la tarjeta de cable en lugar de la inalámbrica. Dicho de otra forma, la tarjeta inalámbrica tiene una prioridad menor que la de cable. Lo mismo ocurre con PoisonTap, el sistema operativo le asigna una prioridad menor (una métrica mayor).

Con esta configuración, mi ordenador seguiría prefiriendo la tarjeta de cable, pero PoisonTap consigue que esto sea así sólo para el tráfico local, engañando al sistema operativo para que le envíe todo el tráfico que vaya dirigido a Internet. ¿Cómo lo hace?

El comportamiento por defecto de cualquier sistema operativo cuando detecta una nueva tarjeta de red es enviar una petición DHCP para solicitar una dirección IP. PoisonTap implementa un servidor DHCP que se va a encargar de responder a esta solicitud, pero en lugar de entregar direcciones IP de una subred (por ejemplo, 8.8.8.8), devuelve una respuesta que hace creer al sistema operativo que todas las direcciones IP (desde 0.0.0.0 a 255.255.255.255) pertenecen a la “red local” del dispositivo PoisonTap.

Como en cualquier sistema operativo una red local siempre tiene prioridad sobre la puerta de enlace, todo el tráfico que vayamos a enviar a cualquier red (por ejemplo a 8.8.8.8) se enviará al dispositivo PoisonTap en lugar de a nuestro router de salida a Internet. El tráfico que vaya a la red local se enviará por la tarjeta de red que esté conectada a esa red local y no se enviará directamente a PoisonTap.

¿Cómo consigue PoisonTap capturar nuestras cookies? Tenemos la costumbre de tener abiertas ventanas de navegador incluso si no las estamos leyendo en ese momento. Si esto es así, es bastante probable que el sitio web que estamos visitando provoque de forma periódica la recarga de la página, o bien que envíe peticiones HTTP request para carga un nuevo anuncio, para recopilar datos analíticos o registrar nuestros movimientos en la página. Basta con que en nuestro navegador abramos una página conocide y accedamos a las herramientas de desarrollador para ver que hay envío de tráfico incluso si nosotros no estamos haciendo nada en la página. Aquí vemos un ejemplo de mi navegador Chrome en una página de Amazon sin tocar nada:

web

Si esperamos unos segundos veremos que una página aparentemente inactiva sí que está generando tráfico, que en este caso iría a PoisonTap.

Con esto finalizaría la primera fase del proceso para comprometer el equipo. En otro articulo veremos cómo utiliza las cookies que está recibiendo y de qué forma instala el troyano.