TCP est un protocole de la couche transport de la pile TCP/IP au même
titre que le protocole UDP. La principale différence avec UDP est sa fonctionnalité
d'acquittement assurant la fiabilité de la remise des paquets. En outre, TCP est
orienté connexion (avant tout transfert de données il y a une phase préalable de
connexion appelée le Three Way Handshake). Quand une connexion est établie entre
deux machines (entre deux processus plus précisement), TCP possède des mécanismes
pouvant la fermer. Il en existe deux, un mécanisme de fermeture classique
(utilisant le flag TCP FIN) et un autre utilisé lors d'une erreur ou d'une interruption
anormale d'un des processus. C'est ce deuxième mécanisme qui est employé par WinTCPKill.
Pour cela des paquets TCP RST sont forgés.
La RFC 793 concernant TCP dit qu'un paquet RST est valide si son numéro de séquence
TCP se trouve dans la fenêtre TCP. Le numéro de séquence TCP est un champs de l'entête
TCP permettant de numéroter chaque octet de données. La fiabilité de TCP repose sur
un acquittement de ces octets via des paquets TCP ACK dans lequel un numéro d'acquittement,
basé sur le numéro de séquence du paquet qu'il acquitte, se trouve. La fenêtre spécifie
le nombre d'octets que le récepteur est en mesure d'accepter. En conclusion, le numéro de
séquence du paquet TCP RST doit se situer entre le numéro d'acquittement du dernier paquet TCP ACK
et ce même numéro plus la taille de la fenêtre.
Cet outil n'est utilisable que dans le contexte d'un réseau local. En effet, il est
obligatoire de pouvoir sniffer les paquets TCP et ainsi récupérer leur numéro de séquence.
L'idéal est de rediriger le trafic de la machine cible au préalable. Pour cela, une attaque
de type ARP Cache Poisoning est le plus efficace (des outils sont disponibles sur
www.arp-sk.org). Il est alors possible de sniffer
le trafic même dans le cas d'un réseau switché.
Exemple de mise en oeuvre
Comme cela a été dit auparavant, le trafic entre la cible et le serveur impliqué
dans la connexion (ou la passerelle dans le cas où celui-ci n'est pas sur le même réseau)
est redirigé afin de passer par la machine pirate. Sous Windows un outil comme winarp_mim est
parfaitement adapté. La machine du pirate doit faire du routage pour que le trafic
puisse normalement circuler, Winroute Pro remplie très bien cette fonction. A noter
que dans le cas de Windows 2000 il est possible d'utiliser le routage natif du système.
Pour Windows 9x, il est préférable d'utiliser un routage logiciel tiers au vu de la
faiblesse de son implémentation.
Il reste à exécuter WinTCPKill avec les options adéquates.
>> WinTCPKill by Valgasu (valgasu@securiteinfo.com) <<
usage: wtk [options]
options:
-p [port] tcp port to kill
-i [ip] ip source address target
-v verbose
-h help
Exemple :
wtk -p 80 -i 123.123.123.123
Dans ce cas, toutes les connexions TCP à destination du port 80 et provenant de la
machine ayant l'adresse IP 123.123.123.123 sont réinitialisées.
La victime se retrouve dans l'impossibilité d'accéder à un serveur Web.
Téléchargement
ATTENTION ! L'utilisation d'un tel outil sans autorisation du propriétaire du réseau est illégale.
A utiliser uniquement lors d'un audit de son propre réseau.
Télécharger l'exécutable de WinTCPKill pour Windows.
L'installation de WinPcap est indispensable à l'utilisation de cet outil. Il est disponible sur le site
http://winpcap.polito.it