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:
(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.
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.
Description de l'attaque en elle meme:
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 A <------SEQ: 0X16----ACK/PSH: 0X1A--(0)---- B Etape 4 Wk ------SEQ: 0X1A---ACK/PSH: 0X16--(5)-----> B Etape 5 Blurp A <-----SEQ: 0X1B----ACK/PSH: 0X1A (3)------ B Etape 6 Wk -----SEQ: 0X1A ----ACK/PSH: 0X1E (12)----> B Etape 7 [......] Note:La machine Wk fait de l'ecoute passive sur le reseau et usurpe l'identite de la machine A. Nous supposons que la phase de synchronisation est passee. Schema C.
Contre:
Le seul contre possible consisterais a crypter toute la
couche TCP.
Je ne peut en aucun cas etre tenu responsable de l utilisation que vous ferez
de ces informations.
Code source d'exemple:
wkhijack
Auteur:
Patrice SALNOT
-------------
infosec.bsdfr.org
$INFOSEC: hijack.html
1999/30/11 23:00:35(GMT+1)
patrice.salnot@bsdfr.org