Utilisation de Tap / Tun pour intercepter les paquets au niveau IP

0

Je travaille sur un projet de recherche impliquant une intoxication par ARP.

Je voudrais intercepter les paquets sur le niveau IP. Si ma machine reçoit un paquet avec une adresse IP non destinée à sa propre adresse IP, je voudrais que ce paquet soit envoyé à un programme d’espace utilisateur.

Je pensais que cela pourrait être accompli en utilisant une interface TUN / TAP. Donc, si mon interface matérielle avait l'adresse IP 192.168.1.3 et mon TUN, l'adresse IP 192.168.1.4, l'interface matérielle pouvait alors être configurée pour transférer tous les paquets destinés à 192.168.1.4 au TUN, puis les transmettre à l'espace utilisateur. programme.

Les paquets entrants seront toujours destinés à mon interface matérielle en raison d'une intoxication par ARP et auront l'adresse IP de mon TUN. Les appareils seront connectés sur le même réseau par un commutateur Ethernet ou WiFi.

Est-ce une approche viable? Y a-t-il un moyen plus facile / meilleur d'y parvenir?

Conor Patrick
la source
Vous n'avez pas beaucoup parlé de la topographie de votre réseau. Les deux appareils sont-ils connectés via un commutateur réseau? En outre, savez-vous que votre carte réseau ignore normalement tout trafic de couche 2 non adressé à son adresse MAC? (peut être obtenu en mettant la carte réseau en mode Promiscuous). Le problème avec ce que vous suggérez est que même avec le mode promiscuous activé, toute machine qui essaie d'envoyer du trafic directement à 192.168.1.4 échouera probablement lors d'une recherche ARP.
smashingly
PS: J'ai modifié votre message pour inclure d'autres balises liées à Unix, car il s'agit davantage d'un problème de programmation sous OS.
smashingly
Utilisation libpcap. Nécessite la racine, cependant, et est critique pour la sécurité.
Daniel B
Le bingo, c'est celui auquel je pensais! Merci @ DanielB.
smashingly
J'ai mis à jour mon message pour refléter l'empoisonnement ARP et la topologie du réseau.
Conor Patrick