Andrés Tarasco – Ataques dirigidos con APTs Wi-Fi [Rooted CON 2014]
Upcoming SlideShare
Loading in...5
×
 

Andrés Tarasco – Ataques dirigidos con APTs Wi-Fi [Rooted CON 2014]

on

  • 318 views

 

Statistics

Views

Total Views
318
Views on SlideShare
318
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Andrés Tarasco – Ataques dirigidos con APTs Wi-Fi [Rooted CON 2014] Andrés Tarasco – Ataques dirigidos con APTs Wi-Fi [Rooted CON 2014] Presentation Transcript

  • 1 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March W{ireless|onderful} eXfiltration Protocol Andrés Tarascó - @atarasco
  • 2 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March ¿Qué es un APT? Es un malware, algo especial: – Dirigido a personas, grupos u organismos. – Puede hacer uso de 0days. – Indetectable por AV. – Intenta pasar desapercibido mucho tiempo ¿Porqué un APT? – Infiltración, acceso remoto, canales encubiertos, silenciosos, ¿Indetectables?
  • 3 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March ¿Quién usa APTs? Mafias / Criminales. – Infiltración y robo de información confidencial. Gobiernos – Ejercito y agencias de 3 siglas. Empresas – Espionaje industrial. Stuxnet, duku, flame, red october, careto, Icefog, Gauss,…
  • 4 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March Uso de APTs en pentest Selección de objetivos. Análisis de canales de infección Evaluación de medias preventivas. Evaluación de mecanismos de filtrado. Descubrimiento de puntos de entrada Descubrimiento de puntos de salida.
  • 5 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March Canales de propagación Pasivo – Memorias USB , Infección de ficheros Activo – Exploiting • Java/adobe/browser/0days – Email y documentos adjuntos • PDF/ Macros / .. – Descubrimiento de red y dispositivos.
  • 6 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March Capacidades de un APT básico Comunicación. – Directa (conexión TCP / UDP) – HTTP (con auto descubrimiento de gateway) • Exfiltración en cabeceras HTTP o en el cuerpo • Adquisición de credenciales de acceso – DNS • Transferencia de zona o registros CNAME,TXT,… Cifrado – SSL / TLS / CBC / propietario
  • 7 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March Limitaciones en toma de control El equipo infectado no puede ser accedido. – Entorno securizado – Filtrado por listas blancas de navegación. – Resolución DNS restringida. – No dispone de una conexión de red activa. Necesidad de buscar canales alternativos
  • 8 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March ¿Alternativas? ;-) Cámara: ¿Código morse? Sonido: Badbios? ;) Bluetooth: Distancia reducida. ¿Qué tal WiFi? – Disponible en la mayoría de los dispositivos – 10 Km en condiciones ideales.
  • 9 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March Fundamentos de un APT WiFi Cómo funciona un APT WiFi por Hardware – Keelog, teclado modificado,… Exfiltración por software: – Agente APT: • Probe request: Pregunta la disponibilidad de redes • Disponibilidad de la API (ejemplo WLANAPI) – Asincrona  • Viable tanto sin conexión como conectados a una red segura. – Servidor C&C del APT: • Probe response: Publica un SSID • Software en modo monitor con capacidad de inyección.
  • 10 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March Fundamentos de un APT WiFi Probe Request -------- ¿Estas ahí? Si ----------------- Probe Response Probe Request -------- ¿ Qué hago? Dame una shell----------------- Probe Response Probe Request -------- Enviando stdout/stderr Enviando stdin----------------- Probe Response La información se envía en IE (Information Elements)
  • 11 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: Resumen Protocolo de transporte orientado a conexión API: conectar-escuchar, leer-escribir y cerrar Proceso de comunicación Three-way-handshake Gestión de conexiones asíncronas. Seis tipos de PDU (packet data unit)
  • 12 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: Resumen (II)
  • 13 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: API int wxp_init (wxp_addr_t, const p_wxp_backend_t, void *); p_wxp_state_t wxp_connect (wxp_addr_t); p_wxp_state_t wxp_listen (wxp_addr_t); int wxp_read (p_wxp_state_t, void *, size_t); int wxp_write (p_wxp_state_t, const void *, size_t); int wxp_close (p_wxp_state_t);
  • 14 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: PDU Todos los campos están en el orden de la red (big-endian)
  • 15 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: PDU (II) Session ID: número aleatorio negociado entre cliente y servidor. PDU-TYPE: tipo de paquete de exfiltración. – WXP_TYPE_SYN, WXP_TYPE_SYNACK, WXP_TYPE_ACK, WXP_TYPE_DATA, WXP_TYPE_REPEAT, WXP_TYPE_RST Scramble: Diferencia paquetes duplicados Seq: Número de secuencia Count: Número de ACKs y REPEATs enviados. New sessid: ID de sesión ofrecido por el servidor. Checksum: suma de comprobación
  • 16 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: Establecimiento de la conexión
  • 17 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: Transmisión INPUT: Paquetes listos para ser leídos por wxp_read. OUTPUT: Paquetes listos para ser enviados al covert channel. INCOMING: Paquetes recibidos por el covert channel que han llegado fuera de orden. OUTCOMING: Paquetes que se han enviado al covert channel pero no han sido confirmados todavía. ACK: Números de secuencia de paquetes recibidos.
  • 18 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: Transmisión (II) Temporizador de notificaciones de recepción. – WXP_TYPE_ACK – Notificación por rangos descartada. Temporizador de paquetes perdidos – WXP_TYPE_LOST Gestión de colas de recepción. – INCOMING <-> INPUT
  • 19 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: Transmisión (III)
  • 20 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: control de flujo con histéresis Para no saturar el canal, se debe ajustar la velocidad de envío con la velocidad de confirmación. Control de flujo con histéresis: si hay más de Nlock paquetes pendientes de confirmar por el extremo remoto, wxp_write se bloquea hasta que se confirmen al menos Nunlock, con Nlock > Nunlock
  • 21 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: control de flujo con histéresis (II)
  • 22 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: cierre de conexión. El cierre de sesión se inicia enviando un paquete de tipo WXP_TYPE_RST. Dicho paquete puede llegar fuera de orden, por lo que el receptor lo ignora hasta que llegan todos los paquetes intermedios. Cuando llega, lo confirma (ACK) y le responde con otro RST. El proceso que inicia el cierre espera a la confirmación del RST remoto antes de cerrar, con cierto timeout (así se asegura que se envían todos los paquetes pendientes). Si se supera dicho timeout, se cierra igualmente.
  • 23 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March WXP: complejidad del código. Las primeras pruebas se hicieron sobre UDP, pero… – Ponerlo encima de exfiltración wifi mediante probe requests, un método extraordinariamente lento para comunicarse. Código aún experimental. – Pero es completamente funcional Gran número de controles para situaciones anómalas. – Paquetes perdidos – Paquetes desordenados – Paquetes persistentes – Cache de redes WLAN API Depuración tediosa – Errores del driver de Airpcap. – Conexión de debugger a cliente/servidor
  • 24 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March Detalles de WXP Velocidad relativamente baja – 1k/s Detección de WXP: Anomalías – Tasa elevada de Probe Requests / Probe Responses – Sólo lo vamos a ver si monitorizamos la red – Interferencias – Saturación del canal de comunicaciones.
  • 25 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March Mejoras Agente WXP – Monitor mode driver ( Acrylic WiFi NDIS ) – Raw packets injection (Acrylic NDIS v2.0) Atacante C&C : – Agregación de canales WiFi – Portar a linux / ddwrt/.. General: – Qos – Agrupación de PDUs
  • 26 Rooted CON 2014 6-7-8 Marzo // 6-7-8 March THE END WXP @github Agradecimientos: – @Tarlogic, especialmente a @BatchDrake – @RootedCon