Python Network Attacks - · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle...

15
Python Network Attacks CHAKROUN SLIM (GI2) EL MOUADDEB SIRINE (RT3) BEL HAJ YAHYA EMNA (RT4) BENJEMAA TAKWA (GI1) SAKLY AZIZ (GI1)

Transcript of Python Network Attacks - · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle...

Page 1: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks

CHAKROUN SLIM (GI2)

EL MOUADDEB SIRINE (RT3)

BEL HAJ YAHYA EMNA (RT4)

BENJEMAA TAKWA (GI1)

SAKLY AZIZ (GI1)

Page 2: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

1

Table de matière

1- Présentation de l’atelier.........................................................................2

2- Man In The Middle.................................................................................2

a- Définition...........................................................................................................2

b- Arp spoofing......................................................................................................3

c- Terminologie......................................................................................................4

3- DDOS.........................................................................................................................4

a- Définition............................................................................................................4

b- Terminologie.......................................................................................................4

4- Wireless SSID Sniffer ..............................................................................5

5- Présentation des outils utilisés...............................................................6

a- BackTrack.............................................................................................................6

b- Kali........................................................................................................................7

c- Scapy....................................................................................................................7

d- WireShark............................................................................................................7

e- Python..................................................................................................................8

6- Architecture/Topologie du réseau .........................................................8

7- Un scénario de test................................................................................10

8- Conclusion.............................................................................................14

Page 3: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

2

1- Présentation de l’atelier

A travers notre atelier intitulé "Python Network Attacks" nous allons simuler

quelques attaques réseaux tels (DDOS , MITM , Wireless SSID Sniffer) que en

utilisant le langage de programmation des scripts Python.

2- Man In The Middle :

a. Définition :

Les attaques de type Man-In-the-Middle sont très faciles à

comprendre. Man-in-the-Middle signifie l'homme du milieu. Cette attaque fait

intervenir trois protagonistes : le client, le serveur et l'attaquant. Le but de

l'attaquant est de se faire passer pour le client auprès du serveur et se faire

passer pour le serveur auprès du client. Il devient ainsi l'homme du milieu. Cela

permet de surveiller tout le trafic réseau entre le client et le serveur, et de le

modifier à sa guise pour l'obtention d'informations (mots de passe, accès

système, etc...)

Plusieurs protocoles internet sont vulnérable à ce type d’attaque plus particulièrement les protocoles http, ftp et ARP.

L'objectif de l'attaque consiste à s'interposer entre deux machines du réseau et de

transmettre à chacune un paquet ARP falsifié indiquant que l'adresse ARP (adresse

MAC) de l'autre machine a changé, l'adresse ARP fournie étant celle de l'attaquant.

Les deux machines cibles vont ainsi mettre à jour leur table dynamique appelée

Cache ARP. On parle ainsi de « ARP cache poisoning » (parfois « ARP spoofing » ou

« ARP redirect ») pour désigner ce type d'attaque.

Page 4: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

3

De cette manière, à chaque fois qu'une des deux machines souhaitera communiquer

avec la machine distante, les paquets seront envoyés à l'attaquant, qui les

transmettra de manière transparente à la machine destinatrice.

Exemple de MITM sur une authentification sur Facebook.com :

b- Arp spoofing :

L'ARP spoofing, ou ARP poisoning, est un moyen utilisé en informatique pour détourner des flux de communication transitant sur un réseau local, cette technique permet d'écouter et de corrompre mais aussi d'usurper une adresse IP ou de bloquer du trafic. Cela consiste à se faire passer pour quelqu'un d'autre sur un réseau, les cas les plus répandus étant les réseaux Ethernet et Wifi. Elle aussi en quelque sorte introduit la technique de Man in the Middle.

Page 5: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

4

c- Terminologie :

Adresse IP : Une adresse IP (avec IP pour Internet Protocol) est un numéro d’identification qui est attribué de façon permanente ou provisoire à chaque appareil connecté à un réseau informatique utilisant l'Internet Protocol. Adresse Mac : une adresse MAC (Media Access Control) est un identifiant physique constitué de 6 octets, elle est attribuée par le constructeur de l’équipement et « hard codé » sur la carte (il est possible de la changer, mais ce n’est pas le but de cet article.) Elle consiste en six nombres hexadécimaux séparés par des « – » ou des « : », il existe potentiellement 248 (environ 281 000 milliards) d’adresses MAC possible, il est donc quasiment impossible de se retrouver avec un doublon sur le réseau. Notez que l’adresse de broadcast est: FF:FF:FF:FF:FF:FF, les données seront envoyées à l’ensemble du réseau local. Protocole ARP : L’Address resolution protocol (ARP, protocole de résolution d’adresse) est un protocole effectuant la traduction d’une adresse de protocole de couche réseau (typiquement une adresse IPv4) en une adresse MAC (typiquement une adresse ethernet), ou même de tout matériel de couche de liaison. Il se situe à l’interface entre la couche réseau (couche 3 du modèle OSI) et la couche de liaison (couche 2 du modèle OSI).

3- DDOS :

a- Définition :

Le déni de service (ou DoS : Denial of Service) est une attaque qui vise à rendre

une application informatique incapable de répondre aux requêtes de ses utilisateurs.

Les serveurs de messagerie peuvent être victimes de ces attaques. Le déni de service

distribué (DDos pour Distributed DoS) est une attaque de DoS émise depuis plusieurs

origines distinctes. Ce type d'attaque est extrêmement complexe à bloquer, car il est

souvent impossible de différencier une vraie requête d'une requête de DDos.

L'attaque par DDos utilise très souvent une multitude de PC zombies infectés par des

backdoors exploités à distance par un pirate et attaquant simultanément une cible

unique.

b- Terminologie :

On distingue habituellement deux types de dénis de service :

Les dénis de service par saturation, consistant à submerger une machine de requêtes, afin qu'elle ne soit plus capable de répondre aux requêtes réelles ;

Les dénis de service par exploitation de vulnérabilités, consistant à exploiter une faille du système distant afin de le rendre inutilisable.

Le principe des attaques par déni de service consiste à envoyer des paquets IPou des données de taille ou de constitution inhabituelle, afin de provoquer une saturation ou un état instable des machines victimes et de les empêcher ainsi d'assurer les services réseau qu'elles proposent.

Page 6: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

5

Lorsqu'un déni de service est provoqué par plusieurs machines, on parle alors de

« déni de service distribué » (noté DDOS pour Distributed Denial of Service). Les attaques par déni de service distribué les plus connues sont Tribal Flood Network (notée TFN) et Trinoo.

4- Wireless SSID Sniffer :

Tout comme sur un réseau filaire, il est possible sur un réseau sans fil (ou wireless) d'observer passivement le trafic, ce que l'on appelle plus communément sniffer. Sur un réseau filaire, ethernet par exemple, il suffit d'avoir accès à un port d'un quelconque hub ou switch connecté au réseau local pour pouvoir tranquillement jouer les voyeurs (moyennant l'investissement dans une paire de jumelles adéquates dans le cas d'un switch). En règle générale, cela impose à un éventuel attaquant d'obtenir un accès physique aux locaux et un peu d'intimité pour établir une relation de confiance avec la prise réseau qu'il aura repérée.Sur un réseau sans fil, c'est encore plus simple. Pas besoin de trouver une prise, ni même de se faire passer pour le livreur de pizzas pour pénétrer physiquement sur le site concerné. Les ondes radios, ayant un esprit libertaire assez développé, sont relativement délicates à confiner dans une enceinte fermée. Il suffit à notre méchant pirate de garer sa vieille Panda Fire noire (avec les pare-chocs violets) à proximité de l'immeuble dans lequel est déployé le réseau sans fil, et pour peu qu'il ait une carte réseau d'une puissance suffisante, il pourra accéder sans effort au trafic interne de ce réseau.

Page 7: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

6

5- Présentation des outils utilisés :

a- BackTrack :

BackTrack est une distribution GNU/linux reconnue par les professionnels

comme complète et efficace en matière d’analyse réseau et de test d’intrusion.

Cette distribution est idéale pour tester l'efficacité de vos mesures de sécurité sur

votre ordinateur ou votre réseau et ce en l'installant, ou à partir d'un live DVD. Les

environnements graphiques proposés par défaut sont KDE et GNOME. Issue de

Whax et ASC (Auditor Security Collection), son système est maintenant basé sur

Ubuntu (depuis sa version 4, dans ses versions précédentes, il était basé sur

Slackware). Backtrack est composé d’une série d’outils (plus de 300) permettant à

toute personne de sécuriser son réseau en testant ses vulnérabilités.

b- Kali :

La dernière version de Backtrack (5 release 3) ne sera pas remplacée par la

Backtrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles

fonctionnalités mais aussi et surtout elle n’est plus basée sur la distribution Ubuntu

mais reprends comme base une Debian ! Je suis ravi de ce choix car j’ai moi même

décidé de m’investir sur la distribution Debian il y a quelques mois car je trouve

qu’Ubuntu veut aller trop vite et veut couvrir trop de fonctionnalités par défaut. Cela

entraine malheureusement des mises à jour et vulnérabilités plus fréquentes.

Page 8: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

7

c- Scapy :

Scapy est un logiciel libre de manipulation de paquets, écrit en langage

python. Il est capable, entre autres, d'intercepter le trafic sur un segment réseau, de

générer des paquets dans un nombre important de protocoles, de réaliser une prise

d'empreinte de la pile TCP/IP, de faire un traceroute et d'analyser le réseau.

Cet utilitaire permet de manipuler, forger, décoder, émettre, recevoir les

paquets d’une multitude de protocoles (ARP, DHCP, DNS, ICMP, IP...).

Il peut facilement manipuler la plupart des tâches classiques comme le scan,

tracerouting, des investigations, des attaques ou la découverte de réseau (il peut

remplacer hping, une infime partie de nmap, arpspoof, arp-sk, arping, tcpdump,

WireShark, p0f, etc).

Il permet d’exécuter des tâches spécifiques que la plupart des autres outils ne

sont pas capable de traiter, comme envoyer des trames invalides, injecter ses

propres trames 802.11, combiner des techniques (VLAN hopping+ARP cache

poisoning, VOIP decoding sur canal chiffré en WEP...).

d- WireShark :

Wireshark est analyseur de protocole réseau très puissant.

Le logiciel vous permettra de scanner ce qu'il se passe sur un réseau en analysant les

paquets qui y transitent.

Grâce aux nombreux utilitaires présent dans le logiciel, vous arriverez repérer les

différents protocoles utilisés par vos logiciels favoris : HTTP, FTP, etc... Et si vous

désirez connaître le chemin exact qu'un paquet, une fonction: Follow TCP Stream est

là pour reconstituer l'intégralité de l'échange.

Pour ne voir que des paquets particuliers, des filtres répondant à de nombreux

critères personnalisables, sont présents.

Page 9: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

8

e- Python :

C’est un langage de programmation très puissant qui est de plus en plus

utilisé pour développer des applications rapidement qui soient tout de même

efficaces ! Il est très utilisé dans le monde scientifique pour sa syntaxe aérée et une

vitesse d'exécution correcte. Ce langage est aussi excellent pour la création de

prototypes car sa simplicité permet d'implémenter un projet aussi vite que l'on y

réfléchit ! Il est aussi utilisé en modélisation 3D dans des programmes comme

Blender par exemple. Bref, c'est un langage de plus en plus utilisé et vous en

deviendrez très certainement fan rapidement !

Les principales caractéristiques du langage Python sont :

C'est un langage interprété, c'est-à-dire que le code ne nécessite pas d'être

compilé pour être exécuté (nous verrons ça plus tard, ne vous en faites pas !)

Il est multiplateforme et il est d'ailleurs natif sur tous les systèmes Unix (Mac

OS, Linux) et ne nécessite pas d'y être installé !

Il peut être utilisé en tant que langage de script pour exécuter une suite

simple de commande mais c'est aussi un langage objet qui permet de

développer des applications solidement construites !

Sa syntaxe est très simple et aérée et permet de se libérer de tous les

caractères de démarquation des blocs de code.

6- Architecture/Topologie du réseau : Pour simuler ces attaques, nous allons utiliser 2 machines : une machine victime

qui est notre machine physique et une machine virtuelle qui est la machine du

pirate.

Ces deux machines doivent être sur le même réseau.

Page 10: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

9

Architecture du réseau

Adresse IP de la machine victime :

Adresse IP de la machine du pirate :

Pour vérifier que les deux machines sont situées sur le même réseau on va

utiliser la commande Ping.

Ping @IP machine victime :

Page 11: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

10

Ping @IP machine pirate :

7- Un scénario de test:

Attaque Man In The Middle:

Le protocole ARP (Address Resolution Protocol) permet d'associer à chaque

adresse IP une adresse MAC pour connaitre les machines sur le réseau et donc

savoir ou router les paquets. , toute machine connectée à un réseau possède un

cache ARP de toutes les adresses IP/MAC des machines du réseau.L’ordinateur

192.168.10.22 envoie sur le réseau une requête « arp who-has » pour savoir

l’adresse MAC du routeur qui a l’adresse IP 192.168.10.1 , le routeur répond « arp is-

at » à 192.168.10.25 avec son adresse MAC

Au cours d’une attaque Mitm le pirate va exploiter le fait que le trafic entre le

routeur et l’ordinateur n’est pas crypté pour se placer au milieu et faire transiter

tout le trafic à travers lui. Le pirate envoie à la machine victime une requête arp

192.168.10.1 is-at C :C :C :C :C qui est son adresse MAC, ainsi l se fait passer pour le

Page 12: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

11

routeur. outeur une requête arp 192.168.10.25 is-at C :C :C :C

:C :C et se fait passer ainsi pour la machine victime. Passons à la partie pratique

après avoir vérifié que les machines soient sur le même réseau il faut tout d'abord

empoisonner la victime . on

va écrire une fonction « v_poison() » pour intercepter la communication entre la

victime et le routeur.

Ensuite on va empoisonner le routeur pour cela on va écrire la fonction gw_poison().

Pour assurer la commutation des paquets de la victime vers le routeur on va

utiliser la commande echo 1 dans notre script avec la commande « os.system »

comme indiqué ci dessous:

iface : désigne l'interface sur laquelle snifer

filter : filtre les paquets à garder d'après une chaîne de caractère.

prn :fonction à appliquer à chaque paquet.

dnshandle : Avec cete fonction on va afficher seulement les

paquet dns qui contient le nom de site par exmple

www.google.com .

Maintenant la machine victime connecte sur le site www.google.com .

En exécutant le script écrit précédemment sur la machine victime on aura l'affichage

suivant.

Page 13: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

12

Attaque DDOS:

Les étapes de la réalisation de l’attaque DDOS sont précisées ci-dessous :

1) Téléchargement du script torshammer.py à partir du site

http://packetstormsecurity.com/files/download/98831/torshammer.tgz

2) Sur le terminal on tape :

cd Desktop/torshammer

./torshammer.py -t www.example.com -r 50000 ( 50000 étant le

nombre de threads à poster , plus le nombre de threads plus efficace serait

l'attaque )

Les arguments de torshammer.py sont :

-t|–target <Hostname|IP>

-r|–threads <Number of threads> Defaults to 256

-p|–port <Web Server Port> Defaults to 80

-T|–tor Enable anonymising through tor on 127.0.0.1:9050

-h|–help shows this help

Page 14: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

13

Résultat:

Wireless SSID sniffer:

Code en python:

Page 15: Python Network Attacks -  · PDF fileBacktrack 6 mais par kali-linux 1.0. Cette nouvelle apporte de nouvelles ... Scapy est un logiciel libre de manipulation de paquets,

Python Network Attacks |SECURILIGHT 2014

14

Application sur un LAN :

8- Conclusion :

A travers cet atelier on a constaté que les attaques ne sont pas trop compliquées

à réaliser. C'est pour cette raison qu'il faut être conscient de l'importance de la

sécurité informatique" surtout qu'on est dans un monde où tout est connecté