<p class="spip"><strong class="spip"> <i class="spip">Introduction aux couches réseaux</i> </strong></p>

<p class="spip">Pour comprendre ce qu’est ARP [<a href="#nb1" name="nh1" id="nh1" class="spip_note" title='[1] http://fr.wikipedia.org/wiki/ARP' >1</a>], il faut comprendre un minimum le transport de paquet sur le réseau.
Pour qu’un paquet circule il faut déjà un matériel. Le matériel se charge du transport physique des paquets. Cela peut être par un câble, par des ondes électro-magnétiques ...</p>

<p class="spip">Puis il faut un réseau. Aujourd’hui les réseau ethernet [<a href="#nb2" name="nh2" id="nh2" class="spip_note" title='[2] http://fr.wikipedia.org/wiki/Ethernet' >2</a>] sont majoritaires mais il reste encore d’autre type comme le token ring [<a href="#nb3" name="nh3" id="nh3" class="spip_note" title='[3] http://fr.wikipedia.org/wiki/Token_Ring' >3</a>].</p>

<p class="spip">Une des caractéristiques du réseau ethernet, c’est qu’il est nécessaire d’avoir l’adresse MAC [<a href="#nb4" name="nh4" id="nh4" class="spip_note" title='[4] http://fr.wikipedia.org/wiki/Adresse_MAC' >4</a>]  unique de la carte réseau de l’expéditeur (notre machine) et l’adresse MAC du destinataire pour pouvoir faire circuler un paquet.</p>

<p class="spip">Par dessus nous avons souvent le protocole IPv4 [<a href="#nb5" name="nh5" id="nh5" class="spip_note" title='[5] http://fr.wikipedia.org/wiki/IPv4' >5</a>] (IP version 4). Cette fois-ci c’est l’adresse IP qui est nécessaire.</p>

<p class="spip"><span class='spip_document_102 spip_documents spip_documents_center' >
<img src='http://download.tuxfamily.org/assocoagul/drupal-files/spip/reseau.png' width="458" height="155" alt="schéma du réseau" title="schéma du réseau" /></span><p>

<p class="spip"><strong class="spip"> <i class="spip">ARP sous GNU</i> </strong></p>

<p class="spip">Dans la suite nous utiliseront deux machines (il est obligatoire d’avoir deux machines) :</p>

<p class="spip">la première machine :
<br /></p>
<li> ip : 192.168.12.1
<br /><li> mac : 00:10:AA:1B:CB:AA
<p class="spip">la deuxième machine :
<br /></p>
<li> ip : 192.168.12.2
<br /><li> mac : 00:06:25:AA:57:3A
<p class="spip">Nous sommes sur la deuxième machine.</p>

<p class="spip">Commencons par regarder le cache de la table ARP :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># arp -a<br />
#</code></div>
<p class="spip">Ici nous voyons que notre cache est vide.</p>

<p class="spip">Lancons une requête ARP et voyons le resultat dans notre cache :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># arping 192.168.12.1<br />
[...]<br />
# arp -a<br />
? (192.168.12.1) at 00:06:25:EA:57:36 [ether] on wlan0<br />
</code></div>
<p class="spip">(ceci ne semble pas fonctionner avec toutes les versions d’arping).</p>

<p class="spip"><strong class="spip"> <i class="spip">La mystification ARP</i> </strong></p>

<p class="spip">La mystification ARP consiste à tromper le système cible en donnant un adresse MAC erronné.</p>

<p class="spip">Pour cela nous allons utiliser le petit logiciel send_arp.c attaché au document (pour compiler, il suffit de faire : gcc send_arp.c -o send_arp).</p>

<p class="spip">Sur la première machine faire :</p>

<p class="spip"><code class='spip_code' dir='ltr'># arping 192.168.12.3</code></p>

<p class="spip">Sur la deuxième machine faire :</p>

<p class="spip"><code class='spip_code' dir='ltr'># ./send_arp 192.168.12.3 00:09:5B:B2:2D:78 192.168.12.2 00:10:A7:1B:CB:AD</code>.</p>

<p class="spip">Si vous regardez votre cache ARP, vous verrez la machine apparaitre.</p>

<p class="spip">Il est à noté que si la machine cible est sur un autre réseau, l’adresse MAC sera celle de la route par défaut (voir route -n).</p>

<dl class='spip_document_100 spip_documents spip_documents_center' >
<dt><a href="http://download.tuxfamily.org/assocoagul/drupal-files/spip/send_arp.c" title='C source - 3.6 ko' type="text/x-csrc"><img src='dist/vignettes/c.png' width='52' height='52' alt='C source - 3.6 ko' /></a><dt>
<dt class='spip_doc_titre' style='width:120px;'><strong>send_arp.c</strong></dt>
<dd class='spip_doc_descriptif' style='width:120px;'>Petit outil pour mystifier une adresse ARP</dd>
</dl>