Vous êtes sur la page 1sur 8

☘ SESSION HIJACKING / DETOURNEMENT DE SESSION ☘

I/ DEFINITION : SESSION HIJACKING

Avant d'entrer dans les détails de l'attaque, la première étape consiste à comprendre ce qu’est une
session.

En informatique, une session correspond à un ensemble d'interactions effectuées par un client sur un
serveur au cours d'une période donnée. Elle démarre lorsque le client commence à interagir avec le
serveur.

I-1/ Déroulement d’une session


L'ouverture de session peut être :

 Explicite, avec une saisie d'un nom et d'un mot de passe. On parle alors d'authentification ou
de connexion.
 Implicite, lorsqu'il n'y a pas besoin d'indiquer un identifiant ou un mot de passe.

Selon toute logique, une session devrait se terminer lorsque le client arrête de demander des
services au serveur ou lorsqu’il se déconnecte.

Lorsqu’un client initie une session, un ID de session lui est attribué par le serveur pour identifier la
session. Un attaquant peut utiliser cet ID de session pour effectuer des actions sur le serveur au nom
du client.

Le session hijacking ou « détournement de session » (également appelé vol de session) est une
technique consistant à intercepter l’ID d’une session initiée entre deux machines afin de la détourner
et d’effectuer différent type d’attaques tels que le « Sniffing ». Cette attaque lui permettra de
récupérer des informations confidentielles d’identité d’une cible.

II/ LES REGLES DE COMMUNICATION EN INFORMATIQUE


Envoyer une lettre à un ami est une action relativement banale. Il convient tout d’abord d’écrire la
lettre, de l’insérer dans une enveloppe, de noter l’adresse de l’ami en question sur l’enveloppe et de
la glisser dans une boîte aux lettres. L’enveloppe sera alors récupérée par la poste, qui l’acheminera à
l’adresse qui y est indiquée, celle de l’ami destinataire.

À bien y regarder, aussi banale que cela soit, elle repose sur la mobilisation d’un nombre non
négligeable de « conventions » que chacun des acteurs impliqués doit respecter.

 L’expéditeur indique l’adresse du destinataire sur l’enveloppe d’une manière très codifiée.
 Les divers employés du service postal qui manipuleront la lettre doivent respecter l’ensemble
des processus liés à leur fonction qui feront que la lettre passera correctement de centre de
tri en centre de tri jusqu’à la boîte aux lettres du destinataire.
 Quant à ce dernier, il faudra qu’il sache interpréter tout un ensemble d’autres conventions
utilisées par l’expéditeur pour écrire sa lettre : la date qui figure certainement en haut à
droite est la date de rédaction (éventuellement accompagnée d’un lieu) et le nom indiqué
tout en bas de la lettre est la signature, le nom de l’expéditeur.
 La langue même dans laquelle est rédigée la lettre est une convention entre l’expéditeur et le
destinataire.

Il en va de même en informatique lorsque, par exemple, un navigateur affiche une page d’un site
web : la communication a alors lieu entre le navigateur du client et serveur du site web. Et cette
communication est possible parce qu’un ensemble de conventions sont respectées. Pour des
communications entre machines, on n’utilise pas le terme de convention mais celui de « protocole »,
et ce sont ces protocoles (ou du moins une partie d’entre eux), ainsi que l’architecture client-serveur,
les cookies et le point cumulant : la session web qui seront détaillés dans cette partie.

II-1/ L’architecture Client-Serveur


90% des applications (en ligne) fonctionnent selon l’architecture Client/serveur.

Par exemple :

 Un serveur Web publie des pages Web demandées par des navigateurs Web ;
 Un serveur de messagerie électronique envoie du courriel à des clients de messagerie ;
 Un serveur de fichiers permet de partager des fichiers sur un réseau ;
 Un serveur de base de données permet de récupérer des données stockées dans une base de
données.
Par extension, le client désigne l'ordinateur sur lequel est exécuté le logiciel client. De même le
serveur désigne l'ordinateur sur lequel est exécuté le logiciel serveur.

On dit qu’une application est distribué, lorsqu’elle est répartie côté client et côté serveur. Le client et
le serveur ne sont pas identiques, ils forment un système coopératif. Les parties client et serveur de
l'application peuvent s'exécuter sur des systèmes différents. Une même machine peut implanter les
côtés client et serveur de l'application.

/Caractéristiques d'un programme serveur

 Il attend une connexion entrante sur un ou plusieurs ports réseaux locaux ;


 À la connexion d'un client sur le port en écoute, il ouvre un socket local au système
d’exploitation ;
 À la suite de la connexion, le processus serveur communique avec le client suivant le
protocole prévu.
 Dès qu’une requête lui parvient, il la traite et envoie une réponse (un service).

/Caractéristiques d'un programme client

 Il établit la connexion au serveur via un ou plusieurs ports réseaux ;


 Il initie le contact (parle en premier), ouvre la session.
Lorsque la connexion est acceptée par le serveur, il communique avec le serveur via des requêtes.
II-2/ Les protocoles de communication
Pour permettre à deux ordinateurs d’échanger des informations entre eux, il faut un lien physique
entre ces deux ordinateurs. Si on relie non pas deux, mais plusieurs ordinateurs, on construit un
réseau informatique.

Internet est un réseau de réseaux, c’est-à-dire un ensemble de technologies qui permettent à


plusieurs réseaux de s’interconnecter de manière à permettre l’échange d’informations entre les
différentes machines.

Pour gérer la transmission de données sur ce réseau de réseaux, deux protocoles sont utilisés et
constituent le fondement d’Internet : IP, pour Internet Protocol, et TCP, pour Transfert Control
Protocol.

II-2-1/ Le protocole IP
La métaphore postale permet de saisir le rôle du protocole IP. Pour pouvoir transmettre un message
il faut connaître l'émetteur et le récepteur du message.

Faisons un parallèle avec une lettre envoyée par la poste :

 On met la lettre dans une enveloppe.


 On inscrit l'adresse du destinataire.
 On inscrit l'adresse de l’expéditeur.
En informatique, c'est à peu près la même chose : chaque message est encapsulé (enveloppé dans un
paquet) par IP qui y ajoute différentes informations :

 L'adresse de l'expéditeur (notre adresse IP).


 L'adresse IP du destinataire.
 Des données supplémentaires (qui permettent de bien contrôler l'acheminement du
message).
Deux propriétés du protocole IP doivent être soulignées.

 La première est qu’il est non fiable. Dans le sens ou une fois envoyé, chaque paquet IP suit
son propre cheminement et, s’il se perd, par exemple à cause d’une panne d’un routeur, ni
l’expéditeur ni le destinataire n’en sont informés. Rien ne garantit non plus que deux paquets
envoyés successivement par le même expéditeur au même destinataire arriveront dans
l’ordre dans lequel ils ont été envoyés.
 La seconde propriété est que la taille des paquets IP est limitée à 1500 octets.
 IP est un protocoles non orientés connexion c’est-à-dire que IP émet des données sans
prévenir la machine réceptrice, et la machine réceptrice reçoit les données sans envoyer
d'avis de réception à l’émettrice.

II-2-2/ Le protocole TCP


On peut envoyer des paquets de données d'un ordinateur à un autre via le protocole IP, cependant il
présente des problèmes :

 Des paquets peuvent se perdre.


 Rien ne permet de savoir s'ils sont bien arrivés. Pas d’accusé réception car non orienté
connexion
 La taille des paquets est limitée (1500 octets environ), Et si je veux envoyer une photo de 100
000 octets ?

C'est le rôle de TCP (Transmission Control Protocol) de régler tous ces éventuels problèmes !

TCP sait faire :

 Découper les gros paquets en paquets plus petit. La plupart des informations transitant sur
Internet (courriers électroniques, pages web) dépassent largement les tailles maximales des
paquets IP. Elles doivent donc être découpées en plusieurs paquets de taille appropriée par
l’ordinateur expéditeur et reconstituées par l’ordinateur destinataire.
 Numéroter les paquets : Afin de les réordonnés pour reconstituer les données initiales.
 Émettre des accusés de réception : Afin de vérifier que les paquets arrivent à destination ou,
au contraire, de redemander ceux qui se seraient perdus et de les réassembler.
 Indiquer le port visé (tout comme UDP) : TCP dispose de différents « ports », identifiés par
des numéros, chaque port identifie une application/service spécifique, et chaque
applications (navigateur, messagerie…) Qui transmet via TCP doit indiquer le port visé. À
chacun de ses ports, TCP attendra des données conformes à un protocole donné. Ainsi, par
exemple, HTTP utilisé par les navigateurs sera typiquement associé au port TCP 80, SMTP
utilisé pour la messagerie est associé au port TCP 25.
 TCP est un protocole orienté connexion, c'est-à-dire qu'il permet à deux machines qui
communiquent de contrôler l'état de la transmission.

II-3/ Le nom de domaine


Si les adresses IP permettent d’identifier les ordinateurs sur Internet, elles sont cependant difficiles à
mémoriser pour les humains : 192.0.43.10 est un exemple d’adresse IP. Le Domain Name System
(DNS) permet que les adresses IP, soient identifiées par un « nom de domaine », plus facilement
mémorisable. Ce sont les noms qui sont couramment utilisés lors de l’accès à une page web ou de
l’envoi d’un courriel. Il est plus simple de se rappeler que l’adresse d’un site web est
www.exemple.com plutôt que « 192.0.43.10 » ou d’envoyer un mail à « nom@exemple.com » plutôt
qu’à « nom@192.0.43.10 ».

Il y a une correspondance entre adresse IP et nom de domaine, et des machines spécialisées, les «
serveurs DNS », permettent d’effectuer la traduction du nom de domaine en adresse IP.

II-4/ Le routage IP
Pour envoyer votre lettre, vous la postez dans la boîte aux lettres la plus proche. Ce courrier est
relevé, envoyé au centre de tri de votre ville, puis transmis à d'autres centres de tri jusqu'à atteindre
le destinataire. C'est la même chose en informatique ! Vous déposez le paquet IP sur l'ordinateur le
plus proche (celui de votre fournisseur d'accès en général). Le paquet IP va transiter d'ordinateur en
ordinateur jusqu'à atteindre le destinataire.

Une des spécificités des routeurs est d’acheminer les données de l’expéditeur au destinataire. Un
routeur qui reçoit un paquet IP doit donc déterminer lequel des routeurs auxquels il est connecté est
le plus approprié pour rapprocher le paquet IP de son destinataire. Il existe donc toujours plusieurs
chemins possibles par lesquels faire transiter un paquet IP entre deux ordinateurs. Et si, à la suite
d’une panne par exemple, un chemin venait à disparaître, un autre chemin serait disponible et
pourrait être utilisé.

II-5/ Le Protocole Http


La navigation sur le web se fait suivant le modèle client-serveur. Lorsque vous naviguez sur internet,
le client désigne à la fois l’ordinateur qui émet la requête et le logiciel exécuté par cet ordinateur,
typiquement le navigateur web ; de même, le « serveur », désigne à la fois l’ordinateur destinataire
de la requête et le programme chargé de traiter la requête et formuler une réponse.

Le web pour World Wide Web, ou plus précisément «la toile d’araignée mondiale » est un système
hypertextes fonctionnant sur Internet. Il permet de consulter, avec un navigateur, des pages
accessibles sur des sites. On trouve également d’autres types de documents sur le web : images,
sons, vidéos, etc. ou pages web, reliés les uns aux autres par des hyperliens

Les données échangées sur le web entre client et serveur le sont via le protocole HTTP, HyperText
Transfert Protocol.

Le protocole HTTP fonctionne selon un principe de requête/réponse : le client formule une requête
auprès du serveur, lequel renvoie en retour une réponse au client. Un exemple typique de requête
est un navigateur (Chrome de Google ; et Firefox de Mozilla) réclamant à un serveur (Apache) une
certaine page web, lequel répond en envoyant au client le code HTML de la page désirée. Le
navigateur traite alors ce code HTML pour afficher la page à l’utilisateur.

Les requêtes HTTP sont, de manière générale, déclenchées lorsqu’un utilisateur clique sur un lien
hypertexte ou saisit une adresse URL « Uniform Resource Locator » dans son navigateur. En le
faisant, il ouvre une connexion TCP avec le serveur (généralement sur le port 80). Il envoie alors sa
requête à travers cette connexion, et le serveur envoie en retour sa réponse par la même connexion.
Cette connexion TCP peut être maintenue ouverte pour des requêtes ultérieures. Ce que spécifie
HTTP est la structure des messages que le client et le serveur vont échanger à travers la connexion
TCP.

II-6/ Les cookies de session


Afin de comprendre ce que sont exactement les cookies de session, il convient d’abord d’examiner la
signification et la fonction des cookies dans le contexte informatique.

Un cookie est un fichier créé sur l’ordinateur de l’utilisateur par un site Web. Ces fichiers texte sont
générés automatiquement par les navigateurs et les sites Web. Certains d'entre eux contiennent des
informations personnelles sur l'utilisateur et permettent, entre autres, une navigation plus agréable.

/Dans quelle mesure les cookies de session ou les cookies en général améliorent-ils l’expérience de
navigation ?

Lors de la première visite d’un utilisateur sur un site Web, le site va mémoriser certaines données de
l’utilisateur tels que les données de connexion, une langue sélectionnée ou d'autres informations
personnelles. Sans les cookies, un utilisateur devrait entrer les mêmes informations encore et encore
lorsqu’il visite le même site de manière fréquente. Le site Web utilise principalement ces
informations pour rendre la prochaine visite plus agréable pour un utilisateur spécifique.
/Quels sont les types de cookies ?

 Cookies persistants, qui sont parfois stockés sur un appareil pendant des mois ou des années.
Souvent, cela ne peut être évité que par une suppression manuelle. Vous devriez le faire
surtout si vous utilisez un ordinateur public. Ils permettent, entre autres, de suivre le
comportement des utilisateurs en matière de navigation et permettent aux entreprises de
mieux comprendre leurs clients. Par exemple, ils enregistrent exactement les produits qu’un
client a consultés au cours d’une session. De cette manière, leurs intérêts d’achat sont
identifiés et repris par des annonces ciblées dans le cadre du marketing en ligne. À l'aide de
cookies persistants, il est également possible de sauvegarder les données de l’utilisateur
après la fermeture d’un navigateur. Cela signifie qu’il n'est pas nécessaire de les inscrire à
nouveau lors d’une nouvelle visite.
 Les cookies de session, en revanche, sont toujours supprimés lorsque vous mettez fin à une
session sur un site Web. Cela se produit généralement de manière automatique lorsque vous
fermez un navigateur. Les cookies de session ne représentent donc pas un risque majeur
pour les utilisateurs par rapport aux cookies permanents.

/Comment fonctionnent les cookies de session ?

Une session commence dès que vous accédez à un site Web ou une application Web. Il peut
également inclure le temps entre une connexion et une déconnexion. Le serveur génère
immédiatement un « identifiant de session » qui est transféré au client. Cet identifiant est un numéro
composé au hasard que le cookie de session stocke temporairement. Il est uniquement utilisé pour
attribuer une session spécifique à l’utilisateur.

Les cookies de session sont donc utilisés pour stocker des informations sur la session en cours. Si, par
exemple, vous placez différents produits dans un panier d'une boutique en ligne, ils y resteront
jusqu'à la fin de la session. D'autres informations, telles que les données de connexion ou les
formulaires en ligne déjà remplis, sont également conservées pendant la session. Toutefois, si vous
mettez fin à votre session de navigation, l’identifiant de session et toutes les autres données stockées
seront effacés. Cela signifie que lorsque vous ouvrez la même page Web dans une nouvelle fenêtre
de navigateur, vous serez considéré comme un nouveau visiteur.

Il convient de noter qu’un cookie de session est généré avant qu’un client ne se connecte à un site
Web. Cela signifie qu’un visiteur anonyme d’une boutique en ligne peut placer des produits dans un
panier virtuel sans avoir à se connecter. Ce n’est que pendant la procédure de commande qu'il doit
s'inscrire ou fournir son nom, son adresse et ses coordonnées de paiement.
III/ LES FACTEURS DE CAUSALITES
Le détournement de session se produit car :

 Pas de verrouillage de compte pour l’ID de session non valides


 Faible algorithme de génération d'ID de session
 Manipulation insécurisée
 Temps d'expiration de session indéfini
 ID de session courte
 Transmission en texte clair

IV/ LES METHODES DE SESSION HIJACKING


Pour voler l’ID de session d’une victime, l’attaquant peut pour cela exploiter différentes techniques
tel que :

 Le snifing. À l'aide du reniflage de paquets, les attaquants peuvent surveiller le trafic réseau
de l'utilisateur pour intercepter les cookies de session une fois que l'utilisateur s'est
authentifié sur le serveur. L’attaquant peut détourner la session et usurper l'identité de
l'utilisateur pour effectuer des actions dans l'application Web ciblée. Étant donné que
l'attaquant a besoin d'accéder au réseau de la victime, les scénarios d'attaque typiques
impliquent des points d'accès Wi-Fi non sécurisés, où l'attaquant peut soit surveiller le trafic
sur un réseau public, soit configurer son propre point d'accès et effectuer des attaques de
type "man-in-the-middle".
 Le cross-site Scripting / XSS. L'attaquant utilise les failles XSS de l'application pour injecter un
script dans la page web utilisée par l'appareil. Le script malveillant peut soit rediriger
l'utilisateur de façon transparente vers un serveur malveillant, soit permettre l'attaquant à
voler la session de l'utilisateur et injecter des commandes dangereuses.

 Devinez L’ID de session (Ceci est pratiquement impossible).

 Brute forcing. L’attaquant teste différent ID de session jusqu’à trouver le bon.

V/ LES CONTRES MESURES


Voici quelques façons dont vous pouvez vous protégez des vols de sessions hijacking.

 Utiliser des protocoles sécurisés au lieu de protocoles en texte clair comme HTTP, FTP.
Telnet, etc.
 Le chiffrement de l'ID de session augmentera la complexité de la prédiction de l'identifiant de
session.
 Envoi de l'ID de session via SSL.
 Utilisez de longs nombres aléatoires pour l'ID de session.
 Implémentez un délai d'expiration de la session.
 Avoir un identifiant de session différent pour chaque page consulté d’un même site.
 Installer un logiciel de protection côté serveur et côté client.
 Utilisez IDS pour détecter l'usurpation/l'empoisonnement ARP.
 Ne cliquez pas sur les liens suspects.
 Vérifiez l'application Web pour toutes les erreurs.
 L'utilisation d'IP Sec est un mécanisme de défense valide.
 Toujours répondre « Non » à la boîte de dialogue « Enregistrer le mot de passe » ou «
Enregistrer les données d'accès » lorsque vous vous connectez.

VI/ LAB
Afin de pourvoir réaliser une session hijacking nous aurons besoin des outils suivant :

 D’une connexion à internet


 2 machines dont une virtuelle tournant sur VMware avec un système d’exploitation kali linux
 Wireshark qui est un analyseur de paquets
 Ettercap qui est un logiciel libre d'analyse du réseau informatique
 Un site quelconque avec lequel initié une session.

VII/ CONCLUSION
Que peuvent faire les attaquants après un piratage de session réussi ?

En cas de succès, l'attaquant peut alors effectuer toutes les actions que l'utilisateur d'origine est
autorisé à effectuer pendant la session active. Selon l'application ciblée, cela peut signifier transférer
de l'argent depuis le compte bancaire de l'utilisateur, se faire passer pour l'utilisateur pour acheter
des articles dans des boutiques en ligne, accéder à des informations personnelles détaillées pour le
vol d'identité, voler les données personnelles des clients des systèmes de l'entreprise, crypter des
données précieuses et exiger rançon pour les décrypter - et toutes sortes d'autres conséquences
désagréables.

Un danger particulier pour les grandes organisations est que les cookies peuvent également être
utilisés pour identifier les utilisateurs authentifiés dans les systèmes d'authentification unique (SSO).
Cela signifie qu'un détournement de session réussi peut donner à l'attaquant un accès SSO à
plusieurs applications Web, des systèmes financiers et des dossiers clients aux systèmes métier
contenant potentiellement une propriété intellectuelle précieuse. Pour les utilisateurs individuels,
des risques similaires existent également lors de l'utilisation de services externes pour se connecter à
des applications, mais en raison de protections supplémentaires lorsque vous vous connectez à l'aide
de votre compte Facebook ou Google, le détournement du cookie de session ne suffira généralement
pas à détourner la session.

Vous aimerez peut-être aussi