Nous avons eu besoin de forger et d'injecter nos paquets dans divers exercices, du rétablissement des caches ARP aux scans en passant par la
fragmentation multiple d'un paquet ICMP afin de causer un Ping de la Mort. Forger un paquet en utilisant directement les structures des paquets définis dans les
headers tels linux/tcp.h, linux/udp.h, linux/icmp.h, linux/ip.h, etc... est chose possible mais il existe des librairies qui facilitent la tâche et permettent
l'ajout automatique de certaines couches ou la vérification d'intégrite des adresses. La plus connue et la plus efficace d'entre elles est la librairie d'interfacage
réseau bas niveau libnet (open source, populaire, simple d'utilisation, robuste et portable). Nous allons donc dans cette partie expliquer comment forger et injecter simplement un paquet grâce à libnet. Une lecture préalable des
courts articles sur le modele OSI est nécessaire aux néophytes de l'architecture réseau.
Dans un premier temps, nous allons expliquer la démarche de création d'un paquet libnet avec notre fonction d'injection TCP qui permet d'étudier tout le processus
avec la création des headers ethernet, ip et tcp. Nous montrerons ensuite nos fonctions d'injection ARP et d'injection ICMP qui suivent le même modèle, donc que
nous ne commenterons pas en détail.
Avoir à sa disposition un outil efficace d'injection sur réseau est une chose essentielle pour être capable d'effectuer l'audit d'un réseau, de vérifier
que tout fonctionne normalement ou de tester certaines attaques. Des utilitaires très au point (tels Nemesis, utilisant libnet) existent et sont disponibles en
open source ; il est donc très intéressant de les étudier pour comprendre tous les recoins de la forge et de l'injection de paquet.