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 :

[Scapy]Modification des paquets


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 35
    Points : 24
    Points
    24
    Par défaut [Scapy]Modification des paquets
    Bonjour


    Je reçois des paquets pour une machine A (192.6.1.3) et je veux les duppliquer pour les renvoyer aussi à B (192.6.1.15), de sorte que A et B reçoivent le même paquet


    J'utilise scapy, je sniffe le réseau (les paquets à destination de A) avec tcpdump et j'enregistre avec un fichier pcap.
    Je peux modifier les trames du fichier cap avec scpapy et modifier l'adresse destionation (mettre celle de B 192.6.1.15) et envoyer ces paquets sur le réseau : maintenant B reçoit aussi


    J'aimerais savoir si c'est possible de sniffer avec scapy et modifier les trame pour envoyer en direct vers la machine B
    Car les trames sont envoyées continuellement

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Qqch comme ceci peut-être (non testé):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    from scapy.all import *
     
    def resend(dst):
        def prn(p):
            p.dst = mac                # update L2 address
            p[IP].dst = dst            # update L3 address
            del p.chksum               # recompute IP checksum
            sendp(p, verbose=False)    # send at L2
        mac = getmacbyip(dst)
        return prn
     
    sniff(filter='ip dst 192.6.1.3', prn=resend('192.6.1.15'))
    Je garantis pas que ça marche tel quel, mais c'est l'idée. Les performances risquent de pas être terrible, à voir. Il faudrait peut-être aussi spécialiser le filtre; là il devrait transférer TOUT le trafic IP à destination de A.

    Les adresses sources ne sont pas modifiées, ce qui fait que B verra la source réelle du trafic, et pas l'adresse de la machine sur laquelle tourne le script...

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/05/2011, 18h32
  2. Sockets raw - interception et modification des paquets
    Par Mythras dans le forum Réseau
    Réponses: 5
    Dernier message: 08/12/2009, 20h56
  3. [VB6] Modification des axes d'un composant Chart
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/05/2003, 09h33
  4. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 17h37
  5. Redimensionnement des Paquets IP sur un Réseau Local
    Par Bonoboo dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 16h40

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