network grep

ngrep

ngrep strives to provide most of GNU grep’s common features, applying them to the network layer. ngrep is a pcap-aware tool that will allow you to specify extended regular or hexadecimal expressions to match against data payloads of packets.
usage: ngrep <-hNXViwqpevxlDtTRM> <-IO pcap_dump> <-n num> <-d dev> <-A num>
             <-s snaplen> <-S limitlen> <-W normal|byline|single|none> <-c cols>
             <-P char> <-F file> <match expression> <bpf filter>
   -h  is help/usage
   -V  is version information
   -q  is be quiet (don't print packet reception hash marks)
   -e  is show empty packets
   -i  is ignore case
   -v  is invert match
   -R  is don't do privilege revocation logic
   -x  is print in alternate hexdump format
   -X  is interpret match expression as hexadecimal
   -w  is word-regex (expression must match as a word)
   -p  is don't go into promiscuous mode
   -l  is make stdout line buffered
   -D  is replay pcap_dumps with their recorded time intervals
   -t  is print timestamp every time a packet is matched
   -T  is print delta timestamp every time a packet is matched
   -M  is don't do multi-line match (do single-line match instead)
   -I  is read packet stream from pcap format file pcap_dump
   -O  is dump matched packets in pcap format to pcap_dump
   -n  is look at only num packets
   -A  is dump num packets after a match
   -s  is set the bpf caplen
   -S  is set the limitlen on matched packets
   -W  is set the dump format (normal, byline, single, none)
   -c  is force the column width to the specified size
   -P  is set the non-printable display char to what is specified
   -F  is read the bpf filter from the specified file
   -N  is show sub protocol number
   -d  is use specified device instead of the pcap default
   -K  is kill matching TCP connections

Examples

ngrep -d any host 192.168.1.10
ngrep -d any port 8080
ngrep -d any host 192.168.1.10 and port 22
ngrep -d any id=\"1234567\" port 3456

ngrep -d1 -x PASS
ngrep -d1 -e -x PASS

ngrep -d1 -q "^GET .* HTTP/1.[01]" "host www.google.es"

ngrep -l -q -d eth0 udp and port 514

ngrep -q 'HTTP'

ngrep -d any -q “abcd” icmp

ngrep -d any -i -q “user-agent” tcp port 80 

More examples

List interfaces

ngrep -L

Syslog

ngrep -d any 'archiveServerUnreachable' port syslog
ngrep -d any 'error' port syslog

Looking case-insensitively words user or pass

ngrep -wi -d any 'user|pass' port 21

Byline mode used to see all headers and aspects of the HTTP transmission

ngrep -W byline port 80

Save a PCAP dump file

ngrep -O /tmp/dns.dump -d any -T port domain

Search in a pcap file

ngrep -w 'm'  -I /tmp/dns.dump

Observing binary being transferred, let’s assume we have a GIF on a web server that has the data pattern ``0xc5d5e5f55666768696a6b6c6d6e6’’

ngrep -xX '0xc5d5e5f55666768696a6b6c6d6e6' port 80