IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

comment analyser un paquet?


Sujet :

Réseau/Web Python

  1. #1
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut comment analyser un paquet?
    Bonjour,
    Dans un environnement de test, je suis parvenu à dévier le trafic http d'une victime vers mon application python.
    C'est beau, c'est fonctionnel, oui mais je ne sais pas comment lui répondre.
    En effet, je vois la requete http qu'elle a envoyer à la passerelle mais je ne connais pas le port depuis lequel elle a envoyer cette requete et je ne sais donc pas lui répondre

    Il semble évidant qu'il faille analyser plus en profondeur le paquet, mais on arrive dans un domaine que je ne connais absolument pas.
    J'aimerai donc avoir votre aide
    (sachant que j'aimerai utiliser le moins de librairie non native possible)

    d'avance merci.
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

  2. #2
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Salut,
    Il faut désasembler le paquet. Le port se trouve dans l'en tête TCP, l'@ IP dans l'en-tête IP, l'@ MAC dans l'en tête Ethernet. Il faut donc que tu désencapsule les paquets : [Ethernet[IP[tcp[http]]]].
    Avec la bibliothèque standard, à part parser soi même le paquet, je pense pas qu'il y ai de module tout fait. En plus il faut très bien connaître les protocoles (flag à lever, checksum...).
    Scapy permet de faire ce genre de chose facilement, mais c'est une bibliothèque externe.
    Si tu veux un peu de lecture sur le sujet, je te conseille le livre Security Poxer Tools, d'O'Rilley. Il est très orienté pratique, et très compréhensible.

  3. #3
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    merci de ta réponse.
    Effectivement j'ai entendu parlé de scapy (et ça ne me dérange pas du tout de l'utiliser).
    En revanche, j'ai un peu de mal à comprendre comment ça va se faire.
    En effet moi mon serveur python actuel ne reçoit que des requetes http (et non un paquet complet) (du moins de ce que j'ai compris).

    peux tu m'expliquer un peu plus en détail comment ça se passe?
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

  4. #4
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    En fait, tu ne vois que ce que tu regardes. Si tu regardes tes paquets redirigés avec wireshark, tu verras qu'il y a différent niveau d'encpsulation. La partie http est encapsulé dans tcp, qui sert de couche de transport et d'établissement de liaison entre protocole : [tcp[http]]. Pour router ton traffic sur internet, il est nécessaire d'utiliser IP qui rajoute une couche à l'onion : [IP[tcp[http]]].En suite, sur ton réseau local, la délivrance du paquet se fait via l'@ MAC inclu dans l'en-tête Ethernet (encore une couche) : [Ethernet[IP[tcp[http]]]]. C'est ça qu'on appelle un paquet.
    Toi ce que tu veux, c'est modifier le paquet http. Mais pour rerouter le paquet, tu dois réecrire les informations des plus basses couches.
    Essai d'analyser les paquets qui t'intéresse avec wireshark. Tout deviendra clair.
    Bon courage

  5. #5
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    En ce moment, je ne vois juste passé que la couche http pcq je regarde ce qui passe avec netcat c'est ça?
    tu veux dire que lorsque ce sera mon application qui sera en écoute sur le port, le contenu reçu ce sera le paquet complet et non juste la couche http?

    je pose trop de question, je ferai mieu d'essayer
    je vais voir avec scapy, merci pour tes info en tout cas
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

  6. #6
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    Effectivement, netcat ne te montre que la partie http, vu qu'il attend une connexion de niveau tcp.
    Citation Envoyé par sloshy Voir le message
    En ce moment, je ne vois juste passé que la couche http pcq je regarde ce qui passe avec netcat c'est ça?
    tu veux dire que lorsque ce sera mon application qui sera en écoute sur le port, le contenu reçu ce sera le paquet complet et non juste la couche http?
    Y'a un truc que je comprends pas. Je croyais que tu effectuais une attaque MITM sur le traffic web de ta victime. Dans ce cas, tu ne peux pas attendre une connexion venant de ta victime, celle-ci essaie de se connecter ailleur. Je m'explique : Ta victime effectue une requète http vers www.developpez.net dont l'adresse est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    nslookup www.developpez.com
     
    Réponse ne faisant pas autorité :
    Nom :    developpez.com
    Address:  87.98.130.52
    Aliases:  www.developpez.com
    La connexion tcp tentera de se faire vers ce site 87.98.130.52.
    Vu que tu es entre le routeur (192.168.1.254) de sortie et la victime (192.168.1.1), tu récupères cette tentative de connexion, mais en aucun cas, la victime ne fera une tentative de connexion vers ton serveur (192.168.1.100 par exemple) (à moins que tu ne la force). Or netcat attend une connexion tcp entrante pour réagir.
    Bref, qu'elles sont les étapes que tu effectues pour dévier le traffic ? Normalement un simple arp spoofing, et une vérification avec wireshark te dis si ton attaque à réussie. Tu devrais voir passer des paquets de la victime.
    Une fois que les paquets transitent par ta passerelle, tu dois utiliser scapy. Scapy est un sniffer/forgeur de paquet c'est à dire qu'il te remonte tous les paquets passant par toi. Il n'y a donc pas besoin de connexion.
    Citation Envoyé par sloshy Voir le message
    je pose trop de question, je ferai mieu d'essayer
    T'inquiètes, les forums sont faits pour ça. Ce que je te dis te semble sans doute très théorique, mais si tu mets les mains dedans tu vas vite comprendre.
    Bon courage, n'hésites pas si tu as d'autres questions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment analyser un report de bug de la JVM
    Par ForgetTheNorm dans le forum Langage
    Réponses: 6
    Dernier message: 23/03/2007, 18h37
  2. Comment analyser disque externe
    Par peugeot403 dans le forum Composants
    Réponses: 15
    Dernier message: 05/01/2007, 18h30
  3. Comment créer un paquet dans Delphi 7
    Par binome1 dans le forum Delphi
    Réponses: 1
    Dernier message: 02/12/2006, 12h04
  4. [8051] Comment analyser un programme désassemblé de 4000 lignes ?
    Par kenjiu2002 dans le forum Autres architectures
    Réponses: 4
    Dernier message: 18/10/2006, 13h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo