Backup Newffr.com

Réseaux filaires et sans-fil : administration, etc...

Retour index
Retour forum

Determiner le protocole d'un paquet (FTP, HTTP, ou autre) - Thread en ligne

jyz93
le 07/09/2011 21:54
Bonsoir a tous,

Voila je suis en train de faire un petit programme manipulant les raw socket avec pcap.
Le problème et que je ne parviens pas lorsque je reçois un paquet a savoir son protocole (j'aimerais pouvoir filtrer et garder que les paquets FTP).
Donc j'ai accès aux couches Ethernet, IP, ainsi que TCP...
Mais je ne sais pas trop ou peut se trouver cette information dans un paquet. Le payload m'indique juste la commande FTP, mais je ne vais tous de même pas faire plein de Si pour chaque commande envisageable...

Merci d'avance pour votre aide,
hyatus
le 07/09/2011 22:45
char *filter_exp = "port 21"; /* The filter expression */

int pcap_compile(pcap_t *p, struct bpf_program *fp, char *str, int optimize,
bpf_u_int32 netmask)

int pcap_setfilter(pcap_t *p, struct bpf_program *fp)
jyz93
le 08/09/2011 17:26
Le bout de code que tu m'a passé me permes juste de mettre en place un filtre tcpdump qui filtre le trafic sur le port 21.
Un serveur FTP n’écoute pas forcement sur le port 21. D'ailleurs on peut même faire écouter un serveur HTTP sur le port 21.
En faite j'aimerais par exemple que si j’écoute le trafic sur le port 21 et qu'il y a un serveur HTTP avec donc des requêtes HTTP qui transitent, il ne le prenne pas en conte.
C'est pourquoi j'essaye de savoir comment reconnaître une requête FTP.

[ Ce Message a été édité par: jyz93 le 2011-09-08 17:26 ]
hyatus
le 08/09/2011 20:25
Il n'y a pas ce type d'information dans TCP ( à ma connaissance ). Même en faisant une analyse fine des paquets, cela me parait compliqué. Il vaut mieux utiliser les filtres sur les ports probables ou utiliser le payload qui n'est pas une si mauvaise solution d'autant qu'il n'y pas 36 commandes ...

Si quelqu'un à une idée ou un outil capable de le faire ça m'intéresse également.
jyz93
le 08/09/2011 20:31
Ba wireshark le fait bien, du coup sa doit bien être possible je pense...
J'ai essayé de regarder les sources de wireshark mais c'est un peu complexe, je vais essayer de regarder encore une fois, histoire d'essayer d'en extraire un morceau de code.
Jah
le 08/09/2011 20:52
Pareil que toi jyz93 sur wireshark, si tu as plus d'infos, je suis preneur.

Merci (si y'en trouve aussi, je reposte).
(@ 3 Gr d'alcool dans le sang alors je vous aime)
hyatus
le 08/09/2011 21:52
Bizarre wireshark ne semble pas aussi performant sur mon réseau...

Si tu utilises des ports non standards, wireshark pédale dans la choucroute, à mon avis, il utilise simplement quelques filtres sur les ports sources.

Un exemple >
http://myuste.ust.edu.ph:8888/student/
Transmission Control Protocol, Src Port: ddi-tcp-1 (8888), Dst Port: 50480 (50480), Seq: 662, Ack: 1236, Len: 0 --> Protocol TCP
[addsig]

[ Ce Message a été édité par: hyatus le 2011-09-08 22:42 ]


Newffr.com 2001-2006