Articles

Inleiding tot`ngrep’

met het *Nix utility program ngrep kunt u netwerkpakketten zoeken en filteren. Net als de bekende grep tool stelt gebruikers in staat om tekst te zoeken in bestanden en stdin/stdout, ngrep voert soortgelijke taken uit tegen de netwerkinterface van het besturingssysteem. In de woorden van haar manpages, ngrep

currently recognizes TCP, UDP and ICMP across Ethernet, PPP, SLIP, FDD and null interfaces, and understands bpf filter logic in the same fashion as more common packet sniffing tools, such as tcpdump(8) and snoop(1)

voer gewoon ngrep een reguliere expressie, en optioneel een protocol, interface en BPF filter, en u kunt live netwerkpakketten afdrukken naar stdout, de inhoud omleiden (>) naar een bestand, of pipe (|) naar een ander hulpprogramma. Hier zijn enkele voorbeelden:

installatie

ngrep is bedoeld om te worden gebruikt naast uw standaard * nix commandoregel tooling. De meeste pakketrepositories zijn dus voldoende up-to-date.

op MacOS, gebruik homebrew:
brew install ngrep

op Debian gebaseerde systemen (bijv. Ubuntu), gebruik aptitude:
apt-get install ngrep

op CentOS, gebruik yum:
yum install ngrep

basis gebruik

  • ngrep -q 'HTTP'

dit commando zal alle interfaces en protocollen opvragen voor een string match van 'HTTP'. De -q vlag zal de uitvoer’ stil ‘ maken door alleen pakketkoppen en relevante payloads af te drukken. Meestal is het het beste om ‘stille’ uitvoer te gebruiken; anders kunt u net zo goed tcpdump gebruiken om alles vast te leggen. Ik zal -q gebruiken in alle onderstaande voorbeelden, zodat niemand uit dit artikel knipt en plakt en overspoeld wordt met te veel gegevens.

tijdstempels toevoegen

  • ngrep -qt 'HTTP'

gebruik de vlag t om een tijdstempel samen met de overeenkomende informatie af te drukken. Gebruik T om de verstreken tijd af te drukken tussen opeenvolgende overeenkomsten.

lezen van pcap

  • ngrep -I network_capture.pcap -qt 'HTTP'

als u een netwerk capture bestand in .pcap formaat hebt, gebruik dan -I $FILE om de capture te filteren in plaats van een netwerkinterface. Dit kan bijvoorbeeld handig zijn als u een record van een netwerkevenement hebt en u een snelle analyse moet uitvoeren zonder alle toeters en bellen van wireshark.

schrijven naar pcap

  • ngrep -O network_capture.pcap -q 'HTTP'

omgekeerd van het bovenstaande commando, waarbij alleen de -O vlag wordt gebruikt, filtert tegen een netwerkinterface en kopieert de overeenkomende pakketten naar een capture bestand in .pcap formaat.

lezen met naamregel

  • ngrep -q -Wbyline 'HTTP'

Linefeeds worden afgedrukt als linefeeds, waardoor de uitvoer mooi en leesbaarder is.

gemeenschappelijke BPF-filters

een bpf specificeert een rijke syntaxis voor het filteren van netwerkpakketten op basis van informatie zoals IP-adres, IP-protocol en poortnummer.

IP-adres

  • ngrep -q 'HTTP' 'host 192.168' komt overeen met alle koppen met de tekenreeks 'HTTP' verzonden naar of vanaf het ip-adres beginnend met 192.168
  • ngrep -q 'HTTP' 'dst host 192.168' zal doen als hierboven, maar in plaats daarvan overeenkomen met een bestemming host
  • ngrep -q 'HTTP' 'src host 192.168' zal ik doen als hierboven, maar in plaats daarvan overeenkomen met een bron host

IP-protocol

  • ngrep -q 'HTTP' 'tcp'
  • ngrep -q 'HTTP' 'udp'
  • ngrep -q 'HTTP' 'icmp'

poortnummer

  • ngrep -q 'HTTP' 'port 80'

Pretty cool! Er zijn veel primitieven beschikbaar, maar ik hoef alleen deze drie te gebruiken. U kunt primitieven combineren met Booleaanse connectoren and, or en not om echt te specificeren wat uw grepping is.

samenvatting

ngrep is een handig hulpprogramma dat zoeken op netwerkinterfaces of captures mogelijk maakt. Iedereen die bekend is met grep, tcpdump of wireshark zal het zeer waardevol vinden voor snelle netwerkanalyses.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.