Scapy, TCP et les automates

Magazine
Marque
MISC
Numéro
52
Mois de parution
novembre 2010
Spécialité(s)


Résumé

Scapy a été architecturé pour fonctionner dans un mode stimulus-réponse. C'est tout ce qui est nécessaire pour accomplir scan de ports, traceroutes, collectes d'IP ID, etc. Mais lorsqu'il s'agit de transfert de fichier TFTP ou de connexion TCP, où l'échange de paquets n'est plus une suite stimulus-réponse-stimulus-réponse-..., c'est insuffisant. Nous allons donc voir deux façons de parler d’un protocole qui échangerait des messages dans une connexion TCP, en s'attardant sur les facilités offertes par Scapy pour créer des automates réseau. D'autres méthodes existent et sont détaillées dans [5,6,7,8].


1. Les messages

Nous supposons que nous devons nous interfacer avec un protocole constitué d'un échange de messages triviaux, mais sur TCP. Voici l'implémentation Scapy décrivant ces messages :

class Message(Packet):

    fields_desc = [ FieldLenField("len",None, fmt="H", length_of="msg"),

                    StrLenField("msg", "", length_from=lambda pkt:pkt.len) ]

    def extract_padding(self, pay):

return "",pay

Ces messages sont donc constitués d'un champ de longueur sur 2…

Cet article est réservé aux abonnés. Il vous reste 97% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous