10/28/2006

Les Canaux cachés de la couche Transport

TCP

Le protocole de contrôle de Transmission ou TCP est un protocole de la couche de transport utilisé pour une transmission fiable des données. C'est évidemment un medium de choix pour les canaux cachés. L'en-tête d'un paquet TCP, comme indiqué dans la RFC 793, est décrit sur le schéma suivant:


Comment le protocole est-il détourné?

Le numéro de séquence, codé sur 32 bits, est normalement employé comme numéro d'identification pour réorganiser les paquets au niveau du récepteur lorsque ces derniers arrivent dans le désordre. Il permet et facilite les demandes de retransmission de paquet. Le premier paquet d'une session de TCP (un paquet de type SYN) contient un nombre d'ordre initial aléatoire, ISN. Le destinataire répond typiquement avec un paquet de type SYN/ACK, et en utilisant ISN+1. L' ISN doit être pris de manière aléatoire, cependant, ce champ peut également contenir une valeur non-aléatoire sans perturber le mécanisme de TCP. Il devient donc possible de cacher jusqu'à 32 bits des données dans ce champ et de les envoyer à n'importe quel autre système sur le réseau.

Le champ des options peut lui aussi être employé pour la transmission de données entre l'émetteur et le récepteur.

Logiciels pouvant être utilisés:

Le logiciel covert_tcp pourra être utilisé avec l’option TCP.



ICMP

Le protocole ICMP (Internet Control Message Protocol) est utilisé pour diffuser les informations, les erreurs et les messages de test liés à l’état du réseau. C'est un protocole essentiel pour diagnostiquer l'état du réseau, il n'est donc que très rarement filtré. L'entête d'un paquet ICMP est de la forme:

+

Bits 0-7

8 – 15

16 - 31

0

Type

Code

Checksum

32

Identifier

Sequence Number

64

DATA

Figure 5: Format d'un paquet ICMP

Comment le protocole est-il détourné?

Le Ping Tunnel est une application qui permet d'établir une connexion TCP vers un serveur à distance en utilisant le protocole ICMP. Montrons la puissance de cet outil : considérons que vous essayez de vous connecter dans un Hotspot, le réseau vous donne une adresse IP, mais ne vous laisse pas envoyer des paquets TCP ou UDP vers l'extérieur. Cependant le réseau vous permet de pinguer n’importe quel ordinateur de l’Internet. Il est possible de faire circuler de l'information dans le bloc data, sans que celle-ci soit vérifiée.

Logiciels pouvant être utilisés:

Les logiciels comme ptunnel et icmptx sont basés sur des paquets ICMP de type 8 (echo-request) et 0 (echo-reply). Le logiciel skeeve change le champ protocole de l'entête IP et met à 1 pour les faire ressembler à un paquet ICMP bien que ce dernier soit un paquet TCP.

Figure 6: Principe de fonctionnement



Il existe d’autres outils plus spécifiques, tels ICMP Shell1 qui permet de gérer une station linux en utilisant le protocole ICMP.


Aucun commentaire:

Enregistrer un commentaire