NGREP - analizator pakietów sieciowych dla Linux

NGREP - analizator pakietów sieciowych dla Linux

Ngrep (Network Grep) to prosty, ale potężny analizator pakietów sieciowych. Jest to narzędzie podobne do GREP zastosowane do warstwy sieciowej - pasuje do ruchu przechodzącego przez interfejs sieciowy. Umożliwia określenie rozszerzonego wyrażenia regularnego lub heksadecimalnego, aby dopasować się do ładunku danych (rzeczywista informacja lub komunikat w przesyłanych danych, ale nie automatycznie generowane metadane) pakietów.

To narzędzie działa z różnymi rodzajami protokołów, w tym IPv4/6, TCP, UDP, ICMPV4/6, IGMP, a także RAW na wielu interfejsach. Działa w ten sam sposób, co narzędzie do węszenia pakietu TCPDUMP.

Paczka ngrep można zainstalować z domyślnych repozytoriów systemowych w głównym nurcie dystrybucji Linux za pomocą narzędzia do zarządzania pakietami, jak pokazano.

$ sudo apt Zainstaluj ngrep $ sudo yum instaluj ngrep $ sudo dnf instaluj ngrep 

Po zainstalowaniu ngrep, Możesz rozpocząć analizę ruchu w sieci Linux za pomocą następujących przykładów.

1. Poniższe polecenie pomoże Ci dopasować wszystkie żądania ping w domyślnym interfejsie roboczym. Musisz otworzyć kolejny terminal i spróbować pingować inną zdalną maszynę. -Q Flaga powiedz ngrep Aby cicho pracować, nie wyświetlać żadnych informacji innych niż nagłówki pakietów i ich ładunki.

$ sudo ngrep -q '.„ICMP” Interfejs: ENP0S3 (192.168.0.0/255.255.255.0) Filtr: (ICMP) i (ip || ip6) || (vlan && (ip || ip6))) dopasuj: . I 192.168.0.104 -> 192.168.0.103 8: 0]… ~ og [… J… !„#$%& '()*+,-./01234567 i 192.168.0.103 -> 192.168.0.104 0: 0]… ~ og [… j… !„#$%& '()*+,-./01234567 i 192.168.0.104 -> 192.168.0.103 8: 0]… OG [… !„#$%& '()*+,-./01234567 i 192.168.0.103 -> 192.168.0.104 0: 0]… OG [… !„#$%& '()*+,-./01234567 

Możesz nacisnąć Ctrl + c Aby to zakończyć.

2. Na przykład dopasować tylko ruch, przechodząc na określoną stronę docelową 'Google.com ', Uruchom następujące polecenie, a następnie spróbuj uzyskać do niego dostęp z przeglądarki.

$ sudo ngrep -q '.„host Google.com ' Interfejs: ENP0S3 (192.168.0.0/255.255.255.0) Filtr: (host Google.com) i ((ip || ip6) || (vlan && (ip || ip6))) dopasuj: . T 172.217.160.174: 443 -> 192.168.0.103: 54008 [AP]…;.(… RZR… $… S =… L.Q+r.U… 4… g.J… ja,.L…: y.a,… c 5> [e -mail chroniony] t 172.217.160.174: 443 -> 192.168.0.103: 54008 [AP]… L… !,0HJ… 0.%F… !… L |… Pl… X… T… T.2dc… y… ~ y; [e -mail chroniony] 

3. Jeśli surfujesz po Internecie, uruchom następujące polecenie, aby monitorować, które pliki żąda przeglądarki:.

$ sudo ngrep -q '^get .* HTTP/1.[01] ' Interfejs: ENP0S3 (192.168.0.0/255.255.255.0) Filtr: ((ip || ip6) || (vlan && (ip || ip6))) dopasowanie: ^get .* HTTP/1.[01] T 192.168.0.104: 43040 -> 172.217.160.174: 80 [AP] GET / HTTP / 1.1… host: Google.com… użytkownik-agent: linki (2.13; Linux 4.17.6-1.El7.Elrepo.x86_64 x86_64; GNU C 4.8.5; Tekst)… Zaakceptuj:*/*… Akceptuj języka: en,*; q = 0.Oku ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, I So-8859-13, ISO-8859-14, ISO-8859-15, ISO -8859-16, Windows-1250, Windows-1251, Windows-1252, Windows-1256, Windows-1257, CP437, CP737, CP850, CP852, CP866, X-CP866-U, X-MAC, X-MAC-CE , X-KAM-CS, KOI8-R, KOI8-U, KOI8-RU, TCVN-5712, Viscii, UTF-8… Połączenie: Keep-Alive… 

4. Aby zobaczyć wszystkie źródło przecinające działalność lub port docelowy 25 (SMTP), Uruchom następujące polecenie.

$ sudo ngrep port 25 

5. Do monitorowania dowolnego ruchu syslogowego w celu wystąpienia słowa "błąd", Użyj następującego polecenia.

 $ sudo ngrep -d dowolny port „błąd” 514 

Co ważne, to narzędzie może konwertować nazwy portów serwisowych przechowywane w „/Etc/usługi” (w systemach podobnych do unixów, takich jak Linux) na liczby portów. To polecenie jest równoważne z powyższym poleceniem.

$ sudo ngrep -d dowolne syslog portu „błąd” 

6. Możesz także uruchomić NGREP przeciwko Http Port serwera 80), będzie pasował do wszystkich żądań do hosta docelowego, jak pokazano.

$ sudo ngrep port 80 Interfejs: ETH0 (64.90.164.72/255.255.255.252) Filtr: IP i (port 80) #### T 67.169.59.38: 42167 -> 64.90.164.74:80 [ap] get / http / 1.1… agent użytkownika: Mozilla/4.0 (kompatybilny; MSIE 6.0; X11; Linux I 686) Opera 7.21 [en]… gospodarz: www.Darkridge.com… akceptuj: tekst/html, aplikacja/xml; q = 0.9, aplikacja/xhtml+xml; q = 0.9, Image/PNG, Image/JPEG, Image/Gi F, Image/X-XBITMAP, */ *; q = 0.1… Akceptuj-ładunek: ISO-8859-1, UTF-8, UTF-16, *; q = 0.1… akceptowanie: deflate, gzip, x-gzip, tożsamość, *; q = 0… pliki cookie: sq msessid = 5272f9ae21c07eca4dfd75f9a3cda22e… cookie2: $ wersja = 1… połączenie: Keep-aLive, te… te: deflate, gzip, fragment, tożsamość, przyczepy… ## 

Jak widać na powyższym wyjściu Wszystkie transmisję nagłówków HTTP są wyświetlane w ich krwawym detalu. Trudno jednak przeanalizować, więc obserwujmy, co się stanie, kiedy się składasz -W tryb Byline.

$ sudo ngrep -w port 80 Interfejs: ETH0 (64.90.164.72/255.255.255.252) Filtr: IP i (port 80) #### T 67.169.59.38: 42177 -> 64.90.164.74:80 [ap] get / http / 1.1. Agent użytkownika: Mozilla/4.0 (kompatybilny; MSIE 6.0; X11; Linux i686) Opera… host: www.Darkridge.com. Zaakceptuj: Text/html, aplikacja/xml; q = 0.9, aplikacja/xhtml+xml; q = 0.9… Akceptuj-ładunek: ISO-8859-1, UTF-8, UTF-16, *; q = 0.1. Akceptowanie: deflate, gzip, x-gzip, tożsamość, *; q = 0. Plik cookie: sqmsessid = 5272F9AE21C07ECA4DFD75F9A3CDA22E. Cookie2: $ wersja = 1. Cache-Control: Bez pamięci podręcznej. Połączenie: Keep-Alive, TE. TE: deflate, gzip, fragment, tożsamość, przyczepy. 

7. Wydrukować znak czasu w formie YYYY/MM/DD HH: MM: SS.Uuuuuu Za każdym razem, gdy pakiet jest dopasowywany, użyj -T flaga.

$ sudo ngrep -t -w port 80 Interfejs: ENP0S3 (192.168.0.0/255.255.255.0) Filtr: (port 80) i (ip || ip6) || (vlan && (ip || ip6)) #### t 2018/07/12 16:33:19.348084 192.168.0.104: 43048 -> 172.217.160.174: 80 [AP] GET / HTTP / 1.1. Host: Google.com. Agent użytkownika: linki (2.13; Linux 4.17.6-1.El7.Elrepo.x86_64 x86_64; GNU C 4.8.5; tekst). Zaakceptować: */*. Accept-Language: en,*; q = 0.1. Akceptowanie: gzip, deflate, bzip2. Accept-Charset: US-ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, UTF-8. Połączenie: Keep-Alive. 

8. Aby uniknąć umieszczenia interfejsu w trybie rozwiązłego (gdzie przechwytuje i odczytuje każdy pakiet sieciowy, który przybywa w całości), dodaj -P flaga.

$ sudo ngrep -p -w port 80 

9. Inną ważną opcją jest -N co jest przydatne w przypadku obserwowania surowych lub nieznanych protokołów. Mówi ngrep Aby wyświetlić numer subprotocolu wraz z identyfikatorem pojedynczych znaków.

$ sudo ngrep -n -w 

Aby uzyskać więcej informacji, zobacz ngrep Strona Man.

$ man ngrep 

NGREP GITHUB Repozytorium: https: // github.com/jpr5/ngrep

To wszystko! Ngrep (Network Grep) to analizator pakietów sieciowych, który rozumie logikę filtra BPF w tym samym modnym TCPDUMP. Chcielibyśmy poznać twoje przemyślenia ngrep W sekcji komentarzy.