Co to jest ngrep i jak go używać?

Co to jest ngrep i jak go używać?
Mimo że TShark i TCPDump są najpopularniejszymi narzędziami węgla pakietu, które wykopują poziom bitów i bajtów ruchu. NGREP to kolejne narzędzie NIX, które analizuje pakiety sieciowe i wyszukuje na danym wzorze Regex.

Narzędzie używa biblioteki PCAP i GNU do wykonywania wyszukiwania ciągów regularnych. NGREP oznacza Network GREP, który jest podobny do zwykłego narzędzia GREP. Jedyną różnicą jest to, że NGREP analizuje tekst w pakietach sieci.

W tym artykule dowiadujemy się o linii poleceń, bogatej w funkcje narzędzia znanego jako NGREP, które jest przydatne do szybkiej analizy PCAP i zrzucania pakietów.

Wstęp

NGREP zapewnia możliwości podobne do GREP dla trzeciej warstwy modelu OSI, to znaczy narzędzie działa z protokołami IPv4/6, TCP, UDP, ICMPV4/6, IGMP. Stąd narzędzie rozpoznaje różne protokoły, przechwytuje ruch na żywo i analizuje przechwycone pliki PCAP. Najlepszą zaletą narzędzia NGREP jest to, że zwykły użytkownik GREP może wykorzystać swoją wiedzę o analizowaniu tekstu w NGREP.

Rozpoczęcie pracy

Zaktualizuj repozytorium Ubuntu i zainstaluj narzędzie NGREP za pomocą narzędzia zarządzania pakietami Apt-Get:

Ubuntu@ubuntu: ~ $ sudo apt-get aktualizacja
Ubuntu@ubuntu: ~ $ sudo apt-get instaluj ngrep

Narzędzie wymaga, aby Sudo-provileges uruchamiać głębokie polecenia kontroli pakietów. Podczas gdy ogólna składnia narzędzia jest następujące:

Ubuntu@ubuntu: ~ $ ngrep Wzór/ekspresja

Wzory Czy użytkownicy wyrażeń regularnych szukają w pakiecie sieciowym. filtr Opcja wskazuje filtr pakietu Berkeley (BPF), który zawiera serię słów kluczowych w celu określenia reguł wyboru pakietu. Słowa kluczowe obejmują protokół, źródło lub host docelowy oraz porty itp.

Przechwyty pakiety

Brak opcji filtra nie przechwytuje wszystkich pakietów z domyślnego interfejsu, na przykład następujące polecenie przechwyci wszystkie pakiety sieciowe ze wszystkich interfejsów.

Ubuntu@ubuntu: ~ $ sudo ngrep

Aby wymienić wszystkie dostępne interfejsy, użyj następującego polecenia i naciśnij kartę wiele razy, aby wyświetlić wszystkie interfejsy:

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

Podstawowe użycie

Wyjście do powyższego polecenia pokazuje ładunki szczegółów pakietu na terminalu. NGREP oferuje cichą opcję „-Q”, która pyta wszystkie interfejsy i protokoły dotyczące określonego dopasowania sznurka, ucisza wyjście i tylko drukuje szczegóły nagłówka pakietu odpowiedniego ładunku.

Ubuntu@ubuntu: ~ $ sudo ngrep -q
[sudo] hasło dla Ubuntu:
Interfejs: ENP0S3 (10.0.2.0/255.255.255.0)
Filtr: ((ip || ip6) || (vlan && (ip || ip6))))
T 10.0.2.15: 35524 -> 142.250.180.46: 443 [AP] #1
… "7c.X] e.Nu… m.'.U… i… u.%z…
T 10.0.2.15: 35524 -> 142.250.180.46: 443 [AP] #2
… H… '.@AQ?jakiś.K…
T 142.250.180.46: 443 -> 10.0.2.15: 35524 [a] #4

Powyższe polecenie z ciągiem „http” wyświetla/łapie pakiety z wyszukiwanym ciągiem.

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

Dodaj flagę t w powyższym poleceniu, aby wydrukować znacznik czasu z informacjami o dopasowaniu w YYYY/MM/DD HH: MM: SS.Uuuuuu format. Podobnie za pomocą T Flaga wydrukuje upływający czas między bezpośrednimi meczami a znacznikami w +S.Format uuuuuu.

Ubuntu@ubuntu: ~ $ sudo ngrep -qt 'http'
Ubuntu@ubuntu: ~ $ sudo ngrep -qt 'http'
Interfejs: ENP0S3 (10.0.2.0/255.255.255.0)
Filtr: ((ip || ip6) || (vlan && (ip || ip6))))
Mecz: HTTP
T +24.714768 10.0.2.15: 48096 -> 142.250.185.35:80 [AP] #1453
POST /GTS1O1CORE HTTP /1.1… gospodarz: OCSP.PKI.Goog… użytkownik-agent: Mozilla/5.0

Użyj -W Opcja z przez linię flaga do wydrukowania wyjścia w łatwym do zrozumienia i czytelnym formacie.

ubuntu@ubuntu: ~ $ sudo ngrep -q -wbyline „http”
T 10.0.2.15: 48570 -> 142.250.185.35:80 [AP] #589
POST /GTS1O1CORE HTTP /1.1.
Host: OCSP.PKI.Goog.
Agent użytkownika: Mozilla/5.0 (x11; Ubuntu; Linux x86_64; RV: 79.0) Gecko/20100101 Firefox/79.0.
Zaakceptować: */*.
Accept-Language: en-us, en; q = 0.5.
Akceptowanie: gzip, deflate.
Typ treści: Application/OCSP-Request.
Długość zawartości: 83.
Połączenie: Keep-Alive.

NGREP zapisuje schwytany ruch sieciowy w formacie PCAP, który można przesłać do Wireshark w celu głębszej analizy pakietów. Użyj opcji -O, aby zapisać wyszukiwane wyjście do pliku PCAP:

ubuntu@ubuntu: ~ $ ngrep -o http_capture.pcap -qt „http”

Podobnie jak każde inne narzędzia węgla sieciowe, NGREP umożliwia odczyt zapisany ruch sieciowy, tak że opcja -QT pomaga filtrować przechwycony ruch zamiast interfejsu.

Ubuntu@ubuntu: ~ $ ngrep -i http_capture.pcap -qt „http”

Filtry BPF

BPF zawiera bogatą składnię do filtrowania pakietów na podstawie adresu IP, portów i protokołów. Poniższe polecenia przeszukują ruch pakietów TCP i UDP:

ubuntu@ubuntu: ~ $ ngrep -w byline „http” „tcp”
ubuntu@ubuntu: ~ $ ngrep -w byline „http” „udp”

Aby odfiltrować wszystkie pakiety w interfejsie ENP0S3 dla portu 80, uruchom następujące polecenie:

Ubuntu@ubuntu: ~ $ ngrep -d enp0s3 -w Port 8 80

Podobnie użyj podanych poniższych poleceń, aby dopasować nagłówki zawierające ciąg HTTP z hosta docelowego i źródłowego:

Ubuntu@ubuntu: ~ $ ngrep -q 'http' 'DST Host 172.217 '
ubuntu@ubuntu: ~ $ ngrep -q 'http' 'host src '10.0 '

Wreszcie, następujące polecenie z filtrem hosta odpowiada wszystkich nagłówków z „10.0.2 ”adres IP.

Ubuntu@ubuntu: ~ $ ngrep -q 'http' 'host 10.0.2 '

Wyszukiwanie pakietów sieciowych opartych na strumieniu

Narzędzie NGREP może łączyć powyższe polecenia do wyszukiwania pakietów TCP na porcie 80 w celu uzyskania określonego ciągu „Agent użytkownika”.

Ubuntu@ubuntu: ~ $ sudo ngrep -d enp0s3 -w byline -i "użytkownik -agent:" tcp i port 80

Gdzie -I Opcja ignoruje przypadek wyrażenia wyrażenia regularności.

Podobnie, poniższe polecenie wyświetla wszystkie pakiety na porcie 80 z ciągiem GET lub Post.

Ubuntu@ubuntu: ~ sudo ngrep -d enp0s3 -i "^get |^Post" TCP i Port 80
Interfejs: ENP0S3 (10.0.2.0/255.255.255.0)
Filtr: (TCP i port 80) i ((ip || ip6) || (vlan && (ip || ip6)))))
mecz: ^get | ^post
#######
T 10.0.2.15: 59876 -> 34.122.121.32:80 [AP] #7
Get / http / 1.1… host: sprawdzanie łączności.Ubuntu.com… zaakceptuj:
###########
T 10.0.2.15: 48634 -> 34.107.221.82:80 [AP] #18
Uzyskaj /sukces.TXT HTTP/1.1… gospodarz: wykrywalny.Firefox.com… użytkownik-agent: Mozilla/5.0
#######

Wniosek

Artykuł wprowadza NGREP, narzędzie wąchania pakietów, które analizuje ruch za pomocą wyrażeń regularnych. Omawiamy i omawiamy wszystkie podstawy, aby rozwijać polecenia i opcje NGREP, które ułatwiają administratorom sieci w ich codziennych zadaniach.