Point d’accès wifi avec un Raspberry Pi

raspberry-ban

Nous avons récemment eu besoin d’avoir un point d’accès sur le Raspberry Pi. Cet article a pour but de faire un petit rappel lorsque l’on va en avoir de nouveau besoin!

Tout d’abord, nous allons commencer par installer le firmware pour le dongle USB :

apt-get install zd1211-firmware

Petite erreur que j’avais avec un freeze du raspberry (dmesg) :

[   43.500170] usb 1-1.3: Could not load firmware file zd1211/zd1211b_ub. Error number -2
[   43.500204] zd1211rw 1-1.3:1.0: couldn't load firmware. Error number -2

Une fois le dongle USB installé sur notre raspberry pi, on configure le serveur DHCPD sur l’interface wifi.

sudo apt-get install isc-dhcp-server
sudo vi /etc/dhcp/dhcpd.conf
sudo ifconfig wlan0 192.168.3.1 netmask 255.255.255.0
sudo /etc/init.d/isc-dhcp-server start

Dans mon cas, j’ai choisi de mettre comme adresse sur notre interface wifi 192.168.3.1

Pour faire le hostspot wifi, j’ai choisi hostapd

sudo apt-get install hostapd
sudo vi /etc/hostapd/hostapd.conf

La configuration est la suivante :

# Configuration récupère sur http://doc.ubuntu-fr.org/hostapd
# interface wlan du Wi-Fi
interface=wlan0
 
# nl80211 avec tous les drivers Linux mac80211
driver=nl80211
 
# Nom du spot Wi-Fi
ssid=oversimple
 
# mode Wi-Fi (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g)
hw_mode=g
 
# canal de fréquence Wi-Fi (1-14)
channel=8
 
#WPA2-PSK-CCMP
wpa=2
wpa_passphrase=oversimple
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
 
# Beacon interval in kus (1.024 ms)
beacon_int=100
 
# DTIM (delivery trafic information message)
dtim_period=2
 
# Maximum number of stations allowed in station table
max_num_sta=255
 
# RTS/CTS threshold; 2347 = disabled (default)
rts_threshold=2347
 
# Fragmentation threshold; 2346 = disabled (default)
fragm_threshold=2346

On peut exécuter hostapd :

hostapd -d /etc/hostapd/hostapd.conf

Cependant, si l’on désire avoir notre point d’accès wifi au démarrage du raspberry , il faut configurer l’interface wifi avec une IP Fixe :

vi /etc/network/interfaces
 
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.3.1
netmask 255.255.255.0

On édite le fichier de config pour le démarrage de hostapd:

 sudo vi /etc/default/hostapd

Le contenu :

allow-hotplug wlan0
iface wlan0 inet static
address 192.168.3.1
netmask 255.255.255.0

On édite dans le fichier /etc/default/hostapd afin de pouvoir sélectionner la configuration requise :

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Puis on active le tout au démarrage :

sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable

Si vous avez besoin que le raspberry fasse une passerelle, il faut activer l’ip forwarding afin que les 2 interfaces(eth0 & wlan0) puissent communiquer.

It’s Oversimple, isn’t it?

Attaque sur carte sans contact

Un petit retour sur le workshop de la Nuit du Hack.

La démonstration principale de ce workshop était une attaque sur les cartes sans contact. Celles-ci proposent de payer en sans contact à une distance d’une dizaine de centimètre du lecteur. Ce paiement ne nécessite pas de saisir son code PIN. Il est cependant limité à des transactions d’un montant maximal de 20€ et à 4 transactions consécutives. Après il faut passer en mode contact pour réaliser une transaction.

Description de l’attaque

L’idée est de réaliser un proxy permettant de faire une transaction à distance.

explain

Le téléphone est un téléphone NFC qui permet de réaliser des transactions en sans contact. Celui-ci est relié par un réseau, par exemple un réseau internet, à un lecteur de carte sans contact. Ce lecteur dans le schéma est représenté à droite à coté du personnage en costume. Il est relié à un ordinateur afin de pouvoir être accessible depuis un réseau.

Nous aurions aussi pu utiliser un autre téléphone NFC à la place du couple PC – lecteur sans contact. Cependant je n’avais à ma disposition qu’un seul téléphone NFC.

L’attaque consiste à réaliser un proxy passif afin de réaliser un paiement à l’aide d’une carte qui ne se trouve pas à proximité du lecteur. Puisque la technologie est sans contact, cela peut être réalisé à l’insu de la cible.

Réalisation

Afin de réaliser cette attaque, un téléphone Nexus S a été utilisé. Ce téléphone possède une puce NFC et permet l’installation de l’application simply tap avec une cyanogen mod 9.1. Cette application permet d’avoir accès à l’antenne NFC du téléphone depuis une application android. Le but premier est de réaliser des services de paiement en cloud.

Dans notre cas, au lieu d’interroger un cloud, nous interrogeons un lecteur distant afin de dialoguer directement avec une carte sans contact.

Démonstration :


Attaque par proxy par oversimple

Comment s’en protéger

Pour s’en protéger, c’est assez simple il suffit de mettre sa carte dans un étui en fer. Il existe des portes feuilles blindés qui font très bien l’affaire.

Bibliographie

SimplyTapp NFC Payment System Debuts with CyanogenMod 9.1
emulating pki smart card with cm9.1
NFC Proxy

Réalisation d’un hotspot wifi

Cette article s’adresse à tous ceux qui ont déjà eu envie de se faire un réseau public et au amateur de spoofing.
Le problème des réseaux wifi public et qu’ils sont publics. L’authentification via un navigateur est trop facilement usurpable. Nous ne souhaitions pas réaliser un man in the middle qui a déjà été vu des centaines de fois sur la toile. Nous avons décider de nous plonger d’avantage et de proposer une solution qui reste légale puisqu’elle se contente d’imiter un réseau public. Nous l’appellerons « Noob Wifi ».

Afin de réaliser notre réseau nous avons utilisé la suite aircrack. La suite aircrack propose le module airbase. Celui ci permet de réaliser un réseau wifi ouvert. Il va alors diffuser les beacon frame. Ce sont les paquets contenant le nom du réseau (Free Wifi, Neuf Wifi, SFR Wifi, etc…). Ce qui nous intéresse dans le cadre de la sécurité c’est que si deux réseau avec le même ESSID (le même nom), le client se connectera automatiquement au plus puissant des deux.

Pour réaliser une attaque de type mitm ou bien spoofer le réseau tel que nous souhaitons le faire, il peut dont être intéressant de se procurer une antenne suffisamment puissante pour rayonner d’avantage que le hotspot que l’ont cherche à usurper.

Revenons à nos moutons. Après avoir installer la suite aircrack (ou bien à partir d’une backtrack).

Passage en mode monitoring :

$ airmon-zc start wlan0

Après cela, il va nous falloir configurer la fréquence d’émission de la carte. Pour cela il est nécessaire de sélectionner le chanel. Toute les cartes wifi ne sont pas compatible avec tout les chanels
Configuration du chanel de la carte :

$ iwconfig wlan0 channel 6
$ iwconfig wlan0 channel 6
$ ifconfig wlan0 up
$ ifconfig mon0 up

Lancement du point d’accès :

$ airbase-ng -c 6 --essid "Noob Wifi" mon0 &

Ceci nous permet alors de nous connecter librement à un hotspot. L’association sera faite et la partie protocole wifi est pleinement fonctionnel. Cependant, au même titre qu’une box adsl, airbase ressort une interface ethernet. Celle ci est virtuelle et s’appelle at0. Afin d’obtenir le point d’accès wifi pour relier tout vos équipement à internet par exemple, il vous suffit alors de réaliser une conection de pont entre votre interface web et at0.

Nous utiliserons at0 pour spoofer les requêtes dns et un par feu iptables pour rediriger le client fonction de s’il s’est authentifier auprès de nous ou non!

It’s oversimple, isn’t it?