IP Spoofing
I°) TCP/IP Hijacking
Afin de réussir un spoof d'IP, il est nécessaire de maîtriser au moins une technique de TCP/IP
Hijacking, de façon à désynchroniser l'état distant de la connexion entre deux systèmes. L'idée est
de modifier leurs numéros de séquence respectifs à l'insu de l'autre. Ainsi, la connexion demeurera active, sans
qu'aucun paquet ne puisse transiter (puisque toute tentative de transit sera ignorée du fait du changement des numéros
de séquence qui leur sont inconnus). Nous allons ici étudier une forme très simple de Détournement TCP/IP : le RST Hijacking.
Bien sûr, il vous est très fortement conseillé d'avoir lu les parties précédentes (notamment
la couche de transport pour comprendre entièrement ce qui va suivre.
RST Hijacking
Le principe de RST Hijacking est très simple, il consiste en l'injection d'un paquet RST spoofé
de la machine trompée B à la victime A. Ainsi, la victime pense que B lui a envoyé un paquet de réinitialisation de la
connexion, ce qu'il va faire. Une connexion réinitialisée n'est pas pour autant inactive. Ainsi, pour B, la connexion
est toujours dans un état normal et pour A, la connexion a été réinitialisée, modifiant entre autre le numéro de reconnaissance
de B. Ce principe est simple à mettre en oeuvre. D'ailleurs, c'est la méthode utilisée dans le fameux firewall chinois,
c'est-à-dire que si un pc essaie de contacter un site sur blacklist par exemple, des faux paquets RST sont envoyés et la connexion
est réinitialisée. Cette technique a deux pendants : immédiatement, on pense à la possibilité de DoS dans l'éventualité
où l'on RST toute connexion sniffée (a plus d'utilité dans un réseau type hub), ou l'utilisation que nous avons décrite
por l'IP Spoofing.
Nous prenons l'hypothèse la plus plausible, à savoir que nous nous trouvons dans un réseau switché. Tout d'abord, il nous faut, à l'aide
d'une technique similaire à celle de la rubrique précédente, sniffer un échange entre les deux systèmes. A l'aide d'un
seul paquet, on est capable de connaître les numéros de séquence des deux côtés. La connaissance de ces nombres nous
permet d'envoyer un paquet RST à A. A recevant un paquet RST, il réinitialise la connexion et incrémente le numéro ACK. On
peut couper l'empoisonnement ARP de A pour éviter toute détection et faire revenir son cache ARP à la normale : de
toute façon, tout paquet qu'il enverra sera ignoré si nous envoyons un paquet à B avant lui. Il ne nous reste
plus qu'à envoyer des paquets spoofés de A à B, ce dernier croyant à un dialogue de A, il renverra les paquets à A,
qui pour lui se trouve à notre MAC. Le détournement et le spoof sont réussis. Cette technique est particulièrement
intéressantes pour toutes les connexions à identification unique (typiquement quand on saisi un mot de passe au début
de la connexion, ce qui représente une bonne partie des connexions existantes).
La théorie ne paraît finalement pas si compliquée qu'on veut le faire croire quand on parle des mystiques IP Spoofing,
ou la "technique du siècle" utilisée par Kevin Mitnick sur le réseau personnel de Tsutomu Shimomura. Non, cette
technique est de base assez simple. Par contre, le détournement TCP/IP peut considérablement se compliquer selon
les protections offertes par le réseau. Dans la rubrique suivante, nous allons illustrer une attaque de type IP Spoofing
du début à la fin, en utilisant l'ARP Poisoning, le RST Hijacking pour takeover (littéralement "racheter") la connexion et ainsi
continuer un dialogue de la victime vers la machine trompée comme si de rien n'était.