[Table des matières] - [précédent] - [suivant]


Titre : Déterminer les hôtes présents sur un réseau local grâce à ARP
Option : -
Paquets utiles : -


Cette commande interne à Scapy permet d'interroger les hôtes présents sur un réseau à l'aide du protocole ARP. Commençons par interroger les options et le fonctionnement de la commande :

>>> lsc(arping)
Send ARP who-has requests to determine which hosts are up
arping(net, iface=conf.iface) -> None

La commande prend en entrée le réseau que l'on souhaite scanner, ainsi que l'interface à utiliser, si l'ordinateur sur lequel vous vous trouvez en possède plusieurs.

Pour comprendre un peu plus précisément le fonctionnement d'arping, penchons-nous une fois de plus dans le code de scapy :

    ans,unans = srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=net),
                    filter="arp and arp[7] = 2", timeout=timeout, iface_hint=net, **kargs)
    ans = ARPingResult(ans.res)
    ans.display()

On envoie des paquets en utilisant le niveau 2 par la commande srp. Cette requête est à destination de l'adresse de diffusion du réseau (ff:ff:ff:ff:ff:ff), selon le réseau IP passé en paramètre (pdst), avec un filtre de type  BPF sur le protocole ARP. Il est également possible de configurer le timeout et bien sûr l'interface comme nous l'avons vu précédemment.

Faisons un essai sur le réseau local :

>>> arping("172.30.127.0/25")
Begin emission:
***************************************************Finished to send 128 packets.
**
Received 53 packets, got 53 answers, remaining 75 packets
00:a0:8e:32:18:fc 172.30.127.1
00:12:3f:77:74:87 172.30.127.3
00:12:3f:7a:4d:d0 172.30.127.4
00:30:05:55:4c:5f 172.30.127.5
00:12:3f:7a:4f:8c 172.30.127.6
00:12:3f:7c:4b:11 172.30.127.8
00:13:72:10:98:1b 172.30.127.13
00:12:3f:77:75:8d 172.30.127.14
00:14:4f:0f:97:0d 172.30.127.15
00:12:3f:7a:38:f1 172.30.127.17
00:12:3f:7b:da:9d 172.30.127.19
00:12:3f:7c:50:dc 172.30.127.20
00:12:3f:7a:4d:c5 172.30.127.21
00:13:72:21:db:7b 172.30.127.26
00:12:3f:7a:4d:52 172.30.127.28
00:30:6e:b6:58:2f 172.30.127.29
00:1d:09:1c:f3:34 172.30.127.32
00:12:3f:7a:4f:72 172.30.127.33
00:12:3f:77:76:c6 172.30.127.34
00:13:72:28:40:93 172.30.127.37
00:0c:29:bd:8c:7c 172.30.127.38
00:13:72:28:43:05 172.30.127.39
00:13:72:27:22:ce 172.30.127.44
00:13:72:2b:2e:7d 172.30.127.45
00:13:72:27:24:c5 172.30.127.47
00:d0:68:01:80:f2 172.30.127.48
00:12:3f:76:e1:d0 172.30.127.49
00:12:3f:7a:4d:08 172.30.127.50
00:12:3f:77:73:60 172.30.127.51
00:1a:a0:0f:96:f9 172.30.127.53
00:13:72:27:24:76 172.30.127.54
00:13:72:27:23:d7 172.30.127.55
00:13:72:27:24:ac 172.30.127.56
00:02:b3:14:cf:15 172.30.127.69
08:00:20:fd:84:1a 172.30.127.70
00:02:b3:96:ca:79 172.30.127.71
00:13:72:2b:2d:cf 172.30.127.72
00:12:3f:77:d3:14 172.30.127.73
00:13:72:34:e8:33 172.30.127.76
00:13:72:34:f7:e0 172.30.127.77
00:0c:29:75:8e:f7 172.30.127.79
00:03:ba:18:12:ca 172.30.127.83
00:1a:a0:06:e5:bc 172.30.127.84
00:1a:a0:0f:98:2e 172.30.127.92
00:15:62:6c:fa:c0 172.30.127.100
00:04:23:2c:71:92 172.30.127.103
00:1a:a0:2c:f8:2b 172.30.127.105
00:1a:a0:2c:f8:7b 172.30.127.110
00:1a:a0:2f:2c:f5 172.30.127.111
00:1d:09:1d:3a:b1 172.30.127.115
00:1d:09:1d:07:af 172.30.127.117
00:0d:60:d2:81:e4 172.30.127.120
00:01:f4:1a:29:f9 172.30.127.125
(<ARPing: UDP:0 ICMP:0 TCP:0 Other:53>, <Unanswered: UDP:0 ICMP:0 TCP:0 Other:75>)

La pêche a été fructueuse, on peut déterminer le nombre de postes actifs sur le sous-réseau (53).