
ngrep é como o GNU grep aplicado à camada de rede. É uma ferramenta baseada em PCAP que permite especificar uma expressão regular estendida ou hexadecimal para corresponder aos payloads de dados dos pacotes. Entende muitos tipos de protocolos, incluindo IPv4/6, TCP, UDP, ICMPv4/6, IGMP e Raw, em uma ampla variedade de tipos de interface, e entende a lógica de filtro BPF da mesma forma que ferramentas de sniffing de pacotes mais comuns, como tcpdump e snoop.
ngrep é como o GNU grep aplicado à camada de rede. É uma ferramenta baseada em PCAP que permite especificar uma expressão regular estendida ou hexadecimal para corresponder aos payloads de dados dos pacotes. Ela entende muitos tipos de protocolos, incluindo IPv4/6, TCP, UDP, ICMPv4/6, IGMP e Raw, através de uma grande variedade de tipos de interface, e entende a lógica de filtro BPF da mesma forma que ferramentas de sniffing de pacotes mais comuns, como tcpdump e snoop.
-r)-u é especificadoDLT_ dentro do libpcap (por exemplo, DLT_LINUX_SLL)pcap_lookupdev)./configure --disable-tcpkill-d agora permite nome de dispositivo (exemplo: \Device\...)delay_socket em favor de Sleep()build.ps1)A maneira mais fácil de executar o ngrep é 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
Consulte DOCKER para instruções detalhadas de uso do Docker.
Baixe binários pré-compilados da página de Releases.
Consulte INSTALL para instruções de compilação.
ngrep foi originalmente desenvolvido para:
Além disso, pode ser usado para coleta de credenciais em texto simples, como na Autenticação Básica HTTP, autenticação FTP ou POP3. Como todas as ferramentas úteis, pode ser usado para o bem e para o mal.
Visite EXAMPLES para saber mais sobre como o ngrep funciona e pode ser aproveitado para ver todos os tipos de coisas interessantes.
ngrep foi portado extensivamente para uma infinidade de plataformas, mas com o tempo o acesso a elas diminuiu. A lista abaixo é a lista original; para uma lista atual de plataformas confirmadas em funcionamento, consulte nossos autobuilds, que inclui os sistemas operacionais mais populares, toolchains de compiladores e arquiteturas de CPU.
Se você precisar de ajuda, tiver feedback construtivo ou quiser enviar um patch, visite o projeto ngrep no GitHub e use as ferramentas online lá. Isso ajudará o autor a gerenciar melhor os vários pedidos e patches, para que nada seja perdido ou esquecido (como infelizmente aconteceu no passado).
Por favor, veja CREDITS para uma lista parcial das muitas pessoas que ajudaram a tornar o ngrep o que é hoje. Além disso, por favor, observe que o ngrep é lançado sob uma licença simples do tipo BSD, embora dependendo de qual biblioteca regex você compila, você obterá a GPL (GNU regex) ou BSD (PCRE2).
Ao longo das décadas (!), o ngrep foi incluído de fato em muitas distribuições populares, várias das quais têm mantenedores de pacotes dedicados. Muitos deles lidaram utilmente com problemas relatados por usuários de suas distribuições, e até criaram patches para o ngrep — mas raramente sou informado. De alguns em alguns anos, tenho que caçar quais relatórios de bugs e patches podem existir, em sistemas de rastreamento muitas vezes obscuros específicos de fornecedores, para que eu possa incorporá-los em benefício de todos. E às vezes não encontro todos.
Se você é mantenedor de pacotes para um SO ou distribuição, e se vê lidando com um relatório de bug ou escrevendo um patch para o ngrep, por favor, CC-me no mínimo para que eu possa rastrear (e possivelmente resolver) o problema. Idealmente, envie-me um link para um patch ou pull request para que eu possa revisá-lo e incorporá-lo.
Do meu ponto de vista, no final do dia é meu código, então é minha responsabilidade, mas não posso estar em todos os lugares para ver tudo. Preciso da sua ajuda para fazer um bom trabalho.
Obrigado, sinceramente, por tudo o que você fez, e por tudo o que fará. 🙏