Jak používat tcpdump ke sledování naší sítě

Obsah

V tomto tutoriálu se podíváme jak pracovat s tcpdump. Je to opensource nástroj pro příkazový řádek, na který se používá sledovat síť, můžeme to chápat jako analyzátor paketů, které procházejí sítí, kde spouštíte program. Používá se v unixových prostředích, i když pro Windows existuje varianta s názvem WinDump. Mohl by vás zajímat tutoriál o EtherApe, což je nástroj, jak graficky zobrazit stav naší sítě.

V tutoriálu budeme pracovat z Linuxu, konkrétně v Ubuntu 16.04, aby nástroj fungoval, musíme jej spouštět s vysokými oprávněními, s výjimkou určitých možností, které budou nutné.

Můžeme použít tcpdump pro různé úkoly, jako je ladění našich síťových aplikací, čtení dat odesílaných mezi uživateli přes síť, ve které se nacházíme atd. Níže uvedeme jeho syntaxi:

 tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX #] [-B size] [-c count] [-C file_size] [-E something: secret] [-F file] [-G seconds] [-i interface] [-j tstamptype] [- Tajemství M [[číslo] [-Q vstup | výstup | výstup] [-r soubor] [-s snaplen] [-přesnost časového razítka] [-okamžitý režim] [-T typ] [ --version] [-V soubor] [-w soubor] [-W počet souborů] [-y datalinktype] [-z příkaz] [-Z uživatel] [výraz]
Tento nástroj má velké množství parametrů, které můžeme použít, zde nějaké uvidíme.

Některé parametry tcpdump

  • -NA: Vytiskněte balíčky v kódu ASCII.
  • -X: Tisk paketů v šestnáctkové soustavě.
  • -D: Zobrazí dostupná rozhraní.
  • -C číslo: Zavře program, když byl zachycen uvedený počet paketů.
  • -i rozhraní: Program naslouchá na zadaném rozhraní.
  • -Já: Přepne rozhraní do režimu monitoru.
  • -p: Neuvádí rozhraní do promiskuitního režimu.
  • -f soubor: Výstup je uložen v souboru, který označíme.
  • -h: Zobrazí nápovědu k jeho použití.

Pokud chceme vidět všechny dostupné parametry, v Linuxu používáme:

 muž tcpdump
Použití tohoto příkazu je úplnější než nápověda nabízená parametrem -h nebo --Pomoc, který by nám ukázal pouze následující:

Uvidíme 10 příkladů, jak začít s tímto výkonným nástrojem.

PoznámkaTéměř ve všech příkladech uvidíte, že sudo se používá před tcpdump, jak již bylo řečeno, je nutné jej spustit s vysokými oprávněními, pokud používáte terminál jako root, pak není nutné před tcpdump nic dávat. Pokud chcete zastavit snímání, můžete kombinovat klíče:

CTRL + C

Příklad 1
Nejjednodušší příklad s použitím parametru -NA. Za tímto účelem provedeme:

 tcpdump -A

Podívejme se na příklad s dalším obsahem.

Příklad 2
Nyní budeme filtrovat podle hostitele a přidáme podrobný režim s parametrem -proti:

 sudo tcpdump host 192.168.66.130 -v
Níže je obrázek pomocí výše uvedeného příkazu:

Pro obrázek jsem vytvořil ping z jiného počítače, takže vidíme ICMP. Přejděme ke třetímu příkladu.

Příklad 3
V tomto příkladu se podíváme na pakety od stejného hostitele, pouze tentokrát pakety, které mají co do činění s portem 80:

 sudo tcpdump host 192.168.66.130 a port 80 -v
Pokud se podíváme na zachycení, uvidíme něco podobného následujícímu:

Můžete vidět, jak snadné je tento nástroj zvládnout, pojďme dál.

Příklad 4
Použijeme příklad 3 a upravíme jej, chceme filtrovat pakety s původem 192.168.66.130, které jdou na port 80:

 sudo tcpdump src host 192.168.66.130 a dst port 80 -v
Vidíme, že jsme použili podmíněné, a aby byly splněny obě podmínky, můžeme také použít, nebo pokud chceme, aby byla splněna pouze jedna z nich. Když se podíváme na snímky obrazovky, vidíme požadavek POST.

Přejdeme k pátému příkladu.

Příklad 5
Chystáme se zachytit pakety označující rozhraní:

 sudo tcpdump -i ens33
PoznámkaVaše rozhraní je pravděpodobně eth0, můžete ho vidět pomocí příkazu ifconfig, ale také s parametrem -D tcpdump nám to bude fungovat, uvidíme to v následujícím příkladu.

Níže vidíte obrázek zachycení.

Pojďme na další.

Příklad 6
V tomto případě jedinou věcí, kterou uděláme, je ukázat dostupná rozhraní, proto spustíme:

 tcpdump -D
V tomto případě není nutné být root.

Pokračujme.

Příklad 7
Chceme zachytit 3 pakety, které jsou určeny pro port 1987, a když k tomu dojde, zastavte program:

 sudo tcpdump -c 3 dst port 1987
Na následujícím obrázku vidíme, že jsou zachyceny pouze 3 pakety:

Podívejme se na několik dalších příkladů.

Příklad 8
Když máme zájem získat všechny pakety provozu tcp, které nejdou na určitý port, například port 80, provedeme následující:

 sudo tcpdump není port 80 a tcp
Výstup je podobný, takže v tomto příkladu není nastaveno žádné zachycení. Pojďme k předposlednímu příkladu.

Příklad 9
Chystáme se zachytit 2 pakety konkrétního rozhraní a ukážeme je v hexadecimálním formátu, proto musíme provést:

 sudo tcpdump -i ens33 -x -c 2
Níže vidíte výstup:

Přejdeme k poslednímu příkladu tutoriálu.

Příklad 10
V tomto případě uložíme záznam do souboru, abychom se na něj mohli podívat později. Zachycení je omezeno na 3 pakety a je specifikováno rozhraní, takže provedeme:

 sudo tcpdump -w test.pcap -i ens33 -c 3
Podívejme se na snímek obrazovky:

Pokud si chceme tento soubor přečíst nyní, musíme provést:

 tcpdump -r test.pcap
Můžeme to vidět na následujícím obrázku:

Výukový program na tcpdump dospěl tak daleko, má mnoho možností a možností, takže abyste se naučili, jak s tímto nástrojem dobře zacházet, je nejlepší si jej postupně procvičit a objevit všechny jeho funkce. Také by vás mohlo zajímat přečíst si něco o nástroji netcat, takže zde je odkaz na tutoriál s příklady:

Jak používat netcat

Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave