• STATISTIQUES
  • Il y a eu un total de 1 membres et 13576 visiteurs sur le site dans les dernières 24h pour un total de 13 577 personnes!


    Membres: 2 433
    Discussions: 3 585
    Messages: 32 831
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] NewbieContest
    Nous vous proposons une série de challenges regroupant plusieurs domaines allant de l'exploitation de fail...
    Hacking
    [FR] Hackfest
    Le Hackfest est un évènement de sécurité et de piratage informatique au Québec reg...
    Hacking
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking
    [FR] Zmaster
    Articles sur l'informatique, le hacking, le P2P, les divx, les astuces windows XP, les GSM, Emule, la cryptograph...
    Hacking
    [FR] Cyber-Hacker
    CH - Cyber Hacker est un jeu par navigateur de simulation de hack, programmez et envoyez vos virus et piratez les aut...
    Hacking
    [EN] Packet Storm
    Packet Storm est un site qui combine nouvelles de la sécurité informatique, téléchargemen...
    Vulnérabilités
    [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Comment fonctionne les attaques de type IP-Spoofing

TUTORIEL IP SPOOFING
L'attaque par usurpation d'identité ou ip spoofing a pour but, comme son nom l'indique de procurer à l'attaquant une identité (ip) qu'il ne possède pas, généralement dans le but d'abuser des relations de confiance existantes entre deux hôtes. Mais trêves de termes techniques, nous parlerons dans le langage le plus simple possible, pour que tous puissent en profiter. Mais auparavant il est nécessaire que vous possediez un minimum de connaissances sur le protocole TCP/IP. La première partie de ce tuto aura donc pour but de vous parler de ce fameux protocole.

1. TCP/IP
Les "connaisseurs" diront que c'est le protocole TCP qui assure le bon transport des données transitant sur internet: il va par exemple numéroter les paquets avant de les émettre sur le réseau afin que le destinataire puisse les reconstituer. Sans cela, les données transiteraient de façon anarchique et il serait presque impossible de les transmettre de façon fiable.

Mais pour parler dans un langage simplifié on dira que ce protocole sert à maintenir la fiabilité des données transmises sur internet; en clair: C'EST CE QUI VOUS PERMET D'UTILISER INTERNET DE FACON STABLE! Pour ceux qui sont un peu réticent à la seule vue du mot protocole, sachez qu'un protocole est un ensemble de conventions connues de parties tierces et qui l'utilisent afin de normaliser leurs communications. Donc pour revenir au protocole TCP (qui veut dire Transfert Control Protocole je pense), il a été inventé un mécanisme qui permet à deux hôtes voulant communiquer de pouvoir se synchroniser. C'est un mécanisme à trois temps. Toujours pour simplifier je vais utiliser une petite métaphore: imaginez que vous (que j'appellerais A)

vouliez causer un peu avec votre copain (nommé B). Pour cela les bonnes manières voudraient que quand vous serez face à B, vous commenciez d'abord par lui tendre la main en lui disant gentiment "bonjour, est-ce que je peux vous parler un petit peu?". Et si B veut bien vous parler, il vous serre la main en répondant: "bonjour, oui tu peux"; et là, A fini par "Merci, je serai bref...". Et à partir de là la discussion peut commencer puisque les deux personnes sont d'accord pour. Au niveau de TCP, et bien c'est à peu près la même histoire, à quelques petites différences près. En effet, le mécanisme à trois temps nécessaire pour entamer une communication entre deux hôtes A et B (ou entre un hôte A et un serveur B) se déroule comme suit:

-l'hôte A voulant se synchroniser avec B commence par lui envoyer un paquet avec le drapeau SYN (voulant dire synchronisation) et portant ce qu'on appelle un numéro de séquence initial que je note X: c'est comme si on envoie un "bonjour, est-ce que..."
-lorsque B reçoit ce paquet il comprend que A veut établir une communication et si lui aussi veut de cette communication, il repond en envoyant un paquet avec les drapeaux SYN et ACK (ACK voulant dire acknowledgement et si on traduit littéralement ça pourrait signifier "accord pour synchronisation") ayant comme numéro de séquence Y (Y totalement différent de X) et un numéro d'acquitement ACK = X + 1. A cette étape c'est comme si B répondait à A par "Bonjour, oui tu peux"
-Enfin lorsque A reçoit ce paquet (SYN + ACK) il envoie finalement à B un paquet avec le drapeau ACK (pour accord final) ayant pour numéro de séquence X + 1, et pour numéro d'acquitement ACK = Y + 1. Si vous avez bien suivi c'est comme si A repondait par "Merci, je serai bref...". Lorsque B reçoit ce dernier paquet alors la connexion est établie et les deux hôtes sont synchronisés. Notez aussi que la connexion peut être avortée par B lorsqu'elle n'est pas désirée: B envoie alors un paquet avec le drapeau
RESET qui mettra automatiquement fin à la connexion.

Voilà c'est tout ce dont vous avez besoin de savoir sur le protocole TCP pour mener cette attaque.
Petit exercice: quel est le numéro d'acquitement ACK envoyé par B lorsqu'il reçoit le paquet SYN venant de A ?

2. Usurpation d'identité.
Vous voilà bien muni d'une "grande connaissance" sur TCP, vous pouvez alors mieux assimiler cette seconde partie. L'IP spoofing se révèle très intéressante lorsqu'on est face à deux machines qui entretiennent une relation de confiance basée seulement sur l'authentification par IP. Soyons plus explicites: imaginez encore deux machines A et B telles que B accepte une connexion distante provenant de A. Pour authentifier la connexion, B se base sur le fait que si l'hôte distant qui essaye de se connecter a l'ip de A, la connexion est établie sans que A est à fournir son mot de passe (en réalité le mot de passe était déjà stocké chez B, alors ce dernier décide qu'il n'est plus nécessaire de le redonner).Ce genre de service est fourni par rsh ou rcp ou rlogin (sous des systèmes UNIX ou windows mais je n'en sais pas plus que vous). Ces services sont pratiques car ils permettent de gagner du temps mais présentent des petits défauts...
Je vais encore utiliser un exemple pour mieux m'exprimer: mais en aucun cas l'exemple (qui assez semblable à un challenge de
projecthack et c'est pour cela même que je l'ai choisi) ci-dessous n'est vrai et si vous ne croyez pas, essayez. C'est juste pour vous donner une petite idée de ma compréhension de cette attaque.

Soit:
Nous sommes face à une page web qui pour afficher son contenu nécessite que vous possédiez l'ip 192.168.1.92 (en réalité lorsque vous essayez de visiter la page on vous affiche un message semblable: ERREUR SURVENUE LORS DE L'AUTHENTIFICATION; mais pour simplifier nous supposons que nous connaissons l'ip à fournir). Alors on va faire la première partie de l'attaque qui consiste à récolter le maximum d'informations sur la cible et sur l'ip autorisée.

2.1 on effectue un scan sur la cible: je vous garde des détails mais c'est le plus important qui m'interesse: bingo! on voit que le service rsh est utilisé par le site (surement pour que 192.168.1.92 puissent se connecter)
2.2 on effectue un finger sur la cible et on remarque que 192.168.1.92 est connecté depuis x temps sur la cible. alors là vrai-
ment on a de la chance: ça nous suffit pour l'instant.
2.3 Là c'est la partie essentielle: en effet il faut qu'on arrive à faire croire à la cible que c'est 192.168.1.92 qui se connecte
alors que c'est nous. Il faut pour cela que nous reprenions le mécanisme à trois temps nécessaire pour entamer la connexion.

Comme nous savons que la cible autorise 192.168.1.92 à se connecter en rsh nous allons lui envoyer un paquet avec le drapeau SYN (et évidemment un numéro de séquence X) mais ce paquet portera comme adresse source l'ip 192.168.1.92 (car c'est cette ip dont nous voulons usurper l'identité pour bénéficier de ses privilèges sur la cible). Mais vous vous serez rendu compte que quand la cible repondra par le paquet SYN+ACK, ce paquet ira à l'adresse source du paquet que nous avons envoyé (c'est à dire 192.168.1.92, à moins que nous spécificions une adresse de retour et la plupart des routeurs suppriment ces types de paquets par sécurité). Nous n'aurons donc pas le numéro de séquence du paquet envoyé par la cible à 192.168.1.92 (à moins d'être un élite et de savoir comment faire sauter un routeur pour qu'il se traine à vos pieds Cool :o ). Or il est impératif que nous ayons ce numéro pour pouvoir établir la connexion car si vous vous rappelez, le dernier paquet que nous devons envoyer pour établir la connexion doit avoir pour numéro d'acquitement le numéro de séquence du paquet envoyé par la cible incrémentée de 1. En plus on sait que lorsque 192.168.1.92 recevra le paquet SYN+ACK de la cible alors qu'il n'a pas demandé de connexion, et bien il va s'empresser de fermer notre chère connexion à coups de paquets RESET. Donc au point où on en est, il nous faut deviner le numéro de séquence du paquet envoyé par la cible et il faut aussi que nous empêchions 192.168.1.92 de fermer la connexion et cela avant même de commencer l'attaque. Il existe beaucoup de moyens pour mettre un ordi hors service: on parle d'attaque par Denial of service où "Deni de service" et il faudrait plus d'un tuto pour vous les apprendre tous. Nous nous utiliserons le SMURF. Principe simple: on cherche l'adresse de broadcast du réseau de 192.168.1.68 et on envoie un ping avec comme adresse source celui de 192.168.1.92 au broadcast. Résultat: terriblement ravageur! Le broadcast va répercuter la demande sur tous les hôtes du réseau et qui vont tous répondre (en théorie) à 192.168.1.92. Imaginez que ce réseau comporte 200 hôtes, c'est déjà suffisant pour le mettre K.O. On peut aussi utiliser le SYN-Flooding pour se débarrasser de 192.168.1.92: on lui envoie un petit millier de paquets SYN et on ne répond pas aux paquets qu'il renverra. Cela à peu près le même effet que le SMURF.

Nous voici donc débarrassé de celui qui pourrait potentiellement nous poser problème. Mais nous n'avons toujours pas le numéro de séquence du paquet envoyé par la cible, et sans cela pas de connexion! je vous avais parlé de "deviner le numéro de séquence" mais cela ne se passera pas tout à fait comme ça. Si vous êtes très chanceux et que la cible se trouve sur votre réseau local, sortez vite votre meilleur sniffeur et quand la cible répondra et bien vous avez toutes les chances de pouvoir chopper ce précieux paquet et par la même occasion le bon numéro de séquence. Mais si ce n'est pas le cas et ben il vous reste un dernier espoir. Nous allons essayer de deviner l'algorithme de génération du numéro de séquence utilisé par la cible. Et là encore, pas de remède miracle: nous allons envoyer une succession de paquets SYN à la cible (pas trop quand même sinon elle risquerait de subir le même sort que 192.168.1.92) et à chaque fois grâce à notre sniffeur nous analyserons les numéros de séquence des paquets que nous renvoi la cible: si c'est un truc du genre Y puis 2Y puis 4Y puis 6Y... alors vous savez quoi faire puisque vous venez de découvrir l'algorithme de génération du numéro de séquence (à chaque fois le numéro de séquence est le double du numéro de séquence précédente). Mais vous pouvez avoir un algorithme totalement différent de celui-ci et je suis presque sûr que ça sera le cas (vous pouvez avoir Y=>2Y+128=>10Y+640=>128Y=>256Y+128=>... Alors c'est beaucoup moins facile ici mais toujours faisable...Wink ). Donc on suppose que vous avez réussi à avoir le bon numéro de séquence, il ne vous reste plus qu'à envoyer le dernier paquet, donc à établir la connexion et vous voila synchronisé avec la cible. Il vous reste maintenant à étendre vos privilèges sur la machine cible en utilisant divers exploits et vous pourrez ainsi prendre totalement le contrôle de la cible. Après cela vous pouvez satisfaire votre première envie en changeant les configurations pour que la page que vous vouliez visiter soit accessible à tous. Notez finalement que certains systèmes tels Linux où UNIX et ses dérivés savent générer des numéros de séquence totalement aléatoires (ce que je vous ai montré plus haut n'est rien comparé à cela). Ce qui rend l'attaque encore plus difficile.

Voilà j'ai fini de vous deballer toutes mes connaissances personnelles sur cette attaque ainsi que (et surtout) celles que j'ai apprises un peu partout. j'espère ne pas avoir écrit trop de conneries, et si il y a des erreurs ou de grands mensonges dans tout ce que je viens de dire, n'hésitez pas à me faire part de vos critiques.
Vous pouvez distribuer ce tuto mais n'oubliez pas son auteur....
18-02-2007, 03h02 (Modification du message : 15-01-2012, 18h10 par Di0Sasm.)
Message : #1
Padboy Hors ligne
Bon membre
*



Messages : 745
Sujets : 19
Points: 5
Inscription : Oct 2005
Tutoriel IP-Spoofing
Merci d'avoir contribué aux articles de PN.
18-02-2007, 04h44 (Modification du message : 15-01-2012, 18h11 par Di0Sasm.)
Message : #2
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 158
Inscription : Jan 2012
Tutoriel IP-Spoofing
Bien joué Apophis :-) Je vois que quand tu commences à te poser des questions, tu finis par trouver les réponses en plus de "masterer" le sujet. Félicitations. Ton tuto, avec ta permission, sera poster dans le nouveau site de PN en cours de construction. Puisque le nouveau site utilisera la DB du site actuel, il sera posté sous ton pseudo et donc à toi la gloire de la vulgarisation du IP Spoofing.

J'espère avoir la chance de te lancer de telle fleur dans un autre de tes tuto lol Affaire à suivre!

Félicitations. Réputation augmenté!
18-02-2007, 09h04 (Modification du message : 15-01-2012, 18h14 par Di0Sasm.)
Message : #3
Apophis Hors ligne
Newbie
*



Messages : 12
Sujets : 3
Points: 2
Inscription : Feb 2007
Tutoriel IP-Spoofing
Merci et j'espère que vous allez arrêter sinon j'aurai déjà la grosse tête. J'ai pour projet d'en faire un autre mais ça ne sera pas un tuto en tant que tel: je vais essayer de parler du S-E et des possibilités de cette technique. J'ai beaucoup entendu parler de cette technique (qui n'en est pas une tout à fait) mais je n'ai jamais vraiment lu d'articles sur son utilité et sur ce qu'on pouvait en tirer (jusqu'à ce que je finisse par m'en faire une petite idée). Alors à bientôt.
PS: je serai là de temps en temps pour voir la suite de ce tuto mais j'ai mon bac à préparer donc... et OK a Cybersee pour poster le sujet.
Mais au fait c'est quoi la réputation? j'ai vu l'explication dans un autre poste mais je n'ai pas bien pigé
IL existe une technique qu'aucun patch, ni aucun antivirus, ni aucun IDS ne peut vous proteger efficacement... I LOVE S.E!!! big up Mitnick
18-02-2007, 12h38 (Modification du message : 15-01-2012, 18h15 par Di0Sasm.)
Message : #4
shutdownfuri Hors ligne
Membre
*



Messages : 45
Sujets : 8
Points: 0
Inscription : Nov 2006
Tutoriel IP-Spoofing
Tuto vraiment intéressant surtout pour des personnes comme moi qui ne se sont pas encore penché sur le sujet du spoof Wink
Allé @+ et continue Smile
(Point de réputation je t'ai mis...)
__________________________________
The sin is not knowledge but to make... |
---------------------------------------_____________
The problem it is that it bacame a weapon the protect|
---------------------------------------------------
---
/By Body\
----------