
ngrep is like GNU grep applied to the network layer. It's a PCAP-based tool that allows you to specify an extended regular or hexadecimal expression to match against data payloads of packets. It understands many kinds of protocols, including IPv4/6, TCP, UDP, ICMPv4/6, IGMP and Raw, across a wide variety of interface types, and understands BPF filter logic in the same fashion as more common packet sniffing tools, such as tcpdump and snoop.
ngrep est comme GNU grep appliqué à la couche réseau. C'est un outil basé sur PCAP qui vous permet de spécifier une expression régulière étendue ou hexadécimale à rechercher dans les données utiles des paquets. Il comprend de nombreux types de protocoles, notamment IPv4/6, TCP, UDP, ICMPv4/6, IGMP et Raw, sur une grande variété de types d'interfaces, et comprend la logique de filtre BPF de la même manière que les outils d'écoute réseau plus courants, tels que tcpdump et snoop.
-r)-u est spécifiéDLT_ BPF dans libpcap (par exemple DLT_LINUX_SLL)pcap_lookupdev)./configure --disable-tcpkill-d accepte désormais les noms de périphériques (par exemple \Device\...)delay_socket au profit de Sleep()build.ps1)Le moyen le plus simple d'exécuter ngrep est via Docker :
docker pull ghcr.io/jpr5/ngrep:latest
docker run --rm --net=host --cap-add=NET_RAW ghcr.io/jpr5/ngrep:latest -q 'GET|POST' tcp port 80
Voir DOCKER pour des instructions d'utilisation détaillées de Docker.
Téléchargez les binaires pré-compilés depuis la page des Releases.
Voir INSTALL pour les instructions de compilation.
ngrep a été initialement développé pour :
Il peut également être utilisé pour la collecte d'identifiants en texte clair, comme avec l'authentification HTTP Basic, FTP ou POP3. Comme tous les outils utiles, il peut être utilisé à bon ou à mauvais escient.
Consultez EXAMPLES pour en savoir plus sur le fonctionnement de ngrep et comment l'exploiter pour voir toutes sortes de choses intéressantes.
ngrep a été largement porté sur de nombreuses plateformes, mais avec le temps l'accès à certaines a diminué. La liste ci-dessous est la liste d'origine ; pour une liste actuelle des plateformes confirmées, voir nos autobuilds, qui incluent les systèmes d'exploitation, chaînes de compilation et architectures CPU les plus populaires.
Si vous avez besoin d'aide, de retours constructifs, ou si vous souhaitez soumettre un correctif, veuillez visiter le projet ngrep sur GitHub et utiliser les outils en ligne mis à disposition. Cela aidera l'auteur à mieux gérer les différentes demandes et correctifs afin que rien ne soit perdu ou oublié (comme cela a malheureusement été le cas par le passé).
Veuillez consulter CREDITS pour une liste partielle des nombreuses personnes qui ont contribué à faire de ngrep ce qu'il est aujourd'hui. Veuillez également noter que ngrep est distribué sous une simple licence de type BSD, bien que selon la bibliothèque d'expressions régulières avec laquelle vous le compilez, vous obteniez soit la GPL (GNU regex) soit la BSD (PCRE2).
Au fil des décennies (!), ngrep a été inclus de facto dans de nombreuses distributions populaires, dont plusieurs ont des mainteneurs de paquets dédiés. Beaucoup d'entre eux ont utilement traité des problèmes signalés par les utilisateurs de leurs distributions, et ont même créé des correctifs pour ngrep — mais j'en suis rarement informé. Tous les quelques années, je dois traquer les rapports de bogues et les correctifs qui peuvent exister, souvent dans des systèmes de suivi obscurs propres aux fournisseurs, afin de pouvoir les intégrer pour le bien de tous. Et parfois, je ne les trouve pas tous.
Si vous êtes un mainteneur de paquets pour un système d'exploitation ou une distribution, et que vous vous retrouvez à traiter un rapport de bogue ou à écrire un correctif pour ngrep, veuillez au minimum me mettre en copie (CC) afin que je puisse suivre (et éventuellement résoudre) le problème. Idéalement, envoyez-moi un lien vers un correctif ou une pull request pour que je puisse le réviser et le fusionner.
De mon point de vue, en fin de compte, c'est mon code, donc c'est ma responsabilité, mais je ne peux pas être partout pour tout voir. J'ai besoin de votre aide pour bien faire mon travail.
Merci sincèrement pour tout ce que vous avez fait et tout ce que vous ferez. 🙏