SNIFFER TCP AVEC LES RAW SOCKETS

cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014 - 25 janv. 2008 à 20:13
 mescouilles - 13 août 2015 à 16:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45517-sniffer-tcp-avec-les-raw-sockets

il sniff IP et TCP, ping = ICMP ...
phen0x Messages postés 1 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 25 août 2011
25 août 2011 à 00:05
Perso chez moi ça n'intercepte pas tous les paquets sortants. Seulement les broadcast, si je fais un "ping diskstation" par exemple.
Une idée pourquoi?
RadTCP Messages postés 3 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 20 mai 2011
20 mai 2011 à 14:57
Salut !
Actuellement, je vais développer un proxy TCP qui intercepte les paquets TCP provenant de la couche Transport et les mets dans un cache pour les retransmettre par la suite en cas de perte ou altération. Pour le faire, je me demande est ce que je pourrais utiliser ce code pour le cas de mon programme car je ne sais vraiment pas par ou commencer? est ce que quelqu'un peut me diriger sur ça SVP?
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
26 août 2008 à 13:13
Bon c vrais on peut récupéré les trames émises aussi je confond :p

c'est dans le cas de génération de trames qu'il faut utiliser un driver :p

bonne journée :)
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
26 août 2008 à 12:54
bonjours,

bon bah un test tout simple on capture le réseau, et essayez de vous connectez a une page web.

voyez vous la requête GET de votre machine ?
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
26 août 2008 à 02:20
Aucun problème a sniffer ses propre packet entrant/sortant ... L'histoire du hub c'est seulement avec le mode promiscious que c'est vrai pour écouter les packets adressés aux autre machines du réseau ...
lilxam7 Messages postés 12 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 3 février 2008
25 août 2008 à 18:14
En es-tu sur ? Je ne vois pas pourquoi ils ne seraient pas visible.
J'ai loggé une session de 'sniff' et j'ai bien trouvé un paquet qui ressemble à une emission :

--------| Nouveau Packet |--------
[+]IP Source : 192.168.0.10 : 2809
[+]IP Destination : 72.14.221.191:80 : 80
[+]IP Version : 4 -> 0x4
[+]IP Checksum : 22113 -> 0x5661
[+]Protocol : 6 -> 0x6

-----* Donnees *-----

GET /2008/01/sniffer-tcp-with-raw-sockets.html HTTP/1.1

Host: lilxam.blogspot.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Cookie: __utma=195000368.766002268.1214856601.1219616479.1219679941.64; __utmz=195000368.1217256789.29.2.utmccn=(organic)|utmcsr=google|utmctr=PROCESSINFOCLASS|utmcmd=organic; __utmb=195000368.4.10.1219679941; __utmc=195000368

If-Modified-Since: Tue, 22 Jul 2008 14:50:07 GMT

If-None-Match: "857886ad-50f6-45c1-b291-9bbf0983ae0f"

Cache-Control: max-age=0

[...]
------------------------------

On vois bien l'ip source (192.168.0.10) qui est la mienne. Donc voilà est-ce que tu pourrais expliquer ce qui te fais dire ça ?
Merci.
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
25 août 2008 à 17:47
bonsoir,

et bien non ce n'est pas vrais les paquets émis ne sont pas visibles en raw soket, à mois d'avoir un hub (concentrateur) sur le réseau qui réemet tous les paquets.

il faut soi créer son propre drivers avec un hook sur le soket soi avec lib pcap pas d'autres alternatives.

bon codage
lilxam7 Messages postés 12 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 3 février 2008
25 août 2008 à 10:02
Et bien cette source permet de récupérer les paquets reçus et émis. Les paquets émis auront ton ip en 'IP Source' tout comme les paquets reçus ont ton ip en 'IP Destination'. La récupération de l'ip de l'expéditeur se fait ici :

# sprintf(ip,"%s:%d",inet_ntoa(*(struct in_addr *)&HeaderIP->Source), portS);
# printf("\n [+]IP Source : %s",ip);

Voilà j'espère avoir été clair.
Kian_ix Messages postés 26 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 5 avril 2009
24 août 2008 à 22:39
yop yop
je cherche un moyen de récupérer les paquets ip émis par le systeme (pas seulement recus)
y'a-t-il un moyen autre qu'avec winpcap ? (plutot du genre de cette source)
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
29 juin 2008 à 12:33
Salut,

il faut être administrateur pour utiliser les raw socket !
lilxam7 Messages postés 12 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 3 février 2008
28 juin 2008 à 20:48
Tu peux te référer ici : http://msdn.microsoft.com/en-us/library/ms740668(VS.85).aspx

Apparemment c'est un problème de permission, regarde si tu ne reconnais pas sur ton système quelque chose qui correspondrait à ce qui est écrit en remarque.
ryder0007 Messages postés 6 Date d'inscription mercredi 13 décembre 2006 Statut Membre Dernière intervention 8 mars 2011
26 juin 2008 à 14:09
Le code d'erreur est 10013.
lilxam7 Messages postés 12 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 3 février 2008
26 juin 2008 à 09:57
Et quel est le code d'erreur ?
ryder0007 Messages postés 6 Date d'inscription mercredi 13 décembre 2006 Statut Membre Dernière intervention 8 mars 2011
25 juin 2008 à 15:40
Chez moi ca marche pas a chaque fois il me dit qu'il y a une erreur avec bind
lilxam7 Messages postés 12 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 3 février 2008
15 mai 2008 à 10:01
Es-tu sur que c'est la bonne ip ? As-tu un message d'erreur ?
Kian_ix Messages postés 26 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 5 avril 2009
15 mai 2008 à 04:33
ca ne sniff aucun packet chez moi alors que je sais qu'il en transite plein, meme apres avoir entré la bonne ip...
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
26 janv. 2008 à 14:57
Ouai boff,

il y a déja plein de source de ce genre sur le site.
et intenet.

Il manque pleins de contrôles de retours ...

franchement je vois pas trop ce que cette source apporte?

bon codage et bonne continuation
lilxam7 Messages postés 12 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 3 février 2008
25 janv. 2008 à 20:19
Oups oui voilà j'ai corrigé.
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
25 janv. 2008 à 20:13
printf("\n[!]Ecoute impossible.\n--- Erreur avec bind() : %d\n\n", WSAGetLastError());

remplace %s par %d pour évider un crash monumental. Sinon sa l'air de bien marcher :D
Rejoignez-nous