Partage
  • Partager sur Facebook
  • Partager sur Twitter

C# Packet Sniffer

Sujet résolu
    3 février 2022 à 20:24:05

    Bonsoir,

    Mon école m'a donnée à faire un sniffer, je me suis pas mal renseigné en regardant des questions posées sur des forums et des codes sur github et je suis bloqué ici :

    Une manière simple de sniffer UNE ip est ce bout de code :

    Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
    s.Bind(new IPEndPoint(IPAddress.Parse("<IP Address Here of NIC to sniff>"), 0));
    s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, 1);
    byte[] inBytes = new byte[] { 1, 0, 0, 0 };
    byte[] outBytes = new byte[] { 0, 0, 0, 0 };
    s.IOControl(IOControlCode.ReceiveAll, inBytes, outBytes);

    Le problème c'est que je dois sniffer toutes les ip en même temps et non une a une. Donc à part ouvrir des threads (ce qui peut vite devenir complexe si un grand nombre d'ip est présente sur le réseau) je ne vois pas quoi faire.

    Quelqu'un a une idée de comment améliorer ça ?

    merci beaucoup pour vos retour.

    • Partager sur Facebook
    • Partager sur Twitter
      7 février 2022 à 16:16:46

      Je suis assez septique sur votre "approche".

      Je ne sais pas ce que vous nommez "sniffer", car pour moi, ce n'est pas au niveau 3 de l'OSI (packet IP) que cela intervient mais plus en amont, en activant le mode "promiscuous" des cartes Ethernet.

      cf. la réponse mentionnant WinPcap dans le file de Q&A suivant :

      https://stackoverflow.com/questions/2753743/socket-receiveall

      Mais peut-être que votre "définition" de sniffer est plus proche de seule de l'article suivant :

      https://www.codeproject.com/Articles/17031/A-Network-Sniffer-in-C

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        8 février 2022 à 9:32:10

        bacelar a écrit:

        Je suis assez septique sur votre "approche".

        Je ne sais pas ce que vous nommez "sniffer", car pour moi, ce n'est pas au niveau 3 de l'OSI (packet IP) que cela intervient mais plus en amont, en activant le mode "promiscuous" des cartes Ethernet.

        cf. la réponse mentionnant WinPcap dans le file de Q&A suivant :

        https://stackoverflow.com/questions/2753743/socket-receiveall

        Mais peut-être que votre "définition" de sniffer est plus proche de seule de l'article suivant :

        https://www.codeproject.com/Articles/17031/A-Network-Sniffer-in-C


        Bonjour,

        Dans sniffer j'entend intercepter et lire les communications du réseau.

        Je ne vois pas trop le différence entre les 2 liens que vous avez envoyé, ils utilisent le même code non ?

        Merci

        -
        Edité par dot_point 8 février 2022 à 9:35:16

        • Partager sur Facebook
        • Partager sur Twitter
          8 février 2022 à 15:06:32

          >ils utilisent le même code non ?

          Non, la même API, mais les explications et le contexte sont différents.

          Et encore, il y a plein de réponses dans code qui méritent bien plus d'attention de votre part.

          Et avec ces explications et contextes etc..., vous devriez affiner votre question.

          >Dans sniffer j'entend intercepter et lire les communications du réseau.

          C'est toujours très vague. Vous devez rester passif, ou forcer des attaques par "Man In the Middle", etc... ?

          Si vous ne pouvez pas expliquer le besoin initial, c'est normal que vous tourniez en rond.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            8 février 2022 à 18:30:50

            bacelar a écrit:

            >ils utilisent le même code non ?

            Non, la même API, mais les explications et le contexte sont différents.

            Et encore, il y a plein de réponses dans code qui méritent bien plus d'attention de votre part.

            Et avec ces explications et contextes etc..., vous devriez affiner votre question.

            >Dans sniffer j'entend intercepter et lire les communications du réseau.

            C'est toujours très vague. Vous devez rester passif, ou forcer des attaques par "Man In the Middle", etc... ?

            Si vous ne pouvez pas expliquer le besoin initial, c'est normal que vous tourniez en rond.


            Ok je vois, dans ce cas je veux rester passif. Juste regarder les communication comme Wireshark peut le faire.

            Merci

            • Partager sur Facebook
            • Partager sur Twitter
              8 février 2022 à 19:13:42

              Wireshark utilise WinPcap, ou un équivalent  maintenant, pour mettre les interfaces réseaux de niveau 2 de l'OSI en mode "promiscuous" des cartes Ethernet, etc...

              Wireshark n'est pas au niveau packet IP (niveau 3 de l'OSI), il intercepte le flux dés le niveau 2 de l'OSI, et en le "twinkant" pour choper tout ce qui traîne sur le file compatible avec le protocole IEEE 802.x (et il se fait niquer par les switch filtrant).

              Donc, on recommence, pourquoi ne pas utiliser WinPcap ou un équivalent ? Pourquoi ne pas utiliser un produit tout fait (c'est pas les sniffers réseau qui manquent) ? etc

              En un mot, spécifiez correctement votre besoin.

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                8 février 2022 à 21:29:27

                bacelar a écrit:

                Wireshark utilise WinPcap, ou un équivalent  maintenant, pour mettre les interfaces réseaux de niveau 2 de l'OSI en mode "promiscuous" des cartes Ethernet, etc...

                Wireshark n'est pas au niveau packet IP (niveau 3 de l'OSI), il intercepte le flux dés le niveau 2 de l'OSI, et en le "twinkant" pour choper tout ce qui traîne sur le file compatible avec le protocole IEEE 802.x (et il se fait niquer par les switch filtrant).

                Donc, on recommence, pourquoi ne pas utiliser WinPcap ou un équivalent ? Pourquoi ne pas utiliser un produit tout fait (c'est pas les sniffers réseau qui manquent) ? etc

                En un mot, spécifiez correctement votre besoin.

                "Donc, on recommence, pourquoi ne pas utiliser WinPcap ou un équivalent ? Pourquoi ne pas utiliser un produit tout fait (c'est pas les sniffers réseau qui manquent) ? etc"

                Je dois réalisé un sniffer réseau pour un projet de mon école d'ingénieur (mon programme doit être en C#), en effet je ne connaissais pas la différence entre WinPcap  et le packet ip (niveau 2 et 3), merci pour ces infos c'est très intéressant.

                En un mot je veux voir le trafic de mon réseau. Apres je n'ai aucune idée si je dois passer par le niveau 2 ou 3, j'espère que vous avez la réponse.

                Merci beaucoup a vous.

                -
                Edité par dot_point 8 février 2022 à 21:30:54

                • Partager sur Facebook
                • Partager sur Twitter
                  8 février 2022 à 23:03:28

                  Comme d'hab, sujet de projet d'étude aux contours très mal définis, vraisemblablement pour vous forcer à réfléchir un peu avant de pisser du code.

                  Mais il y a aussi très souvent le fait que l'étudiant ne comprennent pas le sujet et en font donc un condensé qui n'a pas de sens (ou pas le sens que le prof. a énoncé).

                  >(mon programme doit être en C#)

                  Ca c'est une contrainte à la con parce que votre prof. ne veut pas se casser le cul à comprendre un ou plusieurs autres langages, car c'est clairement pas un choix "judicieux" (possibilité de framework spécialisées dans ce domaine bien plus réduits, s'ils existent, le C aurait été bien plus naturel comme choix).

                  Vous n'avez toujours pas fait l'effort d'analyser ce que votre prof. cherche à évaluer avec cet "exercice". C'est un non-dit, mais c'est primordial pour "comprendre" le sujet. Je ne connais pas votre prof., ni le continu, les objectifs et les attendus de votre formation, contrairement à vous.

                  Donc, soit vous avez bien résumé votre projet, et il faut vous posez les bonnes questions (que votre prof. cherche à ce que vous vous posiez, donc souvent faire un peu de recherche sur le sujet, vous êtes plus au collège devant un feuille d'exercice de math où il faut appliquer la méthode du prof.).

                  Soit il y a des informations "essentielles" que vous nous communiquez pas.

                  Des questions comme "c'est quoi 'mon réseau' ?" (sa nature, son périmètre, etc...) doivent être éclaircis, etc...

                  Un sniffer réseau pour administrateur réseau avec sonde de détection d'intrusion et un sniffer réseau pour hacker avec détection de vulnérabilités, ça porte ne même nom, ça fait de la capture de trafic réseaux, mais dans les faits, ça n'a rien à voir.

                  Si vous ne connaissez pas le modèle ISO de l'OSI, bin, vous avez appris quoi dans vos cours de réseaux ???

                  Si vous n'avez pas eu de cours de réseaux, c'est vraisemblablement que votre prof. pense que vous êtes assez autonome pour vous documentez sur le sujet, avant de pisser du code.

                  Il y a du trafic dans vos "câbles" qui ne sont pas IP (DHCP, ICMP, etc...), vous en faites quoi ? (Wireshark, lui, il analyse tous et s'en donne les moyens)

                  WinPcap a une API C, donc appelable par tout et n'importe quoi, donc aussi du C#, mais c'est pas le plus simple.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                    9 février 2022 à 9:22:23

                    bacelar a écrit:

                    Comme d'hab, sujet de projet d'étude aux contours très mal définis, vraisemblablement pour vous forcer à réfléchir un peu avant de pisser du code.

                    Mais il y a aussi très souvent le fait que l'étudiant ne comprennent pas le sujet et en font donc un condensé qui n'a pas de sens (ou pas le sens que le prof. a énoncé).

                    >(mon programme doit être en C#)

                    Ca c'est une contrainte à la con parce que votre prof. ne veut pas se casser le cul à comprendre un ou plusieurs autres langages, car c'est clairement pas un choix "judicieux" (possibilité de framework spécialisées dans ce domaine bien plus réduits, s'ils existent, le C aurait été bien plus naturel comme choix).

                    Vous n'avez toujours pas fait l'effort d'analyser ce que votre prof. cherche à évaluer avec cet "exercice". C'est un non-dit, mais c'est primordial pour "comprendre" le sujet. Je ne connais pas votre prof., ni le continu, les objectifs et les attendus de votre formation, contrairement à vous.

                    Donc, soit vous avez bien résumé votre projet, et il faut vous posez les bonnes questions (que votre prof. cherche à ce que vous vous posiez, donc souvent faire un peu de recherche sur le sujet, vous êtes plus au collège devant un feuille d'exercice de math où il faut appliquer la méthode du prof.).

                    Soit il y a des informations "essentielles" que vous nous communiquez pas.

                    Des questions comme "c'est quoi 'mon réseau' ?" (sa nature, son périmètre, etc...) doivent être éclaircis, etc...

                    Un sniffer réseau pour administrateur réseau avec sonde de détection d'intrusion et un sniffer réseau pour hacker avec détection de vulnérabilités, ça porte ne même nom, ça fait de la capture de trafic réseaux, mais dans les faits, ça n'a rien à voir.

                    Si vous ne connaissez pas le modèle ISO de l'OSI, bin, vous avez appris quoi dans vos cours de réseaux ???

                    Si vous n'avez pas eu de cours de réseaux, c'est vraisemblablement que votre prof. pense que vous êtes assez autonome pour vous documentez sur le sujet, avant de pisser du code.

                    Il y a du trafic dans vos "câbles" qui ne sont pas IP (DHCP, ICMP, etc...), vous en faites quoi ? (Wireshark, lui, il analyse tous et s'en donne les moyens)

                    WinPcap a une API C, donc appelable par tout et n'importe quoi, donc aussi du C#, mais c'est pas le plus simple.


                    Bonjour, merci encore pour cette réponse complète. Concernant les cours réseaux je n'en ai pas eu, nous devons réaliser un projet en partant de 0 ( et le prof ne peut pas me renseigner). 

                    "Un sniffer réseau pour administrateur réseau avec sonde de détection d'intrusion et un sniffer réseau pour hacker avec détection de vulnérabilités"

                    Je ne savais même pas qu'il était possible de coder une sonde de détection d'intrusion   mais cela à l'air très intéressant et je pourrais peut être le rajouter dans le projet. Je pense que mon idée du projet est plus proche de la détection de vulnérabilité bien que ce ne soit pas du tout le but. Mon but illustré d'un exemple : Un père veut surveiller ou va son fils sur le net, il regarde donc avec quoi l'ip de son fils communique.

                    J'espère que c'est plus clair.

                    Merci et bonne journée.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 février 2022 à 10:48:06

                      Heu, je suis un peu casse-couille mais un sniffer réseau n'est vraiment pas le bon outil pour de la "surveillance", la cible utilise un VPN à 2 balles et c'est cuit.

                      Si vous ne connaissez pas du tout les réseaux, je vous conseille déjà de lire un cours qui présente les différents types d'architecture réseau et le standard OSI ; et de la faire "à la chinoise", vous trouvez un logiciel qui fait bien son taf, et vous essayez de faire pareil. Ainsi, vous ferez un truc faisable (mais peut être pas facilement par vous) plutôt que de penser à un truc qui n'est en faite pas réaliste.

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                        9 février 2022 à 18:54:28

                        bacelar a écrit:

                        Heu, je suis un peu casse-couille mais un sniffer réseau n'est vraiment pas le bon outil pour de la "surveillance", la cible utilise un VPN à 2 balles et c'est cuit.

                        Si vous ne connaissez pas du tout les réseaux, je vous conseille déjà de lire un cours qui présente les différents types d'architecture réseau et le standard OSI ; et de la faire "à la chinoise", vous trouvez un logiciel qui fait bien son taf, et vous essayez de faire pareil. Ainsi, vous ferez un truc faisable (mais peut être pas facilement par vous) plutôt que de penser à un truc qui n'est en faite pas réaliste.


                        "la cible utilise un VPN à 2 balles et c'est cuit." que conseillez vous pour éviter ce problème ? et oui je compte faire a la chinoise ^^

                        merci

                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 février 2022 à 10:39:18

                          >que conseillez vous pour éviter ce problème ?

                          Bin, à la chinoise, c'est quoi les outils de "surveillance" sur le marché ?

                          Des composants qu'on installe dans l'OS, quand l'OS n'a pas tout ce qu'il faut.

                          S'il a tout ce qu'il faut, faut juste le configurer correctement pour ses besoins.

                          Moi, on me propose ce projet pour Windows, je demande à ce que NetworkMonitor (de M$) fasse partie du Master, je fais un script de configuration pour qu'il déclenche des compteurs de performance qui vont bien et je fais en sorte que ces compteurs soient visible dans l'interface de monitoring des administrateurs (via SNMP probablement). Donc quasiment pas de développement et je me fais de couilles en or pour la prestation (à 2 balles).

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                            10 février 2022 à 19:21:35

                            bacelar a écrit:

                            >que conseillez vous pour éviter ce problème ?

                            Bin, à la chinoise, c'est quoi les outils de "surveillance" sur le marché ?

                            Des composants qu'on installe dans l'OS, quand l'OS n'a pas tout ce qu'il faut.

                            S'il a tout ce qu'il faut, faut juste le configurer correctement pour ses besoins.

                            Moi, on me propose ce projet pour Windows, je demande à ce que NetworkMonitor (de M$) fasse partie du Master, je fais un script de configuration pour qu'il déclenche des compteurs de performance qui vont bien et je fais en sorte que ces compteurs soient visible dans l'interface de monitoring des administrateurs (via SNMP probablement). Donc quasiment pas de développement et je me fais de couilles en or pour la prestation (à 2 balles).

                            >je demande à ce que NetworkMonitor (de M$) fasse partie du Master

                            pouvez vous développé je ne comprends ce qu'es un "Master" (désolé je découvre le domaine)

                            je fais un script de configuration pour qu'il déclenche des compteurs de performance qui vont bien et je fais en sorte que ces compteurs soient visible dans l'interface de monitoring des administrateurs (via SNMP probablement)

                            Ici aussi, qu'est ce qu'un compteurs de performance,

                            Merci encore pour le temps que vous consacrez a mes questions.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              10 février 2022 à 19:44:42

                              Un "Master", c'est comme un master dans la musique.

                              C'est une image d'installation d'un OS qui sera installé sur tout ou partie des machines de l'entreprise.

                              NetworkMonitor est un sniffer réseau fourni par M$ et donc facilement intégrable à un master.

                               >Ici aussi, qu'est ce qu'un compteurs de performance,

                              https://docs.microsoft.com/fr-fr/windows-server/remote/remote-desktop-services/rds-rdsh-performance-counters

                              • Partager sur Facebook
                              • Partager sur Twitter
                              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

                              C# Packet Sniffer

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown