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 - Mac Flooding


Sujet :

Réseau/Web Python

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Points : 41
    Points
    41
    Par défaut Scapy - Mac Flooding
    Bonjours à tous,

    Etudiant en python, je suis à la recherche d'une solution afin de réaliser un MAC Flooding via Scapy.

    Après recherches sur la toile, j'en suis arrivé à la solution suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for n in xrange(1000) :
        srcMAC = RandMAC()
        dstMAC = RandMAC()
        srcIP = RandIP()
        ether = Ether(src=srcMAC, dst=dstMAC)
        arp = ARP(op=2, psrc=srcIP, hwsrc=srcMAC, hwdst=dstMAC)
        padding = Padding(load="X"*18)
        pkt = ether/arp/padding
        sendp(pkt)
    Cependant, le comportement de mon switch ne correspond pas au résultat souhaité : il ne se comporte en aucun cas comme un hub.

    Si quelqu'un pouvait m'aider....

    Merci

  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,
    Je connais pas super bien, mais je pense plutôt à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for n in xrange(1000):
        pkt = Ether(src=RandMAC(), dst=RandMAC())/ARP(op=1, psrc=RandIP())
        send(pkt, iface="eth0")
    Je vois pas l'utilité du padding (fait automatiquement normallemnt), et l'adresse MAC sera copiée de Ethernet vers ARP (donc pas besoin de la repréciser). J'ai passé op à 1 car t'es en émission (ça change peut-être pas grand chose).
    Sinon essai l'envoi en couche 3 via send(), car ARP fait le lien couche 2-3.
    Tu peux observer ton packet forgé en faisant pkt.show().
    Bon courage
    PS:ton switch est peut-être protégé contre ce type d'attaque ou peut être qu'il faut plus d'adresses dans sa mémoire (connais-tu sa taille?)

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    Suite à de multiples essayages sans résultat probant, je reviens vers vous...

    J'ai bien essayé ta proposition dahtah, et d'autre encore alliant ARP, IP, Ether et même TCP. Toutefois, les switches, en l'occurrence un 804HV de D-Link et un BS410 de Nortel, ne présentent aucune faiblesse.

    Seul cas ou les switches présentent un dénie de service (qui n'est pas le but recherché) : via l'envoie d'un grand nombre de paquets TCP avec le flag S activé.


    Si quelqu'un avait une autre idée... cela m'aiderait grandement. Merci !

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    1000 paquets, c'est assez peu pour la plupart des switchs. Il faut regarder sur la notice du switch, c'est souvent indiqué la taille des tables.

    D'autre part, les switches haut de gamme ont effectivement une protection contre le flooding.

  5. #5
    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
    As-tu "wiresharké" les ports de ton switch pour voir ce qui s'y passait? Ca aiderait à savoir si on fait une erreur de programmation (je pense pas) ou une erreur réseau.
    Sinon, monte un réseau virtuel netkit et joue sur le paramètre de mémoire du switch.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Mai 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut réponse
    J'ai le même souci que toi, cependant j'ai pu voir avec wireshark qu'une fois que l'ont attribue une source aux paquets "champ Ethernet" (Ether(src=randmac()) rien n'est reçut alors que si tu enlève le "src=randmac()" là les paquets seront reçu mais avec l'@mac de la machine où tu exécute le script.
    J'ai bien testé avec ifconfig mais à la vitesse du flood ça ne marche bien évidement pas ^^
    Voila voila si quelqu'un à une idée...


    ps: 1000 c'est peu, le mini d'une table CAM c'est 8000 si je me rappelle bien.


    Edit: Désolé pour la remonte de sujet... ^^' dans l'empressement...

Discussions similaires

  1. Eclipse Mac version et pluginUML
    Par Driden dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 09/06/2003, 19h03
  2. Réponses: 5
    Dernier message: 25/03/2003, 17h27
  3. [Turbo Pascal] [MS-DOS] Lire la Mac-address de la carte réseau
    Par toctoc dans le forum Turbo Pascal
    Réponses: 14
    Dernier message: 21/02/2003, 22h08
  4. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

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