Hijacking
| Fiche express | |
|---|---|
| Domaine | Vol de session TCP / spoofing IP |
| Couche OSI | 4 (Transport) |
| Cibles typiques | telnet, POP, rlogin (non chiffrés) |
| Outils | shijack, Hunt, Juggernaut |
| Voir aussi | Rlogin · ARP · Ssl stripping |
Le hijacking (vol de session TCP) est une attaque de la couche 4 du modèle OSI (transport). Il remet en cause les connexions non chiffrées (telnet, POP) ainsi que les authentifications par IP telles que Rlogin.
Faille ACK/SEQ
Rappel de l'établissement d'une connexion TCP :
- le client envoie un paquet de synchronisation (SYN) contenant un numéro de séquence SEQ-CLIENT ;
- le serveur répond par un SYN/ACK : ACK-SERVER = SEQ-CLIENT+1 et SEQ-SERVER généré par le serveur ;
- le client envoie un ACK = SEQ-SERVER+1, avec SEQ = ACK-SERVER = SEQ-CLIENT+1.
Une fois la connexion établie, les numéros de séquence sont incrémentés. Le principe de la faille est de forger un paquet qui va s'immiscer dans la conversation. Si le réseau n'est pas commuté (switché), il est possible d'écouter les paquets envoyés par le client. Le but est de faire du spoofing d'IP, ce qui suppose de maîtriser la prédiction ACK/SEQ.
Conséquence
En spoofant les paquets de la machine émettrice, celle-ci ne peut plus communiquer avec le serveur (ses paquets ne sont plus synchronisés). Il est possible de se resynchroniser avec le client en se faisant passer pour le serveur.
Pratique
apt-get install telnetd
# lancer wireshark, puis :
telnet <ipserveur>
Pour voler une session il faut : l'IP et le port du serveur, l'IP et le port du client, et le couple ACK/SEQ à l'instant T. Le couple se forme ainsi :
ACK = SEQ-PRECEDENT + Len (Len = taille des données telnet)
Outil shijack :
./shijack <interface> <ipclient> <port-client> <ipserveur> <port-serveur>
Dès la prochaine commande envoyée par le telnet, on obtient le contrôle de la session.
Automatisation
Certains outils enchaînent sniffing, récupération des informations nécessaires et empoisonnement du cache ARP (pour restituer la session) : Hunt, Hjksuite, Juggernaut, Path, Dnshijacker.
Spoofing IP
Le principe est identique pour créer une session IP. Il n'est cependant pas possible de récupérer le numéro SYN : il faut prédire un numéro de séquence SEQ pour le retrouver côté serveur à l'étape 3 (TELNET, étape 3 TCP : ACK = SEQ+1). Il faut donc forger les paquets des étapes 1 et 3 — voir scapy.
Outils
Session HTTP : Firesheep, Hamster, CookieCatcher, ARP poisoning (Cain & Abel, Ettercap + sniffer), MITMf.
Session TCP : Hunt, Juggernaut, shijack, T-Sight.
Voir aussi
- Rlogin — authentification par IP vulnérable
- ARP — empoisonnement de cache ARP
- Ssl stripping · Subterfuge — attaques MITM