Ip Hijacking


Présentation:

Nous allons montrer au travers d un exemple une faiblesse de TCP/IP. Le but est de désynchroniser une connection utilisant le protocole TCP et de la reprendre à son compte. Pour ce faire il faut qu'une des deux stations dialoguant sois sur le meme sous réseau que la machine attaquante.
(ou que ses paquets soient routes par votre sous réseau, les routeurs ont parfois des problémes avec leur table de routages ;) ).
Note:
la machine attaquante est la station qui va provoquer la désynchronisation.
Préambule:
Il est nécessaire de parfaitement maitriser le protocole TCP/IP pour comprendre cette méthode(notemment l'evolution des numéros de séquences au cours du temps).

Rappel:
a.Méthode de synchronisation d'une connection

(Three Way Handshake).

		A ------SYN: Ox0F-(0)-------------------> B  Phase 1 
		
		A <------SYN: 0x0A---ACK: 0X0F---(0) --- B  Phase 2 				       

		A  ------ACK: OXOA--(0)----------------->B Phase 3 
		   
			Schema A.


		Note: A Machine cliente faisant la demande de synchronisation.	

		      B Machine Serveur , répondant a la demande de
		      synchronisation de A.

La machine A initialise une connection avec la machine B. C'est la phase 1, elle envoie son numéro de séquence initiale(NSI) a la machine B en activant le flag SYN(valeur hexa 0X02) et 0 octets de datas. La machine B réceptionne ce paquet et l'accepte. Ceci est confirmé par la phase 2.
En phase 2 la machine B acknowledge le paquet reçu en phase 1(elle a active son flag ACK(valeur hexa 0X10) et le numero de sequence associe a l'ACK correspond a celui envoye par la machine A en phase 1). La machine B transmet également son NSI lors de cette phase.
En phase 3 La machine A acknowledge le paquet envoyé en phase 2 par la machine B. A l'issu de ces trois phases les deux machines ont synchronisés leur numéros de séquences et peuven initialiser une communication en TCP.

b.Evolution des numeros de séquences dans le temps.

		A --------SEQ: 0X01--ACK/PSH: 0X02---(10)----> B Etape 1

		A <-------SEQ: 0X02--ACK/PSH: OXOB--(20)-----  B Etape 2

		A --------SEQ: 0X0B--ACK/PSH: OX16--(15)-----> B Etape 3

		Etc ...

		    Schema B.
		    Note: Nous supposons que la phase de synchronisation
		    est passée, les stations A et B se transmettent des datas.

Nous remarquons un nouveau type de flag le flag PSH(Push, valeur hexa 0X08), il signifie que les datas doivent etre remontés a la couche applicative.