Wireshark, déterminer le protocole

jcp35 Messages postés 2 Statut Membre -  
brupala Messages postés 115288 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis en train d'analyser le trafic WAN sur mon réseau et je développe une petite application perl pour avoir le top 10 des protocoles les plus utilisé. Bien sur, je me base sur wireshark pour faire mes captures réseaux. Sauf que Wireshark a du mal a déterminer le protocole. A 80%, j'ai du "tcp" ou "tcp:data" donc pas facile de savoir ce qui passe. Le mieux est alors d'aller regarder le numéro de port. Le problème, c'est que sur certain paquet IP, il faut prendre le port source et sur d'autre, il faut prendre le port destination. Au départ, je pensais que je pouvais prendre le plus petit des ports mais c'est pas le cas. Ca fonctionne avec le http, ftp mais pas toujours avec le trafic ica ou pcanywhere et il y en a certainement beaucoup d'autre.

Exemple 1:
Protocole : Telnet
IP src: 10.1.x.y/16
IP dest : 10.66.x.y/16
Port src : 23
Port dest : 1402

Exemple 2:
Protocole : SNMP
IP src: 10.1.x.y/16
IP dest : 10.32.x.y/16
Port src : 2768
Port dest : 161

Donc, quelqu'un aurait-il une astuce pour déterminer le "bon" port ?
Merci

4 réponses

Nabla's Messages postés 20731 Statut Contributeur 3 194
 
j'ai peut etre une piste de recherche.

lors de l'établissement d'une conenxion TCP, il y a le 3 ways handshake.

le premier ordi envoi syn (sur le port à identifier)
l'autre répond syn ack
et le premier répond ack.

il suffit donc de regarder le port de destination lorsqu'il y a le flag "syn".

avec ca, tu devrai pouvoir mettre en place ton code pour capturer l'ensemble de la communication, car tu aura le port associé au protocole l'ip du serveur, l'ip de l'emeteur avec le 2° port associé ...
0
jcp35 Messages postés 2 Statut Membre
 
Merci Nabla's pour ta réponse mais cela ne fonctionne pas. Pourtant, au premier abord, je pensais que ça aurait pu marcher moi aussi.

Exemple 1 :
trafic messagerie Lotus
IP src: 10.1.x.y/16
IP dest : 10.66.x.y/16
Port src : 1352 (lotus note)
Port dest : 4292
flag : 0x18 (PSH, ACK)

Exemple 2 :
trafic pc-anywhere
IP src: 10.1.x.y/16
IP dest : 10.122.x.y/16
Port src : 3842
Port dest : 5631 (pcanywheredata)
flag : 0x18 (PSH, ACK)

Dans les 2 exemples, les paquets ont le même flag et pourtant, sur l'un, il faut prendre le port source et sur l'autre, le port destination. A rien y comprendre !!!

J'ai cherché dans les autres flags mais pour l'instant, je n'ai rien trouvé. Si tu, ou quelqu'un d'autre, a une idée, je suis toujours preneur.

merci
0
Nabla's Messages postés 20731 Statut Contributeur 3 194
 
les packets que tu me signal sont des paquets de "milieu de trame" (PSH, ACK)

lors de la conenxion, il y a échange de "Syn" https://fr.wikipedia.org/wiki/Transmission_Control_Protocol#.C3.89tablissement_d.27une_connexion
je pense que tu ne regardes pas la bonne chose
0
brupala Messages postés 115288 Date d'inscription   Statut Membre Dernière intervention   14 255
 
Salut,
c'est simple en cas de connexion client-serveur, il faut prendre le port destination sur le client et le port source sur le serveur pour connaitre l' application .
en cas de P2P c'est plus aléatoire car les deux sont serveur de quelqu'un d'autre .
0