Was ist NGREP und wie man es benutzt??

Was ist NGREP und wie man es benutzt??
Auch wenn Tshark und TCPDump die beliebtesten Paket -Sniffing -Tools sind. NGREP ist ein weiteres Befehlszeilen-Nix-Dienstprogramm, das Netzwerkpakete analysiert und in einem bestimmten Regex-Muster nach ihnen sucht.

Das Dienstprogramm verwendet die PCAP- und GNU -Bibliothek, um Regex -String -Suche durchzuführen. NGREP steht für Network GREP, das dem regulären Grep -Dienstprogramm ähnelt. Der einzige Unterschied besteht.

In diesem Artikel erfahren wir über ein als NGREP bezeichneter Befehlszeilen-, Feature-reiches Dienstprogramm, das für die schnelle PCAP.

Einführung

NGREP bietet grepartige Funktionen für die dritte Ebene des OSI-Modells, dh dem Tool arbeitet mit IPv4/6, TCP, UDP, ICMPv4/6, IGMP-Protokollen. Daher erkennt das Dienstprogramm verschiedene Protokolle, erfasst Live -Verkehr und untersucht erfasste PCAP -Dateien. Der beste Vorteil des NGREP -Dienstprogramms ist, dass ein regulärer GREP -Benutzer sein Text -Parsing -Wissen in NGREP nutzen kann.

Einstieg

Aktualisieren Sie das Ubuntu-Repository und installieren Sie das NGREP-Dienstprogramm über das APT-Get-Paketverwaltungs-Tool:

Ubuntu@Ubuntu: ~ $ sudo Apt-Get-Update
Ubuntu@ubuntu: ~ $ sudo apt-Get Install nGrep

Das Tool erfordert sudo-privilegien, um tiefe Paketsprüfungsbefehle auszuführen. Während die allgemeine Werkzeugsyntax wie folgt ist:

Ubuntu@Ubuntu: ~ $ ngrep Muster/Ausdruck

Der Muster Sind die regulären Ausdrucksnutzer in einem Netzwerkpaket suchen. Der Filter Die Option gibt den Berkeley -Paketfilter (BPF) an, der eine Reihe von Schlüsselwörtern enthält, um Paketauswahlregeln anzugeben. Die Schlüsselwörter umfassen Protokoll, Quelle oder Zielhost und Ports usw.

Pakete erfassen

Keine Filteroption erfasst alle Pakete von der Standardschnittstelle, beispielsweise erfasst der folgende Befehl alle Netzwerkpakete von allen Schnittstellen.

Ubuntu@Ubuntu: ~ $ sudo ngrep

Um alle verfügbaren Schnittstellen aufzulisten, verwenden Sie den folgenden Befehl und drücken Sie mehrmals die Registerkarte, um alle Schnittstellen auszugeben:

Ubuntu@Ubuntu: ~ $ sudo ngrep -d [tab] [tab]
ENP0S3 LO

Grundnutzung

Die Ausgabe des obigen Befehls zeigt viele Paketdetails auf dem Terminal an. NGREP bietet eine ruhige Option „-Q“, die alle Schnittstellen und Protokolle für eine bestimmte Zeichenfolge abfragt, die Ausgabe beruhigt und nur Paket-Header-Details der relevanten Nutzlast druckt.

Ubuntu@Ubuntu: ~ $ sudo ngrep -q
[sudo] Passwort für Ubuntu:
Schnittstelle: ENP0S3 (10.0.2.0/255.255.255.0)
Filter: ((IP || IP6) || (VLAN && (IP || IP6)))
T 10.0.2.15: 35524 -> 142.250.180.46: 443 [AP] #1
… "7c.X] e.Nu… m.''.U… &… u.%z…
T 10.0.2.15: 35524 -> 142.250.180.46: 443 [AP] #2
… H… '.@AQ?ein.'K…
T 142.250.180.46: 443 -> 10.0.2.15: 35524 [a] #4

Der obige Befehl mit der Zeichenfolge 'HTTP' zeigt Pakete mit der durchsuchten Zeichenfolge an.

Ubuntu@Ubuntu: ~ $ sudo ngrep -q 'http'

Fügen Sie das T -Flag im obigen Befehl hinzu, um einen Zeitstempel mit den Übereinstimmungsinformationen in der Übereinstimmung zu drucken Yjyy/mm/dd hh: mm: ss.Uuuuuu Format. In ähnlicher Weise verwenden Sie die T Flag druckt verstrichene Zeit zwischen unmittelbaren Streichhölzern und Zeitstempeln in +s.UUUUUU -Format.

Ubuntu@Ubuntu: ~ $ sudo ngrep -qt 'http'
Ubuntu@Ubuntu: ~ $ sudo ngrep -qt 'http'
Schnittstelle: ENP0S3 (10.0.2.0/255.255.255.0)
Filter: ((IP || IP6) || (VLAN && (IP || IP6)))
Match: http
T +24.714768 10.0.2.15: 48096 -> 142.250.185.35:80 [AP] #1453
Post /GTS1O1CORE HTTP /1.1… Host: OCSP.pki.goog… user-Agent: Mozilla/5.0

Benutze die -W Option mit a BYLINE Fahnen Sie zum Drucken der Ausgabe in einem leicht verständlichen und lesbaren Format.

Ubuntu@Ubuntu: ~ $ sudo ngrep -q -wbylline 'http'
T 10.0.2.15: 48570 -> 142.250.185.35:80 [AP] #589
Post /GTS1O1CORE HTTP /1.1.
Host: OCSP.pki.goog.
Benutzer-Agent: Mozilla/5.0 (x11; Ubuntu; Linux x86_64; RV: 79.0) Gecko/20100101 Firefox/79.0.
Akzeptieren: */*.
Akzeptieren Sprache: en-us, en; q = 0.5.
Akzeptanzkodierung: Gzip, Deflate.
Inhaltstyp: Anwendung/OCSP-Request.
Inhaltslänge: 83.
Verbindung: Keep-Alive.

NGREP speichert den erfassten Netzwerkverkehr in einem PCAP -Format, das für eine tiefere Paketanalyse auf Wireshark hochgeladen werden kann. Verwenden Sie die Option -o, um die durchsuchte Ausgabe in eine PCAP -Datei zu schreiben:

Ubuntu@Ubuntu: ~ $ ngrep -o http_capture.pcap -qt 'http'

Wie bei jedem anderen Netzwerk -Schnüffel -Tools ermöglicht NGREP das Lesen gespeicherter Netzwerkverkehr, sodass die Option -QT dazu beiträgt, den erfassten Datenverkehr anstelle einer Schnittstelle zu filtern.

Ubuntu@Ubuntu: ~ $ ngrep -i http_capture.pcap -qt 'http'

BPF -Filter

BPF enthält eine reiche Syntax, um Pakete basierend auf IP -Adresse, Ports und Protokollen zu filtern. Die folgenden Befehle suchen den Datenverkehr für TCP- und UDP -Pakete:

Ubuntu@Ubuntu: ~ $ ngrep -W BYLINE 'HTTP' 'TCP'
Ubuntu@Ubuntu: ~ $ ngrep -W BYLINE 'HTTP' 'uDP'

Um alle Pakete auf der ENP0S3 -Schnittstelle für Port 80 zu filtern, führen Sie den folgenden Befehl aus:

Ubuntu@Ubuntu: ~ $ ngrep -d enp0S3 -W BYLINE Port 80

Verwenden Sie in ähnlicher Weise die angegebenen Befehle unten, um den Header mit der HTTP -String von Ziel- und Quellhost zu entsprechen:

Ubuntu@Ubuntu: ~ $ ngrep -q 'http' 'dst host 172.217 '
Ubuntu@Ubuntu: ~ $ ngrep -q 'http' SRC Host '10.0 '

Zuletzt entspricht der folgende Befehl mit einem Host -Filter alle Header aus dem „10).0.2 ”IP -Adresse.

Ubuntu@Ubuntu: ~ $ ngrep -q 'http' 'Host 10.0.2 '

String-basierte Netzwerkpaketsuche

Das NGREP-Dienstprogramm kann die oben genannten Befehle kombinieren, um TCP-Pakete auf Port 80 nach einer bestimmten Zeichenfolge von "Benutzer-Agent" zu durchsuchen.

Ubuntu@Ubuntu: ~ $ sudo ngrep -d enp0S3 -W BYLINE -i "Benutzer -Agent:" TCP und Port 80

Wo -ich Die Option ignoriert den Fall für den Regex -Ausdruck.

In ähnlicher Weise wird im folgenden Befehl alle Pakete auf Port 80 mit der Get- oder Post -Zeichenfolge angezeigt.

Ubuntu@Ubuntu: ~ sudo ngrep -d enp0s3 -i "^Get |^post" TCP und Port 80
Schnittstelle: ENP0S3 (10.0.2.0/255.255.255.0)
Filter: (TCP und Port 80) und (IP || IP6) || (VLAN && (IP || IP6)))
Match: ^Get | ^Post
#######
T 10.0.2.15: 59876 -> 34.122.121.32:80 [AP] #7
Get / http / 1.1… Host: Konnektivitätskontrolle.Ubuntu.com… akzeptieren:
###########
T 10.0.2.15: 48634 -> 34.107.221.82:80 [AP] #18
Erhalten /Erfolg.txt http/1.1… Host: DetectPortal.Feuerfuchs.com… Benutzer-Agent: Mozilla/5.0
#######

Abschluss

Der Artikel führt NGREP vor, ein Paket -Sniffing -Tool, das den Verkehr mit regulären Ausdrücken analysiert. Wir diskutieren und diskutieren alle Grundlagen, um NGREP-Befehle und -Optionen voranzutreiben, die die Netzwerkadministratoren in ihren täglichen Aufgaben erleichtern.