Skip to Content

Jouons avec ARP

Introduction aux couches réseaux

Pour comprendre ce qu’est ARP [1], 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 ...

Puis il faut un réseau. Aujourd’hui les réseau ethernet [2] sont majoritaires mais il reste encore d’autre type comme le token ring [3].

Une des caractéristiques du réseau ethernet, c’est qu’il est nécessaire d’avoir l’adresse MAC [4] unique de la carte réseau de l’expéditeur (notre machine) et l’adresse MAC du destinataire pour pouvoir faire circuler un paquet.

Par dessus nous avons souvent le protocole IPv4 [5] (IP version 4). Cette fois-ci c’est l’adresse IP qui est nécessaire.


schéma du réseau

ARP sous GNU

Dans la suite nous utiliseront deux machines (il est obligatoire d’avoir deux machines) :

la première machine :

  •  ip : 192.168.12.1
  •  mac : 00:10:AA:1B:CB:AA

    la deuxième machine :

  •  ip : 192.168.12.2
  •  mac : 00:06:25:AA:57:3A

    Nous sommes sur la deuxième machine.

    Commencons par regarder le cache de la table ARP :

    # arp -a
    #

    Ici nous voyons que notre cache est vide.

    Lancons une requête ARP et voyons le resultat dans notre cache :

    # arping 192.168.12.1
    [...]
    # arp -a
    ? (192.168.12.1) at 00:06:25:EA:57:36 [ether] on wlan0

    (ceci ne semble pas fonctionner avec toutes les versions d’arping).

    La mystification ARP

    La mystification ARP consiste à tromper le système cible en donnant un adresse MAC erronné.

    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).

    Sur la première machine faire :

    # arping 192.168.12.3

    Sur la deuxième machine faire :

    # ./send_arp 192.168.12.3 00:09:5B:B2:2D:78 192.168.12.2 00:10:A7:1B:CB:AD.

    Si vous regardez votre cache ARP, vous verrez la machine apparaitre.

    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).

    C source - 3.6 ko
    send_arp.c
    Petit outil pour mystifier une adresse ARP
  • Fichier attachéTaille
    send_arp.c3.63 Ko
    schéma du réseau8.74 Ko

    Commentaires

    > Jouons avec ARP

    Salut Marc,

    Problème corrigé

    Merci de continuer à suivre notre train train... :-)

    > Jouons avec ARP

    Article vraiment interressant mais les notes de pieds de pages n’apparaîssent pas !
    Il serait avantageux de les avoir !
    ^_^

    — 
    Celui mange de la Cow à GUL en bord de mer.

    > Jouons avec ARP

    "avec la commande arping, la nouvelle adresse, n’a pas été ajouté à la table arp, mais avec une commande ping, ça a fonctionné ?"

    Ah ? bizarre ...

    Chez moi ca marche :

    [root@localhost root]# arp -a
     ? (192.168.0.1) at 00:06:25:EA:57:36 [ether] on wlan0
    [root@localhost root]# arping 192.168.0.2
    Interface "eth0" is down
    [root@localhost root]# arping 192.168.0.2 -I wlan0
    ARPING 192.168.0.2 from 192.168.0.25 wlan0
    Unicast reply from 192.168.0.2 [00:10:A7:1B:CB:AD] 6.081ms
    Unicast reply from 192.168.0.2 [00:10:A7:1B:CB:AD] 3.173ms
    Unicast reply from 192.168.0.2 [00:10:A7:1B:CB:AD] 3.165ms
    Sent 3 probes (1 broadcast(s))
    Received 3 response(s)
    [root@localhost root]# arp -a
     ? (192.168.0.2) at 00:10:A7:1B:CB:AD [ether] on wlan0
     ? (192.168.0.1) at 00:06:25:EA:57:36 [ether] on wlan0
    [root@localhost root]#

    > Jouons avec ARP

    Quelques remarques :

  •  Le paquet arping, n’était pas installé par défaut sur ma Debian (apt-get install arping)
  •  avec la commande arping, la nouvelle adresse, n’a pas été ajouté à la table arp, mais avec une commande ping, ça a fonctionné ?
    Autrement, je crois que les notes de bas de page, ne fonctionnent pas avec le squelette actuel de Spip, mais je regarderai pour régler ce problème.

    Merci pour ton article.

  • > Jouons avec ARP

    je te propose un petit correctif :

    "Cela peut être par un câble, par des ondes magnétiques ..."

    Attention, tu risque de faire hurler les connaisseurs ! Ce ne sont pas des ondes magnétiques mais électro-magnétiques. Les vrais ondes magnétiques ont une portée très faible alors que la portée des ondes électro-magnétique et quasiment infinie (exemple : la lumière)

    "Une des caractéristiques du réseau ethernet, c’est qu’il est nécessaire d’avoir l’adresse MAC [4] de l’expéditeur"

    tu pourrais peut-être préciser l’"adresse MAC de la carte réseau de l’xpéditeur"

    je pense que ça serait plus clair pour les débutants.

    Faute d’accord :
    "mystification ARP consiste à trompé le système cible"

    correction : tromper

    voilà. pour loi, c’est tout. et encore bravo pour cette intervention que j’ai trouvé très interressante !