Une introduction à la communication réseau

Nous avons toujours entendu dire que pour effectuer des tests de pénétration, un pentester doit être conscient des concepts de réseau de base tels que les adresses IP, le sous-réseau de classe, le sous-réseau sans classe, les ports et les réseaux de diffusion. La toute première raison est que les activités telles que quels hôtes sont actifs dans le périmètre approuvé et quels services, ports et fonctionnalités ils ont ouverts et réactifs détermineront le type d'activités qu'un évaluateur va effectuer dans les tests d'intrusion. L'environnement ne cesse de changer et les systèmes sont souvent réaffectés. Par conséquent, il est fort possible que d'anciennes vulnérabilités réapparaissent et sans une bonne connaissance de l'analyse d'un réseau, il peut arriver que les analyses initiales doivent être refaites. Dans nos sections suivantes, nous aborderons les bases de la communication réseau.

Modèle de référence

Le modèle de référence offre un moyen de normalisation, qui est acceptable dans le monde entier car les personnes utilisant le réseau informatique sont situées sur une large plage physique et leurs périphériques réseau peuvent avoir une architecture hétérogène. Afin de fournir une communication entre des appareils hétérogènes, nous avons besoin d'un modèle standardisé, c'est-à-dire d'un modèle de référence, qui nous fournirait un moyen pour ces appareils de communiquer.

Nous avons deux modèles de référence tels que le modèle OSI et le modèle de référence TCP / IP. Cependant, le modèle OSI est un modèle hypothétique mais le TCP / IP est un modèle pratique.

Modèle OSI

L'interface du système ouvert a été conçue par l'Organisation internationale de normalisation (ISO) et, par conséquent, elle est également appelée modèle ISO-OSI.

Le modèle OSI se compose de sept couches, comme illustré dans le diagramme suivant. Chaque couche a une fonction spécifique, mais chaque couche fournit des services à la couche ci-dessus.

Couche physique

La couche physique est responsable des activités suivantes -

  • Activer, maintenir et désactiver la connexion physique.

  • Définition des tensions et des débits de données nécessaires à la transmission.

  • Conversion de bits numériques en signal électrique.

  • Décider si la connexion est simplex, half-duplex ou full-duplex.

Couche de liaison de données

La couche liaison de données remplit les fonctions suivantes -

  • Effectue la synchronisation et le contrôle des erreurs pour les informations à transmettre sur la liaison physique.

  • Active la détection d'erreur et ajoute des bits de détection d'erreur aux données à transmettre.

Couche réseau

La couche réseau remplit les fonctions suivantes -

  • Pour acheminer les signaux à travers différents canaux vers l'autre extrémité.

  • Agir en tant que contrôleur de réseau en décidant quelle route les données doivent prendre.

  • Diviser les messages sortants en paquets et assembler les paquets entrants en messages pour des niveaux plus élevés.

Couche de transport

La couche Transport remplit les fonctions suivantes -

  • Il décide si la transmission de données doit avoir lieu sur des chemins parallèles ou sur un seul chemin.

  • Il effectue le multiplexage, le fractionnement des données.

  • Il divise les groupes de données en unités plus petites afin qu'ils soient traités plus efficacement par la couche réseau.

La couche de transport garantit la transmission des données d'un bout à l'autre.

Couche de session

La couche Session remplit les fonctions suivantes -

  • Gère les messages et synchronise les conversations entre deux applications différentes.

  • Il contrôle la connexion et la déconnexion, l'identification des utilisateurs, la facturation et la gestion des sessions.

Couche de présentation

La couche Présentation remplit les fonctions suivantes -

  • Cette couche garantit que les informations sont fournies sous une forme telle que le système récepteur les comprendra et les utilisera.

Couche d'application

La couche Application remplit les fonctions suivantes -

  • Il fournit différents services tels que la manipulation d'informations de plusieurs manières, la retransmission des fichiers d'informations, la diffusion des résultats, etc.

  • Les fonctions telles que LOGIN ou la vérification du mot de passe sont également exécutées par la couche application.

Modèle TCP / IP

Le modèle TCP / IP (Transmission Control Protocol and Internet Protocol) est un modèle pratique utilisé sur Internet.

Le modèle TCP / IP combine les deux couches (couche physique et liaison de données) en une seule couche - couche hôte à réseau. Le diagramme suivant montre les différentes couches du modèle TCP / IP -

Couche d'application

Cette couche est la même que celle du modèle OSI et remplit les fonctions suivantes -

  • Il fournit différents services tels que la manipulation d'informations de plusieurs manières, la retransmission des fichiers d'informations, la diffusion des résultats, etc.

  • La couche application exécute également les fonctions telles que la connexion ou la vérification du mot de passe.

  • Voici les différents protocoles utilisés dans la couche Application -

    • TELNET
    • FTP
    • SMTP
    • DN
    • HTTP
    • NNTP

Couche de transport

Il remplit les mêmes fonctions que celle de la couche transport dans le modèle OSI. Tenez compte des points importants suivants liés à la couche de transport -

  • Il utilise les protocoles TCP et UDP pour la transmission de bout en bout.

  • TCP est un protocole fiable et orienté connexion.

  • TCP gère également le contrôle de flux.

  • L'UDP n'est pas fiable et un protocole sans connexion n'effectue pas de contrôle de flux.

  • Les protocoles TCP / IP et UDP sont utilisés dans cette couche.

Couche Internet

La fonction de cette couche est de permettre à l'hôte d'insérer des paquets dans le réseau puis de les faire voyager indépendamment vers la destination. Cependant, l'ordre de réception du paquet peut être différent de la séquence dans laquelle ils ont été envoyés.

Le protocole Internet (IP) est utilisé dans la couche Internet.

Couche hôte-réseau

Il s'agit de la couche la plus basse du modèle TCP / IP. L'hôte doit se connecter au réseau en utilisant un protocole afin de pouvoir envoyer des paquets IP sur celui-ci. Ce protocole varie d'un hôte à l'autre et d'un réseau à l'autre.

Les différents protocoles utilisés dans cette couche sont -

  • ARPANET
  • SATNET
  • LAN
  • Radio par paquets

Architecture utile

Voici quelques architectures utiles, qui sont utilisées dans la communication réseau -

L'architecture de trame Ethernet

Un ingénieur nommé Robert Metcalfe a inventé le premier réseau Ethernet, défini sous la norme IEEE 802.3, en 1973. Il a d'abord été utilisé pour interconnecter et envoyer des données entre le poste de travail et l'imprimante. Plus de 80% des réseaux locaux utilisent la norme Ethernet pour sa vitesse, son coût réduit et sa facilité d'installation. De l'autre côté, si nous parlons de trame, les données voyagent d'hôte en hôte en cours de route. Une trame est constituée de divers composants tels que l'adresse MAC, l'en-tête IP, le délimiteur de début et de fin, etc.

La trame Ethernet commence par Préambule et SFD. L'en-tête Ethernet contient à la fois l'adresse MAC source et de destination, après quoi la charge utile de la trame est présente. Le dernier champ est CRC, qui est utilisé pour détecter l'erreur. La structure de trame Ethernet de base est définie dans la norme IEEE 802.3, qui est expliquée ci-dessous -

Le format de trame Ethernet (IEEE 802.3)

Le paquet Ethernet transporte une trame Ethernet comme charge utile. Voici une représentation graphique de la trame Ethernet avec la description de chaque champ -

Nom de domaine Préambule SFD (début du délimiteur de trame) MAC de destination MAC source Type Les données CRC
Taille (en octets) sept 1 6 6 2 46-1500 4

Préambule

Une trame Ethernet est précédée d'un préambule, de 7 octets de taille, qui informe le système récepteur qu'une trame démarre et permet à l'émetteur ainsi qu'au récepteur d'établir la synchronisation des bits.

SFD (début du délimiteur de trame)

Il s'agit d'un champ de 1 octet utilisé pour indiquer que le champ d'adresse MAC de destination commence par l'octet suivant. Parfois, le champ SFD est considéré comme faisant partie du préambule. C'est pourquoi le préambule est considéré comme 8 octets dans de nombreux endroits.

  • Destination MAC - Il s'agit d'un champ de 6 octets dans lequel, nous avons l'adresse du système récepteur.

  • Source MAC - Il s'agit d'un champ de 6 octets dans lequel nous avons l'adresse du système émetteur.

  • Type- Il définit le type de protocole à l'intérieur de la trame. Par exemple, IPv4 ou IPv6. Sa taille est de 2 octets.

  • Data- Ceci est également appelé Payload et les données réelles sont insérées ici. Sa longueur doit être comprise entre 46 et 1500 octets. Si la longueur est inférieure à 46 octets, des 0 de remplissage sont ajoutés pour atteindre la longueur minimale possible, c'est-à-dire 46.

  • CRC (Cyclic Redundancy Check) - Il s'agit d'un champ de 4 octets contenant un CRC de 32 bits, qui permet la détection de données corrompues.

Format de trame Ethernet étendue (trame Ethernet II)

Voici une représentation graphique de la trame Ethernet étendue à l'aide de laquelle nous pouvons obtenir une charge utile supérieure à 1500 octets -

Nom de domaine MAC de destination MAC source Type DSAP SSAP Ctrl Les données CRC
Taille (en octets) 6 6 2 1 1 1 > 46 4

La description des champs, qui sont différents de la trame Ethernet IEEE 802.3, est la suivante -

DSAP (point d'accès au service de destination)

DSAP est un champ de 1 octet qui représente les adresses logiques de l'entité de couche réseau destinée à recevoir le message.

SSAP (point d'accès au service source)

SSAP est un champ de 1 octet qui représente l'adresse logique de l'entité de couche réseau qui a créé le message.

Ctrl

Il s'agit d'un champ de contrôle de 1 octet.

L'architecture des paquets IP

Le protocole Internet est l'un des principaux protocoles de la suite de protocoles TCP / IP. Ce protocole fonctionne à la couche réseau du modèle OSI et à la couche Internet du modèle TCP / IP. Ainsi, ce protocole a la responsabilité d'identifier les hôtes en fonction de leurs adresses logiques et d'acheminer les données entre eux sur le réseau sous-jacent. IP fournit un mécanisme pour identifier de manière unique les hôtes par un schéma d'adressage IP. IP utilise la livraison au mieux, c'est-à-dire qu'il ne garantit pas que les paquets seront livrés à l'hôte destiné, mais il fera de son mieux pour atteindre la destination.

Dans nos sections suivantes, nous découvrirons les deux différentes versions d'IP.

IPv4

Il s'agit de la version 4 du protocole Internet, qui utilise une adresse logique 32 bits. Voici le diagramme de l'en-tête IPv4 avec la description des champs -

Version

Il s'agit de la version du protocole Internet utilisée; par exemple, IPv4.

DIH

Longueur d'en-tête Internet; longueur de l'en-tête IP entier.

DSCP

Point de code des services différenciés; c'est le type de service.

ECN

Notification explicite de congestion; il porte des informations sur la congestion constatée sur l'itinéraire.

Longueur totale

La longueur du paquet IP entier (y compris l'en-tête IP et la charge utile IP).

Identification

Si le paquet IP est fragmenté lors de la transmission, tous les fragments contiennent le même numéro d'identification.

Drapeaux

Comme l'exigent les ressources du réseau, si le paquet IP est trop volumineux pour être traité, ces «indicateurs» indiquent s'ils peuvent être fragmentés ou non. Dans cet indicateur à 3 bits, le MSB est toujours mis à «0».

Décalage de fragment

Ce décalage indique la position exacte du fragment dans le paquet IP d'origine.

Temps de vivre

Pour éviter une boucle dans le réseau, chaque paquet est envoyé avec une valeur TTL définie, qui indique au réseau combien de routeurs (sauts) ce paquet peut traverser. À chaque saut, sa valeur est décrémentée de un et lorsque la valeur atteint zéro, le paquet est rejeté.

Protocole

Indique à la couche réseau de l'hôte de destination, à quel protocole appartient ce paquet, c'est-à-dire le protocole de niveau suivant. Par exemple, le numéro de protocole d'ICMP est 1, TCP est 6 et UDP est 17.

Somme de contrôle de l'en-tête

Ce champ est utilisé pour conserver la valeur de somme de contrôle de l'en-tête entier, qui est ensuite utilisé pour vérifier si le paquet est reçu sans erreur.

Adresse source

Adresse 32 bits de l'expéditeur (ou de la source) du paquet.

Adresse de destination

Adresse 32 bits du récepteur (ou de la destination) du paquet.

Options

Il s'agit d'un champ facultatif, utilisé si la valeur du DIH est supérieure à 5. Ces options peuvent contenir des valeurs pour des options telles que Sécurité, Itinéraire d'enregistrement, Horodatage, etc.

Si vous souhaitez étudier IPv4 en détail, veuillez vous référer à ce lien -

IPv6

Le protocole Internet version 6 est le protocole de communication le plus récent qui, comme son prédécesseur IPv4, fonctionne sur la couche réseau (couche 3). En plus de proposer une énorme quantité d'espace d'adressage logique, ce protocole possède de nombreuses fonctionnalités qui comblent les lacunes d'IPv4. Voici le diagramme de l'en-tête IPv4 avec la description des champs -

Version (4 bits)

Il représente la version du protocole Internet - 0110.

Classe de trafic (8 bits)

Ces 8 bits sont divisés en deux parties. Les 6 bits les plus significatifs sont utilisés pour le type de service pour permettre au routeur de savoir quels services doivent être fournis à ce paquet. Les 2 bits les moins significatifs sont utilisés pour la notification explicite d'encombrement (ECN).

Étiquette de flux (20 bits)

Cette étiquette est utilisée pour maintenir le flux séquentiel des paquets appartenant à une communication. La source étiquette la séquence pour aider le routeur à identifier qu'un paquet particulier appartient à un flux d'informations spécifique. Ce champ permet d'éviter de réorganiser les paquets de données. Il est conçu pour le streaming / média en temps réel.

Longueur de charge utile (16 bits)

Ce champ est utilisé pour indiquer aux routeurs la quantité d'informations qu'un paquet particulier contient dans sa charge utile. La charge utile est composée d'en-têtes d'extension et de données de couche supérieure. Avec 16 bits, jusqu'à 65535 octets peuvent être indiqués; mais si les en-têtes d'extension contiennent un en-tête d'extension bond par bond, alors la charge utile peut dépasser 65 535 octets et ce champ est mis à 0.

En-tête suivant (8 bits)

Soit ce champ est utilisé pour indiquer le type d'en-tête d'extension, soit si l'en-tête d'extension n'est pas présent, il indique la PDU de couche supérieure. Les valeurs du type de PDU de couche supérieure sont identiques à celles d'IPv4.

Limite de sauts (8 bits)

Ce champ est utilisé pour arrêter le paquet à boucler dans le réseau à l'infini. C'est la même chose que TTL dans IPv4. La valeur du champ Limite de sauts est décrémentée de 1 lorsqu'il passe un lien (routeur / saut). Lorsque le champ atteint 0, le paquet est rejeté.

Adresse source (128 bits)

Ce champ indique l'adresse de l'expéditeur du paquet.

Adresse de destination (128 bits)

Ce champ fournit l'adresse du destinataire prévu du paquet.

Si vous souhaitez étudier IPv6 en détail, veuillez vous référer à ce lien -

L'architecture d'en-tête TCP (Transmission Control Protocol)

Comme nous le savons, TCP est un protocole orienté connexion, dans lequel une session est établie entre deux systèmes avant de démarrer la communication. La connexion serait fermée une fois la communication terminée. TCP utilise une technique de prise de contact à trois pour établir le socket de connexion entre deux systèmes. La prise de contact à trois signifie que trois messages - SYN, SYN-ACK et ACK, sont envoyés dans les deux sens entre deux systèmes. Les étapes de travail entre deux systèmes, initiateur et cible, sont les suivantes:

Step 1 − Packet with SYN flag set

Tout d'abord, le système qui essaie d'initier une connexion démarre avec un paquet dont le drapeau SYN est défini.

Step 2 − Packet with SYN-ACK flag set

Maintenant, dans cette étape, le système cible renvoie un paquet avec des ensembles d'indicateurs SYN et ACK.

Step 3 − Packet with ACK flag set

Enfin, le système initiateur renverra un paquet au système cible d'origine avec l'indicateur ACK défini.

Voici le diagramme de l'en-tête TCP avec la description des champs -

Port source (16 bits)

Il identifie le port source du processus d'application sur le périphérique d'envoi.

Port de destination (16 bits)

Il identifie le port de destination du processus d'application sur le périphérique récepteur.

Numéro de séquence (32 bits)

Le numéro de séquence des octets de données d'un segment dans une session.

Numéro d'accusé de réception (32 bits)

Lorsque l'indicateur ACK est défini, ce numéro contient le numéro de séquence suivant de l'octet de données attendu et fonctionne comme un accusé de réception des données précédentes reçues.

Décalage des données (4 bits)

Ce champ implique à la fois la taille de l'en-tête TCP (mots de 32 bits) et le décalage des données dans le paquet courant dans tout le segment TCP.

Réservé (3 bits)

Réservé pour une utilisation future et mis à zéro par défaut.

Drapeaux (1 bit chacun)

  • NS - Le processus de signalisation de notification d'encombrement explicite utilise ce bit Nonce Sum.

  • CWR - Lorsqu'un hôte reçoit un paquet avec un bit ECE défini, il définit les fenêtres d'encombrement réduites pour accuser réception de la réception par ECE.

  • ECE - Il a deux significations -

    • Si le bit SYN est à 0, alors ECE signifie que le paquet IP a son bit CE (expérience d'encombrement) défini.

    • Si le bit SYN est défini sur 1, ECE signifie que l'appareil est compatible ECT.

  • URG - Il indique que le champ Pointeur urgent contient des données importantes et doit être traité.

  • ACK- Il indique que le champ Accusé de réception a une signification. Si ACK est remis à 0, cela indique que le paquet ne contient aucun accusé de réception.

  • PSH - Lorsqu'il est défini, il s'agit d'une demande à la station réceptrice de PUSH des données (dès qu'elles arrivent) à l'application réceptrice sans les mettre en mémoire tampon.

  • RST - Le drapeau de réinitialisation a les caractéristiques suivantes -

    • Il est utilisé pour refuser une connexion entrante.

    • Il est utilisé pour rejeter un segment.

    • Il est utilisé pour redémarrer une connexion.

  • SYN - Cet indicateur est utilisé pour établir une connexion entre les hôtes.

  • FIN- Cet indicateur est utilisé pour libérer une connexion et aucune autre donnée n'est échangée par la suite. Étant donné que les paquets avec des indicateurs SYN et FIN ont des numéros de séquence, ils sont traités dans le bon ordre.

Taille de Windows

Ce champ est utilisé pour le contrôle de flux entre deux stations et indique la quantité de tampon (en octets) que le récepteur a allouée pour un segment, c'est-à-dire la quantité de données attendue par le récepteur.

  • Checksum - Ce champ contient la somme de contrôle des en-têtes, des données et des pseudo-en-têtes.

  • Urgent Pointer - Il pointe vers l'octet de données urgentes si l'indicateur URG est défini sur 1.

  • Options- Il facilite les options supplémentaires, qui ne sont pas couvertes par l'en-tête normal. Le champ Option est toujours décrit en mots de 32 bits. Si ce champ contient des données de moins de 32 bits, un remplissage est utilisé pour couvrir les bits restants pour atteindre la limite de 32 bits.

Si vous souhaitez étudier TCP en détail, veuillez vous référer à ce lien -

L'architecture d'en-tête UDP (User Datagram Protocol)

UDP est un protocole simple sans connexion contrairement à TCP, un protocole orienté connexion. Cela implique un minimum de mécanisme de communication. En UDP, le récepteur ne génère pas d'accusé de réception du paquet reçu et à son tour, l'expéditeur n'attend aucun accusé de réception du paquet envoyé. Cette lacune rend ce protocole peu fiable et facilite le traitement. Voici le diagramme de l'en-tête UDP avec la description des champs -

Port source

Ces informations 16 bits sont utilisées pour identifier le port source du paquet.

Le port de destination

Ces informations 16 bits sont utilisées pour identifier le service de niveau application sur la machine de destination.

Longueur

Le champ de longueur spécifie la longueur totale du paquet UDP (y compris l'en-tête). Il s'agit d'un champ de 16 bits et la valeur minimale est de 8 octets, c'est-à-dire la taille de l'en-tête UDP lui-même.

Somme de contrôle

Ce champ stocke la valeur de somme de contrôle générée par l'expéditeur avant l'envoi. IPv4 a ce champ comme facultatif, donc lorsque le champ de somme de contrôle ne contient aucune valeur, il est mis à 0 et tous ses bits sont mis à zéro.

Pour étudier TCP en détail, veuillez vous référer à ce lien - User Datagram Protocol