d'après 2007-09-11-network.log
Bonsoir à toute et à tous, alors ce soir nous allons donc parler un petit peu des LANs.
Le but de cette initiation n'est pas de vous parlez de toute la theorie qui tourne autour, ni de vous presenter le fonctionnement dans sa globalité, mais plutot de vous expliquez quelques concepts qui vous ameneront à adopter un raisonnement logique et à vous posez des questions. En effet, ce domaine etant assez "complexe" (dans le sens ou il y a enormement de chose a savoir pour le maitriser dans sa globalité), il est beaucoup plus facile de l'aborder en se posant des questions et à comprendre par soi meme la logique du système.
Tout ce jolie discours pour vous dire que ce soir, c'est vous qui bosser! (Je m'excuse d'avance pour les innombrables fautes dont vous serrez témoin. Je ne suis pas non plus à l'abris de dire une connerie, donc n'hésiter pas à me corriger).
Et n'oubliez pas, n'hesitez pas à poser des questions, encore, encore et encore. Et essayer aussi, d'etre toujours dans le cadre de la dicussion les questions hors cadre auront lieu à la fin
Tout abord, avant d'attaquer dans le vif du sujet je vais devoir vous présenter quelques aspects theorique des réseaux (il est très difficile de presenter un aspect precis des réseaux pour des personnes qui ne connaissent pas les réseaux bien sur :)). Je supose que tout le monde ici imagine deja ce qu'est un reseau (juste une vague idée, pas besoin de savoir comment ca marche) ?
Donc donc, pour pouvoir faire communiquer des ordinateurs (d'une manière générale tout systeme disposant d'interface permettant de communiquer), il fallait bien definir (et normaliser) le principe de fonctionnement dans sa globalité.
Pour cela, a été effectué un decoupage logique des fonctionnalités principales dont le resultat est appelé "modèle en couche". De nos jours, il existe plusieur de ces modèles, mais celui qui est le plus utilisé reste TCP/IP. On peut aussi cité OSI qui est très utilisé à des fins pédagogique et qui présente beaucoup de similitude avec TCP/IP. ne partez pas, la pratique vient un peu apres ;)
Je vais maintenant vous parler rapidement du modèle OSI, histoire qu'on ai une vague idée du "à quoi sa sert ? Comment ca marche ?"
OSI, est donc un modèle en 7 couches qui sont (de haut en bas):
Chaque couche à un role particulier dont vous pouvez avoir un apercu ici: Modèle_OSI#Caractérisation résumée des couches
Pour mener à bien le travail que doit accomplir une couche, il existe toute une suite de protocole definis de maniere plus ou moins indépendante, et dont on peu leur definition dans les RFC (Request For Comment): ietf.org
Par exemple, la RFC du protocole ARP: http://www.ietf.org/rfc/rfc826.txt
Ceci est bien sur, présenter de manière très grossière et je vous epargnerais une presentation exhaustive du fonctionne "theorique" :P
Pour ceux qui se pose des questions quand meme, n'hesiter pas ! (Mais evitons de trop s'etendre sur des choses que vous découvrirez tout seul si vous vous y interessez un peu plus ;)) du fonctionnement**
** PAUSE **
| 20:15 | corentin | gapz: il faut parler d'encapsulation des protocoles :) |
| 20:15 | @gapz | : et tout devient d'une logique incroyable |
| 20:15 | clems_Mod_push | : corentin: embrouille pas les gens avec ca :P |
| 20:15 | corentin | : clems_Mod_push: moi c'est grace a ça que j'ai compris |
| 20:16 | @gapz | : corentin: sans pratique tu peux pas trop parler de ca |
| 20:16 | @gapz | : enfin, de toute facon on va pas trop l'aborder corentin |
| 20:16 | @gapz | : c'est pas le but |
| 20:16 | corentin | : roooo |
| 20:16 | * corentin | deçu |
| 20:16 | corentin | : :) |
| 20:16 | @gapz | : corentin: si tu veux on en parle apres ;) |
| 20:16 | FiFouille | : bon un truc à retenir c'est que les protocoles d'une même couche sont interchangeables |
| 20:16 | corentin | : :D |
| 20:17 | cyril_ | : heuuuuu |
| 20:17 | cool_spot | : une seul protocole actif par couche? |
| 20:17 | @gapz | : Bon bon |
| 20:17 | @gapz | : cool_spot: non non |
| 20:17 | corentin | : cool_spot: pas forcement |
| 20:17 | FiFouille | : ça permet d'avoir un changement de fonctionnement seulement à un niveau quand on change qqch, genre on doit pas tout recommencer fonction qu'on et sur du réseau filié, sans fil ou fibre optique |
| 20:17 | @gapz | : enfin, meme s'il y en a des predominants |
| 20:17 | clems_Mod_push | : ca serait trop limitatif cool_spot |
| 20:17 | * illovae | pige que dalle :D |
| 20:17 | @gapz | : FiFouille: enfin, apres c'est pas forcement vrai |
| 20:17 | @gapz | : l'exemple qui va bien c'est IPv6 :) |
| 20:18 | FiFouille | gapz: ouep, mais c'est l'idée qui est derrière tout de même |
| 20:18 | @gapz | : enfin donc donc |
| 20:18 | @gapz | : on diverge |
| 20:18 | grirgz | : verge |
| 20:18 | corentin | : cool_spot: la preuve bittorrent: tu utilises TCP et UDP qui sont tous les deux des protocols de niveau transport |
| 20:18 | ::: | mode/#ubuntu-fr-classroom [+m] by gapz |
| 20:18 | @gpocentek | gapz: on continue ? |
| 20:18 | @gapz | : je vous coupe la parole désolé ;) |
| 20:18 | @gapz | : gpocentek: grilled :) |
| 20:18 | @gpocentek | : :) |
Pour continuer dans les questions existentielles (et avant d'attaquer surtout la partie pratique), qu'est-ce qu'un LAN ?
Ce que j'entend par LAN, c'est un reseau informatique d'une taille plus ou moins grosse se situant dans une meme zone geographique. Un exemple de LAN serait, un petit réseau d'entreprise, *votre* réseau constitué de quelques machines (ou simplement une machine et votre boiboite). (pas forcement informatique sois dit en passant)
| 20:19 | ::: | mode/#ubuntu-fr-classroom [-m] by gapz |
| 20:19 | @effraie | : exemples non-informatiques? |
| 20:19 | clems_Mod_push | : LAN = Local Area Network |
| 20:19 | clems_Mod_push | : Local koi |
| 20:19 | moft | : +1 effraie |
| 20:20 | @gapz | : effraie: des reseaux de trucs embarqués, enfin c'est toujours dans un cadre informatique |
| 20:20 | corentin | : effraie: telephone ? |
| 20:20 | @gapz | : et tout ce qui est domotique effraie |
| 20:20 | @effraie | : k |
| 20:20 | cool_spot | : blutooth |
| 20:20 | @effraie | : *ique tt de même |
| 20:20 | @effraie | : je m'attendais a des trucs plus ésotériques ^^ " |
| 20:20 | @gapz | : tout le monde voit donc un peu près ? |
| 20:20 | clems_Mod_push | gapz: ya l exemple de la ville |
| 20:20 | corentin | : LA SUITE ... LA SUITE |
| 20:20 | Capi | : la domotique n'utilises pas le même protocle |
| 20:20 | clems_Mod_push | : avec kes masion le quartier |
| 20:21 | clems_Mod_push | : .... |
| 20:21 | @gapz | : corentin: du calme, tout le monde n'est pas a ton niveau |
| 20:21 | corentin | : :) |
| 20:21 | @gapz | : apres il y a plusieurs autres niveau dont nous ne parlerons pas |
| 20:21 | @gapz | : par exemple, les WAN |
| 20:21 | @gapz | : Wide Area Network |
| 20:21 | corentin | : ou les PAN |
| 20:21 | Capi | : MAN |
| 20:21 | @gapz | : voila, et il en existe d'autre :) |
| 20:21 | corentin | : Personal Area Network |
| 20:21 | clems_Mod_push | : CAN |
| 20:21 | FiFouille | : coin |
| 20:21 | Capi | : VAN |
| 20:21 | clems_Mod_push | : City Area |
| 20:21 | * gapz | donne une sucette a clems_Mod_push corentin et Capi |
| 20:21 | clems_Mod_push | : :) |
| 20:22 | ::: | mode/#ubuntu-fr-classroom [+m] by gapz |
Plutot que de partir dans des explications qui ne s'en finirait
pas, rentrons directement dans la pratique !!!
Plein de point vont surement vous echapper, et j'attend donc vos questions.
Soit deux machines (PC, imprimante, routeur, enfin tout ce qui possede
une interface ethernet) relié directement par un cable (selon votre
configuration, il peu etre croisé ou droit, voir coaxial si vous êtes
un vieux fan des belles années).
On admet que les adresses logique (appelé adresse IP pour nos autres
utilisateurs de IPv4, en effet il en existe d'autre, dont je ne
parlerais pas) sont dans le meme sous réseau (j'essaierai de détailler
cette notion plus tard, ou tout de suite si tout le monde a envie).
Soit par exemple, ma machine A avec l'adresse:
192.168.0.1
Et une machine B avec l'adresse:
192.168.0.2
(La partie adressage ne sera pas traité ici, trop théorique pour etre
expliquée sur IRC, enfin, un jour peut etre)
| 20:23 | ::: | mode/#ubuntu-fr-classroom [-m] by gapz |
| 20:23 | @gapz | : tout le monde a une config pour test ou pas ? |
| 20:23 | @gapz | : c'est pas grave sinon |
| 20:23 | @effraie | : moi, j'aimerasi bien que tu parles des plages d'adresses (réservées, toussa) |
| 20:23 | thomsen | : comment on connait son adresse IP ? |
| 20:23 | Raude | : yep |
| 20:23 | @gapz | : effraie: ok bon bon |
| 20:23 | moft | : c'est quoi les principales différences entre IPv4 et IPv6 ? |
| 20:23 | @gapz | : quelqu'un d'autre veut que je parle de l'adressage ? |
| 20:23 | wiloo | : thomsen, ifconfig |
| 20:23 | @effraie | : ^^" |
| 20:23 | Capi | : ipconfig |
| 20:24 | @gapz | : moft: la taille des adresses ;) |
| 20:24 | thomsen | : merci |
| 20:24 | @illovae | : c'est quoi l'adressage ? les histoires de classes ? |
| 20:24 | moft | : merci |
| 20:24 | @gapz | : moft: et quelques autres petites nuances |
| 20:24 | wiloo | : Capi, au bucher o:) |
| 20:24 | @gapz | : Bon, si plusieurs personnes veulent que je parle de l'adressage je vais vous en toucher un mot tout de suite |
| 20:24 | clems_Mod_push | gapz: ca risque d'etre long non ? |
| 20:24 | @gapz | : et détailler apres |
| 20:24 | Capi | : pk? |
| 20:24 | ::: | mode/#ubuntu-fr-classroom [+m] by gapz |
bon, la je fais ca a la main donc ca va etre un peu moins rapide
l'adressage, c'est tout ce qui concerne l'attribution d'adresse logique avec IP, il y a plusieur classe d'adresse A, B, C et D qui ont des plages reservés en fonction des premiers bits de poids fort (si vous ne connaissez pas le binaire, il est pas trop tard pour apprendre)
les classes A, B et C peuvent etre utilisées de maniere classique dans un reseau local bien qu'il y ai des plages normalisé pour les réseaux privées je ne les ai pas en tete, mais c'est normalisé, donc vous retrouverer ca dans la norme qui va bien ;)
la classe D quand a elle, sert essentielement pour le multicast (j'en parlerais à la fin si j'ai le temps ;))
| 20:27 | @gapz | : vous vous etes fait une idée ? |
| 20:27 | FiFouille | : Les différentes classes d'adresses |
| 20:27 | clems_Mod_push | : Site exemple http://www.flumps.org/ip/ |
| 20:27 | cyril_ | : A : 10.X B: 178 C : 192 |
| 20:27 | FiFouille | : et les adresses privées ne sont que des exemples de classe d'adresse, un sous ensemble |
| 20:28 | @gapz | : FiFouille: oui c'etait implicite :) |
| 20:28 | clems_Mod_push | : cyril_: 192 ?? |
| 20:28 | cyril_ | : 192.168.0.1 |
| 20:28 | clems_Mod_push | : a ok |
| 20:28 | cyril_ | : 10.0.0.0 |
| 20:28 | cyril_ | : abc |
| 20:28 | @gpocentek | gapz: on reviendra là dessus à la fin si besoin ? |
| 20:29 | _Evil_ | : ya pas une différence entre adresse privée et adresses réservées ? |
| 20:29 | @gapz | : gpocentek: oui, enfin, il y a matiere a parler la dessus |
| 20:29 | @gapz | : et je veux pas imposer mon cours |
| 20:29 | @gapz | : :) |
| 20:29 | corentin | : _Evil_: si |
| 20:29 | FiFouille | gapz: je crois que si on se contente de retenir les 3 plages d'adresses privées ça sera déjà bien ;) |
| 20:29 | @gapz | : un minimum d'interactivité est necessaire |
| 20:29 | cyril_ | : oui privée : local non routable |
| 20:29 | @gpocentek | gapz: comme tu le sens ;) |
| 20:29 | @gapz | : FiFouille: voila |
| 20:29 | cyril_ | : reservee pour ip routable (internet) |
| 20:29 | cool_spot | : lorsqu'on a UP BROADCAST RUNNING MULTICAST brodcast correpond au local? |
| 20:29 | grirgz | : vous pouvez pas reprendre depuis le debut, j'etait parti aux toilettes ? |
| 20:29 | FiFouille | gapz: t'expliques le broadcast en +m ? |
| 20:30 | @gapz | : attend |
| 20:30 | alkove | : adressage ip : http://www.bhamdaoui.com/awatif/reseaux/adressageip.htm |
| 20:30 | @gapz | : ca je l'explique plus tard FiFouille ;) |
| 20:30 | @gapz | : Bon bon |
| 20:30 | @gapz | : noter les liens, je coupe |
| 20:30 | ::: | |
| 20:30 | cyril_ | : ? |
| 20:30 | ::: | mode/#ubuntu-fr-classroom [+m] by gapz |
| 20:30 | @gapz | : cyril_: on se passera de tes commentaires |
| 20:30 | @gapz | : et de tes explications aussi |
Donc nous reviendrons un peu apres à l'adressage Passons, à un exemple simple Nous allons essayer de comprendre maintenant qu'est-ce qu'il se passe quand nous tapons la commande:
$ ping -c 2 192.168.0.2 # (à partir de 192.168.0.1)
Avant tout, histoire de pas etre perdu dans toute les notions que je ne
vais pas expliquer tout de suite, à quoi sert la commande ping ?
En fait, elle sert à tester la connectivité entre deux machines (la
plupart du temps). Il utilise pour cela le protocole ICMP qui est decrit
dans la RFC 777. Le fonctionnement en detail ici nous importe peu.
(Pour les curieux, le
-c 2
indique d'envoyer juste deux requetes ICMP
ECHO)
ICMP ca veut dire:
Internet Control Message Protocol
c'est decrit dans la RFC 792
| 20:32 | @gapz | : Est-ce que tout le monde a une box ou une station a pinger ? |
| 20:32 | @illovae | : si on a pas de réseau sous la main, on peut le faire avec une adresse internet ? (genre google) |
| 20:33 | @gapz | : illovae: non non |
| 20:33 | Lutin | gapz: 127.0.0.1 ca compte ? :} |
| 20:33 | @illovae | : moi ma box je peux pas vraiment la pinger c'est comme si elle existait pas |
| 20:33 | @gapz | : illovae: tu as un shell chez moi ;) |
| 20:33 | FiFouille | : ping -c 2 www.google.fr ça marche très bien aussi |
| 20:33 | @gapz | : Lutin: non :] |
| 20:33 | @illovae | : hum |
| 20:33 | Lutin | gapz: :] |
| 20:33 | @gapz | : FiFouille: pas pour mon exemple ;) |
| 20:33 | @gapz | : tu comprendras FiFouille |
| 20:33 | @gapz | : Bon, ceux qui ne se prononce pas je suppose que oui |
| 20:33 | corentin | : illovae: oui mais c'est plus du LAN |
| 20:33 | cool_spot | : oui ping pong c'est bon |
| 20:33 | FiFouille | gapz: genre il va parler du TTL /o\ |
| 20:33 | elessor | : comment je connais l'adresse de ma box? |
| 20:34 | @gapz | : (127.0.0.1 pour les curieux c'est la boucle local) |
| 20:34 | @gapz | : FiFouille: pas du tout |
| 20:34 | corentin | : elessor: ifconfig |
| 20:34 | @gapz | : elessor: bah c'est quoi ton adresse deja ? |
| 20:34 | @gapz | : adresse privé bien sur |
| 20:34 | cyril_ | : l'adresse de ta box c le numero de passerelle dans ifconfig |
| 20:34 | cool_spot | : elessor c'est l'adresse de ta passerelle |
| 20:34 | @gapz | : apres, tu deviens rapidement quelle est l'adresse de ta box :) |
| 20:34 | cool_spot | : oups grillé |
| 20:34 | @gapz | : enfin, tu peux aussi matter ta passerelle quoi |
| 20:34 | corentin | : cyril_: non |
| 20:34 | cyril_ | : si |
| 20:34 | ::: | cyril_ was kicked from #ubuntu-fr-classroom by gapz [gapz] |
| 20:34 | elessor | : adresse privé? kézako :P (désolé, jme suis ptét perdu dans un cours qui n'étais pas pour débutants xD) |
| 20:35 | corentin | gapz: merci :) |
| 20:35 | FiFouille | : ha mais non, j'ai même pas eu le temps de lui dire que c'était un boulet :/ |
| 20:35 | @gapz | : elessor: bah c'est l'adresse qui t'appartient dans ton sous réseau |
| 20:35 | @gapz | : tu ne "sors" pas sur internet avec |
| 20:35 | @gpocentek | : elessor: 'cat /etc/resolv.conf', t'as des chances d'avoir le bon résultat |
| 20:35 | clems_Mod_push | : non routable :) |
| 20:35 | @gapz | : c'est une adresse qui n'est pas valide pour allez sur le net |
| 20:35 | corentin | : c'est des adresses non publiques |
| 20:35 | elessor | : un truc qui pourait ressembler à 192.168.1.36 ? |
| 20:35 | corentin | : oui |
| 20:35 | clems_Mod_push | : ouip |
| 20:36 | @gapz | : elessor: ecoute gpocentek ;) |
| 20:36 | clems_Mod_push | : change 36 en 1 |
| 20:36 | @gapz | : Bon, je supose que tout le monde a la config sous la main |
| 20:36 | clems_Mod_push | : et ta la gate |
| 20:36 | clems_Mod_push | : euh passerelle |
| 20:36 | FiFouille | : elessor: ouep, et faut bien se dire que t'es sûrement pas le seul a avoir une adresse comme ça ... d'où le principe d'adresse privée, elle n'a lieu d'être que dans ton réseau _local_ |
| 20:36 | ::: | mode/#ubuntu-fr-classroom [+m] by gapz |
Donc donc, apres cette belle commande, vous devriez avoir un truc du style:
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data. 64 bytes from 192.168.0.2: icmp_seq=1 ttl=255 time=0.274 ms 64 bytes from 192.168.0.2: icmp_seq=2 ttl=255 time=0.262 ms --- 192.168.0.2 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1004ms rtt min/avg/max/mdev = 0.262/0.268/0.274/0.006 ms
Pour interpreter cela grossierement, on va dire que: "ca marche". Dans un cas contraire, on aurait pue avoir une reponse du style:
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data. From 192.168.0.3 icmp_seq=1 Destination Host Unreachable From 192.168.0.3 icmp_seq=2 Destination Host Unreachable --- 192.168.0.2 ping statistics --- 2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1014ms, pipe 2
bien sur "Destination Host Unreachable" est un message d'erreur specifique
qui peut servir a diagnostiquer le probleme
Mais ce n'est pas ca qui nous interesse ici
Bref, pour le moment essayons plutot de comprendre comment l'echange est
réalisé. Pour cela, je vais introduire une nouvelle notion, celle de
"trame". Pour eviter de rentrer dans les details je vais comparer une
"trame" à une lettre qu'on doit poster. Pour pouvoir envoyer une trame
il faut donc: une adresse "physique" source, une adresse "physique" de
destination et des données (l'adresse physique, c'est l'adresse MAC de
votre carte reseau, elle est unique: ifconfig, champs HWaddr).
Cette trame est composé d'autre "champs", nous verrons lesquels un peu
apres. (Pour les préssés, allez voir la norme IEEE 802.3)
(ca va vite les ralentir :P)
| 20:38 | @gapz | : L'adresse MAC je suppose que vous connaissez ? |
| 20:38 | FiFouille | gapz: non |
| 20:38 | Capi | : adresse unique au monde |
| 20:38 | elessor | : (merci pour vos réponses précédentes :P par contre gpocentek ta commande me renvoit l'adresse de ma box :P) |
| 20:38 | @gapz | : c'est une adresse que fixe le constructeur de votre carte reseau |
| 20:38 | @gpocentek | : elessor: wep, c'était voulu ;) |
| 20:38 | @gapz | : qui est constitué de maniere speciale |
| 20:39 | cool_spot | : non pas trop vite, je veux juste savoir pourquoi dites vous que ce n'est pas la box la passerelle? C'est s'il es derriere un routeur? |
| 20:39 | @gapz | : pour les details, je vous rapporte a google.Fr ;) |
| 20:39 | clems_Mod_push | gapz: pour info il est possible d'avoir 2 carte avec la meme MAC |
| 20:39 | The_Tito | : non |
| 20:39 | @gapz | : clems_Mod_push: oui oui je sais |
| 20:39 | Capi | : non |
| 20:39 | @gapz | : si si |
| 20:39 | FiFouille | : techniquement elles sont probablement pas uniques, mais la probabilité d'en avoir deux identiques sur un même segment (réseau) est infime |
| 20:39 | @gapz | : on peut le changer de maniere logiciel |
| 20:39 | Capi | : sauf si vous la changez |
| 20:40 | clems_Mod_push | gapz: :P |
| 20:40 | @gapz | : :) |
| 20:40 | clems_Mod_push | : c pratiqque pqrfois |
| 20:40 | @gapz | : enfin, les details pour le moment osef :) |
| 20:40 | @gapz | : sauf si bien sur VOUS voulez detailler |
| 20:40 | ::: | mode/#ubuntu-fr-classroom [+m] by gapz |
| 20:40 | ::: | mode/#ubuntu-fr-classroom [+o FiFouille] by gapz |
| 20:41 | @gapz | : (FiFouille: donc la c'est le moment on tu parles de GnuPG :P) |
Il nous faut donc une adresse "physique" de destination. Seulement
voila, lorsqu'un on tape "
ping 192.168.0.2
", on specifie une adresse
logique de destination. Il va donc falloir trouver un moyen pour faire
la correspondance entre adresse logique et adresse physique.
| 20:41 | @gapz | : Tout le monde voit à peu près pourquoi ? |
| 20:41 | @gapz | : *lag* |
| 20:41 | grirgz | : pan! |
| 20:41 | @FiFouille | : hint: faut que la couche réseau (IP) parle à la couche liaison (ARP & MAC) |
| 20:42 | @gpocentek | : vu |
| 20:42 | @gapz | : ok, donc si gpocentek comprend tout le monde |
| 20:42 | @gapz | : comprend |
| 20:42 | The_Tito | : ^^ |
| 20:42 | Sp4rKy | : ^^ |
| 20:42 | @gpocentek | : :) |
| 20:42 | moft | : :) |
parlons des choses qui fache
C'est donc le protocole ARP (Address Resolution Protocol) qui permet de faire cette association. Il maintient pour cela une table avec les correspondances @logique - @physique.
Revenons donc le moment juste après que l'on est tapé notre commande.
Tout d'abord, il y a une verification de la table ARP pour savoir s'il
n'y a pas d'adresse physique en correspondance avec notre adresse
logique. Admettons que non. ARP entreprend alors d'obtenir l'adresse
physique de destination au moyen d'une requete simple:
"A qui appartient cette @#! d'adresse logique 192.168.0.2 ?"
Et cette belle trame est envoyé à "tout le monde"
, soit une adresse
physique de destination qui est composé de:
"FF:FF:FF:FF:FF:FF" (on appel cela un broadcast).
Les stations qui vont recevoir cette trame, vont se dire "tiens c'est
pour moi"
, vont regarder la requete ARP, verifier que c'est leur adresse
physique qu'on veut savoir (il suffit de regarder le champ: adresse
logique de destination contenue dans la requete ARP), et renvoyer une reponse:
"192.168.0.2 est à 00:C0:A8:F4:6A:74"
par exemple.
Si la requete ne nous est pas destinée (cad si l'adresse logique de destination contenue dans la requete ARP n'est pas la notre) alors elle sera tout simplement ignorée.
Une fois l'adresse physique de destination recupérée, notre trame pourra
alors être envoyé au bon destinataire. On pourra noté qu'ARP aura pris
soin d'ajouter la correspondance @logique→@physique dans sa table. Pour
pouvoir voir cette table, mettez un petit coup de "arp -a" dans votre
shell, ou bien "cat /proc/net/arp". Pour le
reste, man arp ;)
| 20:44 | @FiFouille | : bon sinon on peut faire l'analogie du con qui débarque au café |
| 20:44 | @gapz | : FiFouille: \o/ |
| 20:44 | Raude | : FiFouille: oui... ? |
| 20:44 | @FiFouille | : "qqun connait jean pol ?"et si jean pol entend, il répond "oui, c'est moi" |
| 20:44 | * | gpocentek comprend *tout* |
| 20:44 | @gapz | : Des questions ? |
| 20:44 | @illovae | : euh |
| 20:45 | @gapz | : illovae: si quelque chose te gene n'hesite pas |
| 20:45 | @FiFouille | : bon ça induit aussi des problèmes de sécurité, genre si françois répond "oui, c'est moi"mais on en parlera ptet plus tard ;) |
| 20:45 | moft | : heu..et si jean pol entend pas ? |
| 20:45 | cyril_ | : comment on peux voir le contenu d'une requete arp et voir cela ? |
| 20:45 | @illovae | gapz: ok merci |
| 20:45 | @FiFouille | : moft: bonne question |
| 20:45 | grirgz | : et si jean pol est completement bourré ? :p |
| 20:45 | @FiFouille | : moft: et je pense que d'autres personnes peuvent répondre à la place de jean pol |
| 20:45 | @gapz | : FiFouille: non je crois pas |
| 20:45 | @FiFouille | : sauf que oui, s'ils ont pas remarqué que jean pol est déjà rentré chez lui, l'info est pas cohérente |
| 20:45 | @gapz | : je crois que les requetes sont renvoyer periodiquement |
| 20:46 | moft | : et ça fait du ARP poisoning non ? |
| 20:46 | @gapz | : jusqu'a temps que ca marche |
| 20:46 | @gapz | : moft: on en reparlera avec demo à l'appuie si tu veux ;) |
| 20:46 | @gapz | : pour le moment, on va appuyer l'exemple |
| 20:46 | moft | : okay |
| 20:46 | @gapz | : Personne a de question jusque la donc ? |
| 20:46 | @FiFouille | : bon et sinon j'ai dit une connerie, y'a que la machine demandée qui répondra ;) |
| 20:46 | cyril_ | : ben si |
| 20:46 | elessor | : donc en clair, quand on balance un ping, ARP demande à tous les trucs branchés à not' PC "c'est qui 192.168.1.1 ??" et il atend une réponse? |
| 20:46 | @gapz | : FiFouille: ;) |
| 20:47 | @gapz | : elessor: voila, pour demander l'adresse MAC pour completer l'adresse de destination de la trame |
| 20:47 | elessor | : ouai ça j'avai compris... |
| 20:47 | @gapz | : voila :) |
| 20:47 | @gapz | : Bon |
| 20:47 | elessor | : mais s'il trouve la correspondance dans sa table il a pas besoin de faire ça? |
| 20:47 | @gapz | : non il a pas besoin de faire |
| 20:47 | @gapz | : +ca |
| 20:47 | @gapz | : et envoie directement la trame au destinataire |
| 20:48 | @FiFouille | : y'a un cache qui reste effectif pendant une durée donnée |
| 20:48 | @FiFouille | : pas obligé de redemander à chaque fois |
Comme vous l'aurait compris, s'en suit ensuite quelques echanges correspondant à l'outil ping (protocole ICMP toussa ;))
Analysons un plus en details une trame, notamment celle avec notre
requete ARP. Pour cela, vous avez besoin d'un sniffeur de paquet (qui
permet simplement "d'ecouter" les paquets qui passe sur une interface et
de les analyser ensuite). Le plus simple mais aussi un des plus
performants est Ethereal, plus connu maintenant sous le nom de
Wireshark (un petit coup d'apt-get install s'impose pour ceux qui ne
l'ont pas bien sur). Si vous vous sentez l'ame d'un bricoleur vous
pouvez toujours vous servir de tcpdump, qui est lui aussi extremement
performant.
Tout d'abord, enlever de votre table ARP la correspondance avec l'hote que nous voulons joindre. Par exemple 192.168.0.1:
# arp -d 192.168.0.1
Maintenant, lancer la capture de paquet avec votre sniffeur. Par exemple avec wireshark: Ctrl+k puis choissez l'interface qui va bien et "Start". Pour ceux qui ne pourrais pas "simuler" cette situation, voici un exemple de fichier contenant un echange réaliser chez moi:
| 20:50 | @gpocentek | gapz |
| 20:50 | @gpocentek | : wireshark à lancer en root ? |
| 20:50 | @gapz | : ttzy.ath.cx/~gapz/classroom/arp-query |
| 20:50 | @gapz | : gpocentek: ouep |
| 20:50 | @gapz | : pour avoir le droit de sniffer |
| 20:50 | @gpocentek | : ok |
| 20:50 | @gapz | : j'ai oublié de le preciser |
| 20:51 | @gapz | : on peut pas mettre la carte en mode promiscious sans etre root |
| 20:51 | @gapz | : promiscuous meme |
| 20:51 | @FiFouille | gapz: on peut pas écouter le trafic tout court |
| 20:51 | @gapz | : :) |
| 20:51 | @gapz | : rho ca va, c'etait pour sortir un mot savant |
| 20:51 | ::: | mode/#ubuntu-fr-classroom [-m] by gapz |
| 20:52 | @illovae | : j'ai deux questions :) |
| 20:52 | @gapz | : tout le monde a reussi a choper les quelques trames ? |
| 20:52 | @gapz | : illovae: on t'ecoute |
| 20:52 | @illovae | : 1: arp -a en fait ça sert à voir l'ip dans le réseau local juste non ? |
| 20:52 | @gapz | : illovae: non :) |
| 20:52 | @gapz | : ca sert a voir la correspondance adresse logique → physique |
| 20:52 | @gapz | : d'une machine dans ton sous reseau :) |
| 20:52 | @illovae | : ouai mais dans arp -a on voit pas tout le réseau ? |
| 20:52 | @gapz | : illovae: non non juste ton sous reseau :) |
| 20:53 | cyril_ | : seulement celles avec lesquelles tu as deja eu un contact il me semble |
| 20:53 | @illovae | : hum... |
| 20:53 | @gapz | : ha ok, je vois mieux le but de ta question :) |
| 20:53 | corentin | : illovae: ça montre le cache arp de ta machine |
| 20:53 | @gapz | : cyril_: pas du tout |
| 20:53 | Raude | : ard garde pas en cache les adresses extérieurs ? |
| 20:53 | @illovae | : bon pour faire simple, j'imagine que dans le réseau où je suis y'a plusieurs machines, mais je vois que deux adresses de sous-réseau |
| 20:53 | Raude | : *arp |
| 20:53 | cyril_ | : si je ping ma seconde machine sur mon reseau local j'ai sa mac |
| 20:53 | @illovae | : pourquoi ? |
| 20:53 | @FiFouille | : arp -a ça affiche tout simplement les correspondances MAC - IP en cache |
| 20:53 | @gapz | : les requetes arp passe pas les routeurs, enfin ca depend des cas mais la plupart du temps non il me semble |
| 20:54 | corentin | : illovae: nmap -sP 192.168.0.0/24 |
| 20:54 | cyril_ | : ben je suis deux pc sur un routeur ddrt |
| 20:54 | @gapz | : Raude: non non juste celle de ton sous reseau |
| 20:54 | corentin | : illovae: comme ça t'auras toutes les machines du LAN dans ton cache arp |
| 20:54 | @illovae | : arp ça sert à rien sinon à savoir que t'es connecté à tel machine ? |
| 20:54 | @gapz | : illovae: je comprend pas ta question |
| 20:54 | @gapz | : attention a la notion de sous reseau |
| 20:54 | @gapz | : illovae: non non |
| 20:54 | clems_Mod_push | : corentin: bourrin ! |
| 20:54 | corentin | : illovae: non c'est la correspondance entre l'IP et la MAC |
| 20:55 | @gapz | : ca sert a completer l'adresse de destination de ta trame |
| 20:55 | ::: | mode/#ubuntu-fr-classroom [+m] by gapz |
| 20:55 | @gapz | : *ca sert a completer l'adresse de destination de ta trame* |
| 20:55 | @gapz | : sans ca, tu peux rien faire |
| 20:55 | @illovae | : donc l'adresse 192.168.0.2 que je vois dans mon arp c'est l'ip de ma machine dans mon réseau ? |
| 20:55 | @FiFouille | : illovae: le truc à comprendre ce que sur un réseau ethernet 'classique' IP a aucune chance de s'en sortir seul, il doit passer par de l'ARP pour trouver les MAC des gens qu'il veut joindre |
| 20:55 | @illovae | : avec sa correspondance machin là ? |
| 20:55 | @gapz | : illovae: l'adresse MAC :) |
| 20:55 | @illovae | : ouai j'ai compris que c'est un... |
| 20:55 | @illovae | : concordance entre MAC et IP mais je pige pas pourquoi je vois que deux trucs |
| 20:56 | @illovae | : 192.168.0.254 et 192.168.0.2 |
| 20:56 | @gapz | : bah c'est machines de ton reseau avec lequels tu as communiqués illovae |
| 20:56 | @gapz | : surement |
| 20:56 | @illovae | : ok |
| 20:56 | @illovae | : c'est tout ? |
| 20:56 | @FiFouille | : illovae: c'est nul hein :p |
| 20:56 | @gapz | : .254 j'imagine que c'est un routeur et .2 une workstation |
| 20:56 | @gapz | : illovae: oui |
| 20:56 | @illovae | : erf okay, bon je me prenais la tête pour rien désolé... |
| 20:56 | @gapz | : et rien que ca c'est bourré de faille :P |
| 20:56 | @illovae | : j'ai le droit à une deuxième question quand même ? |
| 20:56 | @gapz | : illovae: of course |
| 20:57 | @gapz | : pour ceux qui ont des questions |
| 20:57 | @FiFouille | gapz: t'as muté, y'a plus que illovae qui pose des questions :p |
| 20:57 | @illovae | : euh arp -d 192.168.0.2 ça risque pas d'endommagé quoique ce soit dans le réseau ? |
| 20:57 | @gapz | : attendez un peu, et vous aurez votre tour |
| 20:57 | @gapz | : illovae: si c'est l'adresse de ton routeur |
| 20:57 | @FiFouille | : illovae: non, il va juste devoir refaire les requetes |
| 20:57 | @gapz | : voila |
| 20:57 | @gapz | : l'espace d'une seconde tu auras plus le net |
| 20:58 | ::: | mode/#ubuntu-fr-classroom [-m] by gapz |
| 20:58 | @gapz | : d'autres questions ? |
| 20:58 | @illovae | : ok (je compte pas le faire, je suis pas sur ma machine, mais c'était pour savoir) |
| 20:58 | @gapz | : illovae: tu peux toujours le faire sur .2 si c'est pas ton routeur |
| 20:58 | @FiFouille | : illovae: c'est transparent, tu t'en rendras même pas compte |
| 20:58 | @gapz | : D'AUTRES QUESTIONS ? |
| 20:58 | elessor | : on est censé voir quoi avec wireshark? |
| 20:58 | clems_Mod_push | : euh non chef |
| 20:58 | @FiFouille | gapz: respect, t'as fait mieux que moi avec les regex:p |
| 20:58 | Raude | : non |
| 20:58 | skiron | : non |
| 20:58 | @gapz | : elessor: attend on va y venir |
| 20:58 | clems_Mod_push | : elessor: les trames |
| 20:58 | ::: | mode/#ubuntu-fr-classroom [+v elessor] by gapz |
| 20:59 | ::: | mode/#ubuntu-fr-classroom [+m] by gapz |
| 20:59 | @gapz | : FiFouille: :] |
| 20:59 | @gapz | : Donc, j'isole elessor pour lui expliquer :) |
| 20:59 | @gapz | : donc, wireshark analyse de qui passe (sort/entre) de ta carte (tes cartes ?) réseau |
| 20:59 | +elessor | : (pour l'instant j'ai lancé la "surveillance" ds tranferts entremon PC et ma box, et c'est le bordel :P) |
| 20:59 | @gapz | : elessor: stop le et recommance |
| 20:59 | @gapz | : et dans la barre de filtre met 'arp' |
| 21:00 | @gapz | : et remet un coup d'arp -d etc avant de lancer l'analyse |
| 21:00 | +elessor | : ok |
| 21:00 | ::: | mode/#ubuntu-fr-classroom [-m] by gapz |
| 21:00 | @gapz | : Toujours pas de question donc ? |
| 21:00 | @FiFouille | : pour les gens qui aiment pas les trucs graphiques : sudo tcpdump -i eth0 arp |
| 21:01 | @gapz | : On va analyser ces belles trames |
| 21:01 | @FiFouille | : avec eth0 l'interface qui va bien |
| 21:01 | @gapz | : ou vous pouvez chopper mon fichier |
| 21:01 | @gapz | : il y a tout ce qu'on veut |
| 21:01 | Raude | : euh... c'est normale que ma box se souvienne plus de moi et m'evoi un paquet arp ? |
| 21:01 | clems_Mod_push | : me : FiFouille tcpdump arp pour les multiples cartes |
| 21:01 | @gapz | : Raude: normalement, tout depend de l'implementation, on envoit des requetes de maniere periodique |
| 21:01 | Raude | : ok |
| 21:02 | @gapz | : Raude: donc oui, ne t'inquiete pas ;) |
| 21:02 | moft | : je dois partir :'(, vive les logs |
| 21:02 | @FiFouille | : clems_Mod_push: il prend la première interface par défaut |
| 21:02 | @gapz | : elessor: des que tu seras pres dit le, nous on continue un peu ;) |
| 21:02 | moft | : bonne soirée tout le monde et bon cours |
| 21:02 | +elessor | : allez y ^^ |
| 21:02 | @gapz | : moft: dommage, tu auras loupé l'arp spoofing |
| 21:02 | @gapz | : Bonne soirée moft |
| 21:02 | @FiFouille | gapz: haha, gros sale :p |
| 21:02 | @gapz | : exactement :P |
| 21:02 | @gapz | : bon |
donc, tout ce qu'on va voir la est normalisé la taille des champs, le type, les differentes valeurs etc
nous allons juste détailler quelques trames pour bien comprendre le concept d'echange de "couche" 2
(s'il y a encore des survivants)
| 21:04 | clems_Mod_push | : ouip cool |
| 21:04 | cyril_ | : dis j'ai une question |
| 21:04 | @gapz | : Ca vous derange pas l'analyse de trame ? On peut zappé si vous trouvez ca trop theorique |
| 21:04 | cyril_ | : sur arp |
| 21:04 | The_Tito | : on écoute attentivement :) |
| 21:04 | @gapz | : ok :) |
| 21:04 | clems_Mod_push | a non gapz moi je veux :P |
| 21:04 | corentin` | : re |
| 21:04 | @gapz | : ok ok |
| 21:04 | Raude | : vive les trames ! |
| 21:05 | cyril_ | gapz, question : dans le cas ou sur un routeur, deux pc on la meme adresse mac, que vas faire le routeur ? envoyer les trames aux deux machines, ou faire autre chose ? |
| 21:05 | @gapz | : :) |
| 21:05 | @gapz | : cyril_: bah si tu as deux adresses MAC identique change de fournisseur de carte réseau |
| 21:05 | clems_Mod_push | : cyril_: je pense kil les balances |
| 21:05 | clems_Mod_push | : a tester |
| 21:05 | corentin` | : cyril_: un coup l'un un coup l'autre selon qui a fait une annonce d'adresse mac en dernier |
| 21:05 | +elessor | : ayè je l'ai eu :P |
| 21:05 | @gapz | : ca depend des implementations |
| 21:05 | @gapz | : on peut pas repondre de maniere absolue |
| 21:06 | @FiFouille | : cyril_: envoyer à celui qui répond le plus vite d'abord, et puis au second qui aura pourri son cache, et puis au premier après un temps tout ça avec des FIN qui lui reviennent de temps en temps si c'est du TCP, en clair, y'a rien qui marche ;) |
| 21:06 | clems_Mod_push | : en theorie dvrait les balancer au 2 non ? |
| 21:06 | @gapz | : Bon, analysons un peu la premiere trame |
| 21:06 | clems_Mod_push | : devrait ? |
| 21:06 | corentin` | gapz: tu veux dire si il garde un cache arp static par exemple ? |
| 21:06 | ::: | |
| 21:06 | @gapz | : corentin`: gni ? |
| 21:06 | @gapz | : je repondais a cyril_ |
Donc, regardons un peu la premiere trame
on peut observer comment est former une trame type ethernet V2
@source @destination @sap @donnee
donc, source et destination vous connaissez deja
le SAP, je sais pas si on l'appel comme ca a ce niveau
c'est Service Access Point
ca permet de dire, les données qui vont suivre sont destinée à tel service
toute une game de valeur existe
ici c'est 806
qui correspond a ARP
on aurait pue avoir 800 pour IPv4 par exemple
et bien d'autres
| 21:09 | ::: | |
| 21:09 | @gapz | : tout le monde voit bien a quoi sert le champs protocole ? |
| 21:09 | @gapz | : [ ENTETE ] [ DONNNEE ] |
| 21:09 | @illovae | : j'ai dû louper le moment où tu as donné un exemple |
| 21:09 | @gapz | : avec l'entete composée de ce qu'on a vue plus haut |
| 21:09 | @gapz | : illovae: j'ai pas donnée d'exemple :) |
| 21:09 | @gpocentek | : illovae: tu le fais chez toi ;) |
| 21:09 | @illovae | : ah ok |
| 21:10 | visor | : tu dit ici c'est 806 mais ou |
| 21:10 | @gapz | : mais c'est pour dire que les données qui vont suivre sont pour ARP |
| 21:10 | @gapz | : visor: clique sur "Ethernet ....." dans la partie basse de wireshark |
| 21:10 | * | gapz donne des explications sur wireshark alors qu'il l'a meme pas sous les yeux |
| 21:10 | @gapz | : ni d'installé :] |
| 21:10 | * | gpocentek peut faire un scrot |
| 21:10 | @gapz | : visor: et tu vois un champs nommé "Type" |
| 21:11 | @illovae | : gpocentek: ouai je veux bien :) |
| 21:11 | visor | : peut-tu mettre un exemple? |
| 21:11 | @gapz | : on appel ca l'ether-type aussi |
| 21:11 | @illovae | : merci |
| 21:11 | clems_Mod_push | gapz: tu fais du ethereal toute la journee ? |
| 21:11 | @gapz | : clems_Mod_push: j'en ai fais pendant longtemps on va dire ;) |
| 21:11 | Sp4rKy | gapz est né dans une trame ipv6 |
| 21:11 | visor | : oui |
| 21:11 | clems_Mod_push | : l horreur |
| 21:11 | @gapz | : mais tcpdump et scapy l'ont vite remplacé |
| 21:11 | @FiFouille | gapz: me disais bien, t'étais en train de me faire peur :p |
| 21:11 | clems_Mod_push | : je deteste ca au taf :( |
| 21:12 | @gpocentek | : http://gauvain.pocentek.net/wireshark.png |
| 21:12 | clems_Mod_push | : tcpdump rox |
| 21:12 | @gapz | : Bon, je vais vous faire un schema avec scapy |
| 21:12 | @illovae | : merci gpocentek |
| 21:12 | @gapz | : je vous demande 3s :P |
| 21:12 | @gapz | : merci gpocentek :) |
| 21:12 | @gpocentek | : ;) |
| 21:12 | @gapz | : gpocentek: met "arp" dans le filtre ;) |
| 21:12 | The_Tito | : joli client irc ^^ |
| 21:13 | clems_Mod_push | : lol |
| 21:13 | clems_Mod_push | : irssi :P |
| 21:13 | @FiFouille | bon, pendant le temps que gapz fait joujou, des questions ? |
| 21:13 | corentin` | : The_Tito: c'est irssi il me semble |
| 21:13 | @gpocentek | : screenshot updaté |
| 21:13 | +elessor | : http://img70.imageshack.us/my.php?image=captureeth1capturingwirts9.png |
| 21:13 | +elessor | : hop avec le filtre arp ^^ |
| 21:13 | +elessor | : ah bah trop tard |
| 21:14 | ::: |
###[ Ethernet ]### dst= ff:ff:ff:ff:ff:ff src= 00:c0:a8:f4:6a:74 type= 0x806 ###[ ARP ]### hwtype= 0x1 ptype= 0x800 hwlen= 6 plen= 4 op= who-has hwsrc= 00:c0:a8:f4:6a:74 psrc= 192.168.0.3 hwdst= 00:00:00:00:00:00 pdst= 192.168.0.1
| 21:14 | clems_Mod_push | : c koi comme soft ? |
| 21:14 | @gapz | : scapy |
| 21:14 | @gapz | : bon bref |
| 21:14 | clems_Mod_push | : merci |
le champs ether type tout le monde a compris
type= 0x806ici donc
bon passons a un autre champ
on va passer dans l'entete du protocole ARP en gros :
[ ENTETE Ethernet ] [ DONNEE ] [ ENTETE Ethernet ] [ ENTETE ARP ] [ DONNEE ]
bon sauf qu'ici DONNEE ne correspond a rien, mais n'y preter pas attention
donc, l'entete ARP
Les champs qui nous interesse réellement sont:
| op= is-at p | cad quel type de message c'est ? |
| src= 192.168.0.1 | De qui ca vient ? (logique et physique) |
| hwsrc= 00:04:ac:bd:39:0e | |
| pdst= 192.168.0.3 | Pour qui c'est destiné ? (logique et physique) |
| hwdst= 00:c0:a8:f4:6a:74 |
En type de message, on peut avoir "who-has" et "is-at" qui correspondent simplement a une requete et une reponse
Maintenant, la question qui TUE
A votre avis, pourquoi on respecifie @source dans l'entete ARP ?
| 21:19 | @gpocentek | : euh... pour savoir à qui répondre ? |
| 21:19 | @gapz | : oui mais pourquoi on le respecifie ? |
| 21:19 | clems_Mod_push | gapz: au cas ou :P |
| 21:19 | _Evil_ | : pour avoir le vrai envoyeur du paquet ? |
| 21:20 | Raude | : parce que celui qui demande est pas forcément l'interréssé |
| 21:20 | @gapz | : alors qu'on l'a deja dans les 6 premiers bits |
| 21:20 | _Evil_ | : (super mon français) |
| 21:20 | @gapz | : PAS DU TOUT |
| 21:20 | @gapz | : FiFouille: on attend ta reponse |
| 21:20 | Raude | : erf |
| 21:20 | corentin` | gapz: parceque la premiere fois c'est du broadcast ? |
| 21:20 | @gpocentek | : par sécurité ? :) |
| 21:20 | cyril_ | : au cas ou son ip logique a changé ? |
| 21:20 | @gapz | : corentin`: je parle de la source, pas de la destination |
| 21:20 | @gpocentek | : quel suspens |
| 21:21 | corentin` | : Oops |
| 21:21 | @gapz | : pourquoi on respecifie la source ? |
| 21:21 | @gapz | : gpocentek: au contraire |
| 21:21 | @FiFouille | : pour le caching |
| 21:21 | alkove | : c'est deux couches differentes |
| 21:21 | @gpocentek | gapz: pour que ce soit pas secure ? :) |
| 21:21 | * | gapz applaudis alkove |
| 21:21 | @FiFouille | : enfin, si j'ai bien backlogué |
| 21:21 | @gapz | : tout simplement :) |
| 21:21 | alkove | : \o/ |
| 21:21 | @gpocentek | : bien vu alkove |
| 21:22 | illovae | : rien compris |
| 21:22 | Raude | : ça arrive souvent que deux couches se répètes ? |
| 21:22 | illovae | : c'est quoi les deux couches différentes ici ? |
| 21:22 | @gapz | : Raude: plus ou moins oui |
| 21:22 | cyril_ | : deux couche differentes ? |
| 21:22 | @FiFouille | : ça change quoi que la source de la trame soit spécifiée ou pas ? |
| 21:22 | @gapz | : "Ethernet" et "ARP" (qui n'est pas vraiment situé sur le modele OSI) |
| 21:22 | clems_Mod_push | : couche 1 et 2 ? |
| 21:22 | alkove | : a priori il y a la couche eternet qui sert a router le packet et la couche protocole qui pose la question literalement |
| 21:23 | @gapz | : Ethernet c'est physique et sous couche MAC |
| 21:23 | @gapz | : ARP sous couche MAC on va dire |
| 21:23 | cyril_ | : arp c en couche 3 |
| 21:23 | illovae | : :o |
| 21:23 | @gapz | : FiFouille: bah il build la reponse avec en destination la source dans l'entete ARP iirc |
| 21:23 | clems_Mod_push | : kel modele ? |
| 21:23 | @gapz | : cyril_: pas du tout |
| 21:23 | @gapz | : modele OSI inside |
| 21:23 | clems_Mod_push | : ok |
| 21:23 | @gapz | : donc, pour cette histoire de sécurité gp |
| 21:23 | cyril_ | : sur le modele osi du site que tu as donné au debut c en couche 3 |
| 21:24 | @FiFouille | gapz: et s'il répondait avec une adresse source à 00:00:00:00:00:00 ça changerait quoi ? |
| 21:24 | @gapz | : gpocentek* |
| 21:24 | visor | : couche 2 liaison de données |
| 21:24 | @gapz | : FiFouille: la reponse non je pense pas |
| 21:24 | clems_Mod_push | : m y fait pas au francais |
| 21:24 | @gapz | : FiFouille: mais la requete avec comme addr source 00... n'aurait jamais de reponse |
| 21:24 | visor | : cyril_: quel site? |
| 21:24 | @gpocentek | gapz: je suis tout ouï |
| 21:24 | @FiFouille | : oui ça, forcément |
| 21:24 | cyril_ | : http://fr.wikipedia.org/wiki/Mod%C3%A8le_OSI#Caract.C3.A9risation_r.C3.A9sum.C3.A9e_des_couches |
| 21:24 | @gapz | : cyril_: mais arrete de raconter n'importe quoi |
| 21:25 | @gapz | : ils l'ont mal situés : |
| 21:25 | @gapz | : :)* |
| 21:25 | @FiFouille | : et c'est là aussi pour faire du caching pour les autres hosts, vu que la requetes est du broadcast |
| 21:25 | @gapz | : gpocentek: 2s :) |
| 21:25 | cyril_ | : Couche de réseau |
| 21:25 | cyril_ | : NetBEUI • IPv4 • IPv6 • ARP |
| 21:25 | @gapz | : cyril_: c'est pas normalisé la ou se situe ARP |
| 21:25 | @gapz | : moi je dis sous couche MAC, d'autre disent autre chose |
| 21:25 | @gapz | : enfin bref, c'est sur le côté |
| 21:25 | @gapz | : gpocentek: donc |
| 21:26 | @gapz | : le probleme de secu que ca pose gpocentek c'est qu'aucune coherence n'est demandé |
| 21:26 | @gapz | : tu peux faire un reply à partir d'une certaine adresse MAC et donnée dans l'entete ARP n'importe quelle autre adresse MAC |
| 21:27 | @gpocentek | : ok |
| 21:27 | @gapz | : et le probleme, encore plus grave, c'est que certain OS accepte les reply ARP sans broncher :) |
| 21:27 | corentin` | : ARP poisoning :) |
| 21:27 | @gapz | : et tu peux modifier des entrées, voir en rajouter |
| 21:27 | @gpocentek | gapz: comment on fait ? :p |
| 21:27 | clems_Mod_push | gapz: ... |
| 21:27 | @gapz | : ca vous dit une demo ? |
| 21:27 | @gapz | : avec scapy ? |
| 21:27 | visor | : ouiiiii |
| 21:27 | cyril_ | : oui |
| 21:27 | clems_Mod_push | : yesssssssss |
| 21:27 | Raude | : ouai!!! \o/ |
| 21:27 | corentin` | : ettercap est pas mal pour ça aussi :P |
| 21:27 | illovae | : il faut l'installer ? |
| 21:28 | @gpocentek | : quelle bande de h4cKErs |
| 21:28 | cyril_ | : mais ca fonctionne que sur reseau local |
| 21:28 | @gapz | : Bon bon |
si vous avez plusieurs machine sur votre reseau, vous pouvez le faire
mais ne le faite pas avec votre routeur quoi :)
(enfin, vous perderez internet pour quelques secondes)
| 21:28 | @gpocentek | gapz: faut du sudo aussi ? |
| 21:28 | @gapz | : gpocentek: avoir un access root oui |
donc deja il faut python d'install
apres, dl la derniere version de scapy
(merci Mr Biondi)
wget scapy.netet voila. apres
sudo -s cp scapy.py /usr/local/bin chmod +x # si il y a besoin toussabref
| 21:29 | @gpocentek | gapz: t'as un lien ? |
| 21:30 | @gapz | : gpocentek: pour ? |
| 21:30 | @gpocentek | : pour la dernière version |
| 21:30 | @gapz | : wget scapy.net |
| 21:30 | @gpocentek | : 1.0.4-1 dans les dépôts festy |
| 21:30 | @gapz | : c'est pas des conneries ;) |
| 21:30 | @gapz | : wget scapy.net |
| 21:30 | @gapz | : wget scapy.net |
| 21:30 | @gapz | : wget scapy.net |
| 21:30 | @gapz | : wget scapy.net |
| 21:30 | @gapz | : :) |
| 21:30 | @gpocentek | : oops j'avais pas vu, dsl |
| 21:30 | @gapz | : pas besoin d'apt-get :) |
| 21:30 | @gapz | : enfin, si vous voulez install toute les deps installer par les depots |
Bref
Notre but ici va donc etre de corrompre un cache ARP sur une machine distante
Imaginons la situation suivante:
| Machine A: | |
|---|---|
| @ip : | 192.168.0.2 |
| @mac : | 00:00:00:00:00:22 |
| Machine B: | |
| @ip : | 192.168.0.3 |
| @mac : | 00:00:00:00:00:33 |
| et enfin la machine de l'attaquant: | |
| @ip : | 192.168.0.42 |
| @mac : | 00:00:00:00:00:42 |
Admettons que l'ont veut rediriger tout le traffic qui passe de A vers B
en un traffic qui va de A vers C (la machine de l'attaquant)
on pourrait meme apres rediriger vers B avec une petite regle iptables qui va bien
enfin, il y a d'autre nuance
pour le moment, construisons un faux reply ARP
| 21:34 | @gapz | : tout le monde s'imagine bien la situation et voit ce que l'on veut faire ? |
| 21:34 | @FiFouille | : on veut parler plus fort que jean pol |
| 21:34 | illovae | : oui |
| 21:34 | @gapz | : FiFouille: \o/ |
| 21:34 | ::: | |
| 21:34 | corentin` | : espionner les communications msn ? xD |
| 21:34 | @gapz | : :] |
| 21:35 | @gapz | : bon tout le monde a SCAPY fonctionnel aussi ou pas ? |
| 21:35 | visor | : on est pas visible? |
| 21:35 | @gapz | : lancer juste python scapy en root |
| 21:35 | @gapz | : visor: quoi donc ? |
| 21:35 | @gapz | : de toute facon dans ton LAN les faux reply ARP c'est direct grillé hein ;) |
| 21:35 | visor | : la machine B ne peut pas s'en rendre compte? |
| 21:36 | clems_Mod_push | : Weklcome to Scapy |
| 21:36 | _Evil_ | : fonctionnel je sais pas il dit qu'il trouve pas python gnuplot...etc |
| 21:36 | @gapz | : visor: si on fait ca bien, non ;) |
| 21:36 | julius | : bientôt fonctionnel |
| 21:36 | @gapz | : enfin, normalement tu peux vite t'en rendre compte en analysant les trames etc |
| 21:36 | @gpocentek | : _Evil_: apt-cache depends scapy |
| 21:36 | @FiFouille | gapz: t'as encore des choses à dire après l'arp spoofing ? |
| 21:36 | @gpocentek | : et installe ce qui manque d'après la liste |
| 21:36 | @gapz | : FiFouille: bah cours à la carte quoi, si tu veux caller un truc |
| 21:37 | @gapz | : bon, si j'ai 5 "OK" je continue :) |
| 21:37 | @FiFouille | gapz: j'expliquerai comment faire le script kiddy alors ;) |
| 21:37 | cyril_ | : ok |
| 21:37 | @gpocentek | : OK |
| 21:37 | @gapz | : FiFouille: pas de soucis alors, j'ai pas mal de sujet sous le coude aussi |
| 21:37 | alkove | : OK |
| 21:37 | corentin` | : ok |
| 21:37 | Raude | : ok |
| 21:37 | Kabefis | : ok :p |
| 21:37 | @gapz | : ok ok :) |
| 21:37 | @FiFouille | : NOK |
| 21:37 | ::: |
Bon
FiFouille: :)
lancons scapy en root
Tout abord, il va nous falloir builder notre reply ARP
pour cela:
(un truc pas default pour le moment)
>>> pk=Ether()/ARP() >>> pk.show()ca devrait donner un truc du style:
###[ Ethernet ]###
dst= 00:04:ac:bd:39:0e
src= 00:c0:a8:f4:6a:74
type= 0x806
###[ ARP ]###
hwtype= 0x1
ptype= 0x800
hwlen= 6
plen= 4
op= who-has
hwsrc= 00:c0:a8:f4:6a:74
psrc= 192.168.0.3
hwdst= 00:00:00:00:00:00
pdst= 0.0.0.0
maintenant, completons un peu les champs qui vont bien>>> pk.dst="00:00:00:00:00:11" >>> pk.dst '00:00:00:00:00:11'voila
>>> pk['ARP'].op="is-at"devrait marcher mais la ca me sort une exception ici
| 21:42 | arthur- | : .w 3 |
| 21:42 | @gapz | : jusque la ca marche chez vous ? |
| 21:43 | @FiFouille | gapz: t'aurais mieux fait de préparer un cours sur scapy ;) |
| 21:43 | @gapz | : bah c'est une requete collective :) |
| 21:43 | clems_Mod_push | : ouip |
| 21:43 | cyril_ | : ca marche jusque la |
| 21:43 | Raude | : woot c'est génial scapy |
| 21:43 | @gapz | : chez vous ca marche is-at aussi ? |
| 21:43 | _Evil_ | : nickel pour moi aussi |
| 21:43 | cyril_ | : oui |
| 21:44 | cyril_ | : et on peut faire un pk.show pour afficher les modif ? ou faut pas ? |
| 21:44 | @gpocentek | : oui |
| 21:44 | @gapz | : oui oui |
| 21:44 | @gapz | : gpocentek: chez toi pk['ARP'].op="is-at" |
| 21:44 | @gapz | : ca marche ? |
| 21:44 | @gpocentek | gapz: ça veut dire quoi "ça marche" ? |
| 21:44 | @gapz | : bah ca remplis correctement le champ etc ? |
| 21:44 | @gpocentek | : python m'a pas levé d'exception :) |
| 21:45 | @gapz | : ok ok |
| 21:45 | @gapz | : bon continuons alors, meme si chez moi ca merde :) |
| 21:45 | clems_Mod_push | : |
| 21:45 | clems_Mod_push | : moi g ca |
| 21:45 | ::: | |
| 21:45 | @gpocentek | : op= is-at |
| 21:45 | @gapz | : alors maintenant, il faut completer les adresses |
| 21:45 | @gpocentek | : (ça a l'air de marcher) |
| 21:45 | @gapz | : je vous demande 5s histoire de regler le soucis |
| 21:46 | @gapz | : allez au toilette, allez chercher une biere toussa |
| 21:46 | @gapz | : ecouter la blague de FiFouille |
| 21:46 | @FiFouille | : alors c'est un sadique, un zoophile, un necrophile, un assassin et un masoschiste qui se baladent dans la rue et ... |
| 21:47 | @gapz | : c'est bon ca remarche |
| 21:47 | @FiFouille | : bon sinon après je vous montre une version moins plomberie (mais moins intéressante aussi évidemment) |
| 21:48 | @gapz | : avec arp-sk FiFouille ? :P |
| 21:48 | @gapz | : bon remplissons les champs |
| 21:48 | @FiFouille | : dsniff |
| 21:48 | @gapz | : comme je vais pas faire tout le boulot |
| 21:48 | ::: | |
| 21:48 | @gapz | : A votre avis on met quoi dans hwsrc ? |
| 21:48 | Raude | : ben nous ? |
| 21:48 | corentin` | : la source mac |
| 21:48 | corentin` | : ? |
| 21:48 | cyril_ | : mac B |
| 21:48 | clems_Mod_push | : (j'ai juste une kestion c opt="is-at" ou opt= "is-at") |
| 21:49 | cyril_ | : heu |
| 21:49 | @gapz | : op="is-at" clems_Mod_push |
| 21:49 | clems_Mod_push | : :) |
| 21:49 | corentin` | : clems_Mod_push: ça prend pas moind de temps d'essayer que de demander ? |
| 21:49 | @FiFouille | : clems_Mod_push: ça doit être pareil ou alors python est vraiment mauvais ;) |
| 21:49 | clems_Mod_push | : ben j avais deja fais |
| 21:49 | @gapz | : Personne ne sait ? |
| 21:49 | @gapz | : pour le moment aucune bonne reponse |
| 21:49 | crevette | gapz: hmm ? |
| 21:49 | clems_Mod_push | : mac du C |
| 21:49 | @gapz | : sachant qu'on veut corrompre le cache de A pour rediriger tout ce qui va de A à B |
| 21:50 | @gapz | : en de A vers C |
| 21:50 | @gapz | : clems_Mod_push: voila :) |
| 21:50 | clems_Mod_push | : src |
| 21:50 | @gapz | : on met notre addresse mac :) |
| 21:50 | @gapz | : Raude: ha tu avais la bonne reponse, j'ai pas vue :) |
| 21:50 | Raude | : ^^ |
| 21:50 | @gapz | : donc donc: |
| 21:50 | @gapz | : >>> pk['ARP'].hwsrc="NOTRE MAC" |
| 21:51 | @gapz | : >>> pk['ARP'].hwsrc=pk.src |
| 21:51 | @gapz | : en gros :) |
| 21:51 | @gapz | : tout le monde a compris et est ok jusque la ? |
| 21:51 | visor | : oui ok |
| 21:51 | @gpocentek | : ouep |
| 21:52 | @gapz | : Maintenant va remplir le champ adresse source |
| 21:52 | @gapz | : psrc |
| 21:52 | @gapz | : je redemande, qu'est-ce qu'on met a votre avis ? |
| 21:52 | _Evil_ | : ip de B ? |
| 21:52 | @FiFouille | : l'adresse qu'on veut spoofer |
| 21:52 | @gapz | : Mr gpocentek vous avez levé le doigt ? |
| 21:52 | clems_Mod_push | : lol FiFouille |
| 21:53 | clems_Mod_push | : B |
| 21:53 | @gapz | : exactement _Evil_ et FiFouille :) |
| 21:53 | * | gpocentek sifflote |
| 21:53 | _Evil_ | : rroouupi :-D ! |
| 21:53 | @gapz | : soit 192.168.0.3 |
| 21:53 | @gapz | : donc on complete: |
| 21:53 | @gapz | : >>> pk['ARP'].psrc="192.168.0.3" |
| 21:53 | visor | : la source c'est la destination? |
| 21:54 | @gapz | : haha c'est beau ce que tu dis visor |
| 21:54 | Raude | : c'est encore nous ? |
| 21:54 | ::: |
je crois q'une mise au point est necessaire
on peut changer l'adresse physique de B dans le cache de A en notre adresse physique de maniere a faire envoyer A le traffic destiné à B, vers notre propre machine
| 21:55 | @gapz | : vous voyez mieux ? |
| 21:55 | Raude | : ah ok |
| 21:55 | Kabefis | : ah que oué |
| 21:55 | @FiFouille | : bon, je recommence mon analogie du café ;) |
| 21:55 | @FiFouille | : vous arrivez, y'a plein de monde, vous demandez où est jean pol |
| 21:55 | @FiFouille | : sauf que jean pol est timide, il dit seulement une fois "ici, c'est moi" |
| 21:56 | @FiFouille | : et y'a un autre sale type qui arrête pas de répéter, "je suis jean, hého, ici, c'est moi!" |
| 21:56 | @FiFouille | : vous faites quoi ? ben y'a des chances que vous parliez à l'autre type pensant que c'est jean pol |
| 21:56 | @gapz | : :) |
| 21:56 | @FiFouille | : et l'autre type peut même transmettre ce que vous lui dite à jean pol, en disant que ça vient de vous |
| 21:56 | @FiFouille | : et éventuellement déformer ce que vous dites ;) |
| 21:57 | @gapz | : Enfin, completer: |
| 21:57 | @gapz | : hwdst= 00:00:00:00:00:00 |
| 21:57 | @gapz | : pdst= 0.0.0.0 |
| 21:57 | @gapz | : on met tout ce qui correspond a notre destinataire |
| 21:57 | @gapz | : donc on met ? |
| 21:57 | clems_Mod_push | ca aide pas trop la biere tu sais gapz |
| 21:58 | @gapz | : :] |
| 21:58 | _Evil_ | : 192.168.0.2 et 00:00:00:00:00:22 |
| 21:58 | _Evil_ | : ? |
| 21:58 | @gapz | : voila _Evil_, encore une bonne reponse :) |
| 21:58 | _Evil_ | : décidément :) |
| 21:58 | corentin` | gapz: mefie toi avec un nick comme ça on sait jamais :P |
| 21:59 | @gapz | : hwdst= 00:00:00:00:00:22 |
| 21:59 | @gapz | : pdst= 192.168.0.2 |
| 21:59 | @gapz | : donc |
| 21:59 | @gapz | : corentin`: :) |
| 21:59 | @gapz | : bon bon |
| 21:59 | @gapz | : il y a du monde qui a decroché ? |
| 22:00 | @gapz | : faut repondre quelques points ? |
| 22:00 | clems_Mod_push | : euh |
| 22:00 | @gapz | : des gens ont des questions avant d'envoyer notre belle petite trame ? |
| 22:00 | clems_Mod_push | : au pire ca couille :) |
| 22:00 | @gapz | : n'hesitez surtout pas |
| 22:00 | @illovae | : pas de question |
| 22:00 | * | gapz attend 4 OK avant de continuer :P |
| 22:00 | cyril_ | : ok |
| 22:00 | clems_Mod_push | : des milliers |
| 22:00 | Raude | : ok |
| 22:01 | @illovae | : ok |
| 22:01 | clems_Mod_push | : ok |
| 22:01 | wiloo | : ça continue tjrs le cours ?? |
| 22:01 | @FiFouille | : 4 OK avant de continuer :P |
| 22:01 | @gapz | : wiloo: non la on fait une belotte |
| 22:01 | ::: |
normalement, cela devrait ressembler a cela:
>>> pk.show()
###[ Ethernet ]###
dst= 00:00:00:00:00:11
src= 00:c0:a8:f4:6a:74
type= 0x806
###[ ARP ]###
hwtype= 0x1
ptype= 0x800
hwlen= 6
plen= 4
op= is-at
hwsrc= 00:c0:a8:f4:6a:74
psrc= 192.168.0.3
hwdst= 00:00:00:00:00:22
pdst= 192.168.0.2
pour l'envoyer, rien de plus simple:
>>> sendp(pk)ce qui genere:
arp reply 192.168.0.3 is-at 00:c0:a8:f4:6a:74
et dans le cache de A, devrait etre modif l'adresse physique de B seulement il se peut que plusieurs envoie periodique remodifie ce champ vous pouvez donc l'envoyer aussi peridiquement
par exemple, pour blinder votre reseau de reply arp:
while 1: sendp(pk)
(A NE PAS FAIRE)
| 22:04 | ::: | |
| 22:04 | @gapz | : voila |
| 22:04 | clems_Mod_push | gapz: lol |
| 22:04 | @FiFouille | gapz: haha, là c'est sûr, on t'a vu :p |
| 22:04 | @gapz | : Bon, pour finir sur ARP, des questions ? |
| 22:04 | clems_Mod_push | : calme meme |
| 22:04 | @gapz | : j'avais pas preparé donc j'ai pas de traffic type à vous montrer |
| 22:04 | cyril_ | : que fait le while ? |
| 22:05 | @FiFouille | : pour les gens qui voudraient faire des 'essais' chez eux |
| 22:05 | @gapz | : cyril_: c'est une structure de controle |
| 22:05 | visor | : tant que |
| 22:05 | @gapz | : cyril_: ce la programmation, aucun rapport avec ARP |
| 22:05 | @gapz | : c'est de la* |
| 22:05 | @FiFouille | : regardez du côté de arpspoof dans le paquet dsniff et aussi de tcpflow, le port 1863 est instructif (et édifiant) |
| 22:05 | Kabefis | : On peut faire beaucoup de passerelle comme ca? ganre passez de A à attaquant1 attaquant2 etc ? |
| 22:05 | clems_Mod_push | gapz: merci !! s |
| 22:05 | @gapz | : il y a aussi l'outil ARP-SK qui vous permet de realiser cela en deux coups de cuiellere a pot |
| 22:06 | @gapz | : Kabefis: non non, un seul, vue qu'il n'y a qu'une correspondance |
| 22:06 | @FiFouille | gapz: c'est un fork d'arpspoof ou autre chose dans ce gout ? |
| 22:06 | @gapz | : FiFouille: euh, je suis pas sur, mais non |
| 22:06 | @FiFouille | : ben en théorie en chainant les arp spoofés et en visant la bonne 'cible' y'a moyen d'en faire plein d'étapes intermédiaires |
| 22:07 | _Evil_ | : ça permet vraiment de récupérer quelque chose de concret quand des paquets nous sont pas destinés a la base ? |
| 22:07 | cyril_ | : comment tu fais pour relancer de facon peroidique, scype |
| 22:07 | @FiFouille | : _Evil_: la conversation IM du voisin ou son mot de passe mail ? oui |
| 22:07 | cyril_ | : comment tu fais pour relancer de facon peroidique, scypesc |
| 22:07 | cyril_ | : arg sorry |
| 22:07 | cyril_ | : comment tu fais pour relancer de facon peroidique, scapy le prevois ds les options ? |
| 22:08 | @gpocentek | : cyril_: c'est du python |
| 22:08 | @gapz | : non non, mais dans une boucle tu fais des temporisations etc cyril_, par exemple |
| 22:08 | @gpocentek | : donc il suffit de coder un timer en python |
| 22:08 | @gapz | : voila :) |
| 22:08 | @gapz | : Bon, j'espere que tout le monde a compris |
| 22:08 | cyril_ | : heu je connais pas la programmation |
| 22:08 | @gapz | : des questions specifiques sur ARP encore ? ou pas du tout ? |
| 22:08 | illovae_ | : re |
| 22:08 | @gapz | : re illovae_ :) |
| 22:09 | illovae_ | : (merci freebox et vive les déconnexions \o/ |
| 22:09 | illovae_ | : ) |
| 22:09 | @gapz | : :-/ |
| 22:09 | @FiFouille | : illovae_: tu t'es surement fait arpspoofer ;) |
| 22:09 | cyril_ | : une fois que le packet est envoye avec scapy, on ne sait plus le renvoyer ou il est stocker en memoire , ? |
| 22:09 | illovae_ | : FiFouille: haha non, j'aimerai bien mais non :) |
| 22:09 | Kabefis | : et on peut pas se faire passez en B pour A et en A pour B, ils se mettrais plus à jour si? |
| 22:10 | @FiFouille | : Kabefis: si, justement ;) |
| 22:10 | @gapz | : Kabefis: on appel ca une attaque "Homme du milieu" |
| 22:10 | @FiFouille | : Kabefis: intercepter les paquets dans les deux sens |
| 22:10 | @gapz | : Man in the Middle |
| 22:10 | visor | : le cache arp dure combien de temps? |
| 22:10 | Kabefis | : oki |
| 22:10 | @gapz | : visor: ca depend des implementations ;) |
| 22:10 | @gapz | : tout ca pour dire que j'en sais rien :) |
| 22:11 | cyril_ | : heu moi je le perd apres qques minutes |
| 22:11 | clems_Mod_push | : FiFouille: smtp aussi ? |
| 22:11 | @FiFouille | : clems_Mod_push: s'il est pas chiffré, oui |
| 22:11 | clems_Mod_push | : a oui kand meme |
| 22:11 | clems_Mod_push | : lol |
| 22:11 | @gapz | : clems_Mod_push: bah tu peux TOUT chopper quoi |
| 22:11 | @gapz | : du moment que c'est pas chiffré |
| 22:11 | @FiFouille | : sous windows c'est entre 2 et 5 minutes, y'a moyen de s'amuser ;) |
| 22:11 | cyril_ | : qqun a dis que wireshark pouvait fonctionner en mode promiscuous ? |
| 22:12 | @gapz | : bah n'importe quel sniffeur fonctionne comme ca cyril_ |
| 22:12 | cyril_ | : ben j'ai un carte atheros |
| 22:12 | @gapz | : haha |
| 22:12 | clems_Mod_push | : je taf dans les firewall chez fabricant et suis sur ke les signatures ids and co peuvent pas bloquer ca |
| 22:12 | cyril_ | : sous windows je peux |
| 22:12 | @gapz | : merde la fortune quoi |
| 22:12 | @FiFouille | : oui et donc, si vous avez à faire à un neuneu vous pouvez aussi intercepter ce qui est chiffré en émettant un faux certificat, mais c'est encore autre chose ;) |
| 22:12 | cyril_ | : mais sous wireshark il demande de me conncté au point d'aces |
| 22:12 | @gapz | : cyril_: promiscuous c'est un mode de fonctionnement ou tu acceptes tout |
| 22:13 | @gapz | : FiFouille: oui, meme recup des cles prepartagée avec diffie-hellman |
| 22:13 | @gapz | : enfin, il y a matiere a bosser avec MiTM |
| 22:13 | clems_Mod_push | gapz: demain je test ca au taf dans le reseau test te dirait si c'est capte par les IDS et IPS |
| 22:13 | @gapz | : :] |
| 22:13 | clems_Mod_push | : et je pense pas |
| 22:13 | visor | : on peut récuperer des clef wep aussi? |
| 22:13 | @FiFouille | : bon sinon la manière 'simple' de faire le sale script kiddy |
| 22:13 | @gapz | : ce qui est donné ici n'est qu'a titre d'information, et devrait vous servir a mieux comprendre le probleme de la securité |
| 22:14 | clems_Mod_push | : wep meme sans ca c con |
| 22:14 | @FiFouille | : visor: c'est autre chose et on en parlera pas là ;) |
| 22:14 | @gapz | : pas a faire chier la secretaire sous MSN |
| 22:14 | @FiFouille | gapz: mais si, arrete de leur faire peur ;) |
| 22:14 | clems_Mod_push | : fo juste la conne carte wiffi lol |
| 22:14 | @gapz | : FiFouille: :] |
| 22:14 | clems_Mod_push | : bonne |
| 22:14 | @FiFouille | : bion bion |
| 22:14 | @gapz | : bon, FiFouille va vous presenter un truc |
| 22:14 | @FiFouille | : donc, paquet 'dsniff' et 'tcpflow', rien de plus |
| 22:14 | * | gapz va boire |
| 22:15 | @FiFouille | : dans dsniff y'a un programme appelé 'arpspoof' |
| 22:15 | @FiFouille | c'est tout bête, ça fait le boulot de gapz avec scapy, mais en plus simple |
| 22:15 | @FiFouille | : (mais ça sait faire que ça) |
| 22:15 | cyril_ | : wireshark me dis promiscuous mode not supported by the card "any" |
| 22:15 | @gapz | : arp-sk assi |
| 22:15 | cyril_ | : :( |
| 22:15 | @FiFouille | : donc le but comme on l'a dit, c'est de se faire passer pour la passerelle/gateway/routeur ... enfin, comme vous l'appelez |
| 22:15 | visor | : pas trop vite |
| 22:15 | @FiFouille | : et l'intérêt serait aussi de faire transiter l'information comme si de rien n'était |
| 22:15 | visor | : je l'install |
| 22:16 | @FiFouille | : alors en root # echo 1 > /proc/sys/net/ipv4/ip_forward |
| 22:16 | @FiFouille | : y'a aussi un appel à sysctl qui marche bien, mais je m'en souviens jamais |
| 22:16 | @FiFouille | : tout ce que ça va faire c'est activer le forwarding de paquets |
| 22:16 | clems_Mod_push | : tu enable le forward pour ca ? |
| 22:16 | @FiFouille | : histoire qu'un truc qui vous est pas destiné va être transféré à la bonne personne |
| 22:17 | @gapz | : sysctl -w ip_forward |
| 22:17 | @gapz | : =1 |
| 22:17 | @gapz | : au hasard :] |
| 22:17 | @FiFouille | : donc le but, se faire passer pour la passerelle et fournir à la passerelle ensuite |
| 22:17 | @FiFouille | : le message MSN de la secrétaire passe par vous puis va sur internet via le routeur, tout va bien, personne n'a rien remarqué |
| 22:17 | @FiFouille | : mettons que la passerelle soit le 192.168.1.1 et la secrétaire le 192.168.1.100 |
| 22:18 | @FiFouille | : c'est simple, une fois le forward activé |
| 22:18 | @FiFouille | : sudo arpspoof -t 192.168.1.100 192.168.1.1 |
| 22:18 | @FiFouille | : on peut aussi le faire comme un bourrain sans le -t adresse.ki.va.bien |
| 22:18 | @FiFouille | : mais alors on broadcast dans tous les sens, c'est encore moins discret ;) |
| 22:19 | @FiFouille | : à partir de ce moment arpspoof va régulièrement s'annoncer à la machine de la secrétaire en faisant croire qu'on est la passerelle |
| 22:19 | @FiFouille | : voilà, c'est gagné, le trafic passe par nous |
| 22:19 | @FiFouille | : un petit coup de |
| 22:19 | @FiFouille | : sudo tcpflow -c port 1863 and host 192.168.1.100 |
| 22:19 | @FiFouille | : et vous pouvez sortir le popcorn et la bière |
| 22:20 | @FiFouille | : bon, on a que le trafic secréatire → internet |
| 22:20 | cyril_ | : et c pas blocable ce arp ? |
| 22:20 | @FiFouille | : je vous laisse deviner comment faire pour avoir le retour ;) |
| 22:20 | visor | : ça fait quoi la derniere commande |
| 22:20 | @FiFouille | : cyril_: ahh, la bonne question ;) |
| 22:20 | @gapz | : cyril_: c'est necessaire ;) |
| 22:20 | cyril_ | : je veux dire si on fait un subnet avec un range de 1 machine |
| 22:20 | @FiFouille | : visor: ça écoute ce qui passe sur le port 1863 et qui est vers ou depuis 192.168.1.100 |
| 22:20 | @FiFouille | : cyril_: avec des VLAN par exemple ça peut marcher, mais c'est un peu gros comme mise en place |
| 22:20 | @FiFouille | : mais y'a une autre solution |
| 22:20 | cyril_ | : chaque machine serait sur un subnet different ca devrait contrer le arp ? |
| 22:21 | @FiFouille | : si vous êtes un bon paranorak, vous avez simplement édité le fichier /etc/ethers |
| 22:21 | @FiFouille | : et c'est magique |
| 22:21 | _Evil_ | : mais arpspoof fait tout le boulot pour enpoisonner le cache arp de la secrétaire (enfin de son pc) ? |
| 22:21 | @FiFouille | : on peut spécifier en dur MAC IP dans le fichier en question |
| 22:21 | @FiFouille | : et donc les autres peuvent annocer tant qu'ils veulent, vous n'en tennez pas compte ;) |
| 22:21 | clems_Mod_push | : euh comment tu fais pour le retour ? |
| 22:22 | @FiFouille | : _Evil_: oui, il fait les bons paquets ARP et il répète tant qu'il faut |
| 22:22 | illovae | : oui je veux bien aussi pour le retour :) |
| 22:22 | @FiFouille | : clems_Mod_push: la même chose, mais en changeant la commande arpspoof, on inverse target et spoofé ;) |
| 22:22 | cyril_ | : en fesant un masque de sous reseau 255.255.255.128, chaque machine est seule, et ne sais pas communiquer entres elles |
| 22:22 | @FiFouille | : sudo arpspoof -t 192.168.1.1 192.168.1.100 |
| 22:22 | clems_Mod_push | : a ok |
| 22:22 | ::: | |
| 22:22 | ::: | cyril_ was kicked from #ubuntu-fr-classroom by gapz [gapz] |
| 22:22 | @gapz | : un peu de calme |
| 22:22 | * | gapz respire |
| 22:23 | clems_Mod_push | : putain |
| 22:23 | @FiFouille | : bon sinon y'a aussi des IDS qui repèrent ce genre de manoeuvre |
| 22:23 | @FiFouille | : de l'arp qui passe en permanence c'est visible |
| 22:23 | clems_Mod_push | : je confirme |
| 22:23 | @FiFouille | : et normalement ettercap a un plugin pour découvrir ça aussi, il est tout simple et assez efficace |
| 22:23 | @gapz | : clems_Mod_push: quoi ? :P |
| 22:23 | clems_Mod_push | : mais ya d autre soft ki brocast de l arp |
| 22:23 | @gapz | : il y a des outils de detection spécialisé aussi |
| 22:24 | Kabefis | : Mais on peut changer notre adresse mac, on pourra donc toujours se faire passer pour autrui nan? |
| 22:24 | @FiFouille | : enfin bon, le truc qu'il faut retenir |
| 22:24 | @gapz | : clems_Mod_push: bah non, c'est ilogique :) |
| 22:24 | clems_Mod_push | gapz: je confirme mes IDS le detecte |
| 22:24 | @FiFouille | : c'est qu'avec de l'arpspoofing un réseau filié c'est pas bcp mieux qu'un réseau sans fil ou sur un simple hub ;) |
| 22:24 | illovae | : Kabefis: +1 c'est vrai ça non ? |
| 22:24 | illovae | : autant ne pas utiliser sa propre adresse mac alors non ? |
| 22:24 | @FiFouille | : illovae: faudra bien que tu l'annonces à un moment si tu veux communiquer |
| 22:25 | @FiFouille | : et si tout le monde le sait, le méchant script kiddy le sait aussi et on revient au point de départ |
| 22:25 | clems_Mod_push | : mais tu peux la changer |
| 22:25 | clems_Mod_push | : :) |
| 22:25 | illovae | : hum |
| 22:25 | @gapz | : arpwatch permet de detecter l'arp poisoning :) |
| 22:25 | @FiFouille | : oui, mais la changer ne servira à rien |
| 22:25 | @FiFouille | : si au lieu de t'appeler jean pol tu changes en jean pierre |
| 22:26 | @gapz | : clems_Mod_push: tu as quoi comme IDS chez toi ? |
| 22:26 | @FiFouille | : une fois que les gens du café (le réseau) est au courant, c'est foutu |
| 22:26 | clems_Mod_push | : euh je bosses pour un fabricant en secu |
| 22:26 | clems_Mod_push | : je le citerais pas |
| 22:26 | clems_Mod_push | : :) |
| 22:26 | illovae | : FiFouille: ouai... |
| 22:26 | visor | : cisco? |
| 22:26 | Kabefis | : FiFouille, oué mais si tu t'apel jean pol II , tout le monde te respect nan? |
| 22:26 | illovae | : merde des espions sur le chan |
| 22:26 | clems_Mod_push | : a nop :( |
| 22:27 | @FiFouille | : Kabefis: je crois qu'ARP est agnostique |
| 22:27 | clems_Mod_push | : m en fou moi c du firewall ke je fais |
| 22:27 | @gapz | : Bon bon, FiFouille si tu as d'autre chose a dire |
| 22:27 | illovae | : pour les lecteurs des logs : "je ne connais pas ces gens, je hais la constitution et la liberté d'expression, je vous dirais tout ce que vous voulez" |
| 22:27 | Kabefis | : :p |
| 22:27 | * | illovae se met à plat ventre, bras dans le dos |
| 22:27 | @gapz | : On a pas vraiment eu le temps de parler de beaucoup de chose |
| 22:27 | CyD_ | : ben quoi on peut pas poser de question sans etre ban ? |
| 22:27 | @FiFouille | : ah oui, j'ai pas fini ma blague (humà |
| 22:27 | _Evil_ | : au fait, tcpflow on peut l'avoir où ? |
| 22:27 | @gapz | : mais le peux dont on a parler on l'a bien compris |
| 22:27 | @FiFouille | : CyD_: pose une question, on avisera :p |
| 22:28 | @gapz | : FiFouille: non mais je l'ai ban tout a l'heure |
| 22:28 | CyD_ | : ben j'en ai posé une plus tot |
| 22:28 | @gapz | : tu commencais a etre penible CyD_ |
| 22:28 | @FiFouille | gapz: je sais bien |
| 22:28 | @FiFouille | : j'ai vu passer des histoires de subnet, ça m'avait pas l'air opportun sur le moment |
| 22:28 | @FiFouille | : maintenant qu'on a le temps, parlons-en |
| 22:28 | ::: | |
| 22:28 | clems_Mod_push | : cool |
| 22:28 | CyD_ | : ben le cours etais fini donc ou etais le probleme ? |
| 22:28 | @gapz | : et j'avais besoin de ma dose journalière CyD_ |
| 22:29 | visor | : manque plus qu'une vidéo et ça serait top :p |
| 22:29 | @FiFouille | : CyD_: c'est pas parce que je mute pas que c'est fini :p |
| 22:29 | @FiFouille | : oui tiens, sinon y'a un papier là http://vrac.fifi.be/docs/arp_spoofing.pdf |
| 22:29 | @gapz | : Bon FiFouille je te passe le relais si tu veux parler de la couche IP :) |
| 22:29 | @gapz | : moi je fais une petite pause |
| 22:30 | CyD_ | : ben j'avais lu plus haut que cté fini et qu'on pouvais poser des questions |
| 22:30 | @gpocentek | gapz, FiFouille, je propose de garder la couche IP pour une prochaine session éventuellement |
| 22:30 | @FiFouille | gapz: mouarf, merci pour l'impro totale ;) |
| 22:31 | @gapz | : FiFouille: :) |
| 22:31 | @gapz | : FiFouille: bah j'ai impro les 3/4 du cours ou tu as pas vue de c/c :P |
| 22:31 | @FiFouille | gapz: bon en même temps j'aurais su que j'aurais le net ici on aurait pu faire gpg, mais bon |
| 22:31 | @FiFouille | : des questions ou autre chose ? |
| 22:31 | @FiFouille | : tous convaincus que le chiffrement c'est l'avenir ? |
| 22:32 | @gpocentek | : of course \o/ |
| 22:32 | illovae | : bah quand ça sera moins flou pour moi tout ça, je me permettrai je pense |
| 22:32 | clems_Mod_push | : oui |
| 22:32 | @FiFouille | gapz: t'as vu l'intro à gpg ... la classe hein ;) |
| 22:32 | clems_Mod_push | : FiFouille: et les subnet ? |
| 22:32 | clems_Mod_push | : :) |
| 22:32 | CyD_ | : t'ention tu vas etre bn :) |
| 22:32 | @FiFouille | : clems_Mod_push: oui ? |
| 22:32 | @gapz | : d'ailleur, une super doc sur la crypto dans les logiciels libres sera bientot en ligne |
| 22:32 | @gapz | : (dans quelques mois/années/...) |
| 22:32 | @gapz | : FiFouille: ;-) |
| 22:32 | * | gapz spoile |
| 22:32 | @FiFouille | gapz: hahaha, siècles |
| 22:32 | * | gpocentek félicite et remercie gapz pour le cours :) |
| 22:32 | clems_Mod_push | : @FiFouille> maintenant qu'on a le temps, parlons-en |
| 22:33 | ::: | |
| 22:33 | @effraie | : erf |
| 22:33 | @gapz | : FiFouille: bah c'est pas forcement une solution |
| 22:33 | CyD_ | : oaui mais c pê une blague hein |
| 22:33 | @FiFouille | : clems_Mod_push: oui, mais je dois dire quoi à propos des subnets ? |
| 22:33 | ::: | |
| 22:33 | ::: | |
| 22:33 | clems_Mod_push | : ouip c vrai :( |
| 22:33 | @gapz | : clems_Mod_push: arp marche toujours entre le routeur et la machine concerné |
| 22:33 | CyD_ | : ben en subnettant de maniere a séparer chaque machine, en therorie elle ne communiquent pas entre elles |
| 22:33 | clems_Mod_push | : il a etait mis a jour |
| 22:33 | @gapz | : certe, ca reduit de beaucoup le risque de spoofing |
| 22:34 | clems_Mod_push | : mais je test le client firewall du coloc la |
| 22:34 | @gapz | : mais la mise en place d'un tel reseau est ultra merdique |
| 22:34 | clems_Mod_push | : ya un ids |
| 22:34 | @FiFouille | : CyD_: faut séparer à la couche 2 |
| 22:34 | @FiFouille | : CyD_: donc des VLANs ou un routeur par machine |
| 22:34 | @gapz | : des VLANs serait une solution |
| 22:34 | @gapz | : FiFouille: :) |
| 22:34 | clems_Mod_push | : Vlan c bien mais amettre en place :( |
| 22:34 | CyD_ | : je demande car les hotspot ici sont comme ca |
| 22:34 | @gapz | : mais bon, des vlans pour empecher l'admin reseau de savoir qu'elle trompe son maris |
| 22:34 | CyD_ | : on sais tout sniffé en promisc |
| 22:34 | @gapz | : marie* |
| 22:35 | @gapz | : c'est pas vraiment utile |
| 22:35 | CyD_ | : mais pas communiquer en samba ou ping ou autre |
| 22:35 | @FiFouille | : CyD_: si t'as du wifi, forcément |
| 22:35 | illovae | : CyD_: on sais tout sniffé en promisc >> haha |
| 22:35 | CyD_ | : je sais bien |
| 22:35 | @FiFouille | : mais pareil |
| 22:35 | CyD_ | : mais je me demande si on sais faire qque chose avec arp dans ces conditions la |
| 22:35 | @FiFouille | : tu peux avoir 5 réseaux différents sur un même médium physique (switché par exemple) |
| 22:36 | @FiFouille | : vu qu'on parle de la couche 2 on s'en -- --tape de savoir de quel réseau tu fais partie, tu moments que tu -- --peux broadcaster ton ARP |