Filtrujte vzduch! Auditujeme sieťovú prevádzku pomocou tcpdump. Nástroj Tcpdump, príklady možností filtre Popis Tcpdump

Filtrujte vzduch!  Auditujeme sieťovú prevádzku pomocou tcpdump.  Nástroj Tcpdump, príklady možností filtre Popis Tcpdump
Filtrujte vzduch! Auditujeme sieťovú prevádzku pomocou tcpdump. Nástroj Tcpdump, príklady možností filtre Popis Tcpdump

Pre systémy UNIX existuje široká škála snifferov a analyzátorov premávky s pohodlným grafickým rozhraním a bohatou sadou funkcií. Ale žiadny z nich sa nemôže porovnávať vo flexibilite, všestrannosti a všadeprítomnosti so starým tcpdumpom. Tento nástroj je súčasťou mnohých Linuxové distribúcie a všetky BSD systémy hneď po vybalení a môžu vám pomôcť, keď nie sú k dispozícii iné prostriedky.

Úvod

Pomôcka tcpdump je sieťový sniffer paketov s rozhraním príkazového riadka, ktoré nemá ani grafické, ani pseudografické rozhranie. Začiatočníkom sa môže zdať neohrabaný a príliš staromódny, no v šikovných rukách sa zmení na skutočný Švajčiarsky nôž otvorte všetky sieťové pakety a protokoly. Skúsení správcovia systému vždy odporúčajú začiatočníkom používať tcpdump namiesto akýchkoľvek iných nástrojov kvôli jasnosti a priamočiarosti jeho správ.

Tcpdump sa zrodil takmer pred 25 rokmi na univerzite v Berkeley, stále sa aktívne rozvíja a naďalej je štandardom medzi podobnými nástrojmi pre operačný systém UNIX. Knižnicu na zachytávanie paketov libpcap, vyvinutú špeciálne pre ňu, dnes používa takmer každý sniffer pre systémy UNIX a mnoho podobné programy pre Windows.

V tomto článku sa pozrieme na všetky aspekty práce s tcpdump, počnúc základmi práce s programom a končiac tým, ako tento nástroj používať na identifikáciu sieťových útokov, anomálií a rôznych typov zlyhaní.

Sám s konzolou

Pokúsme sa zistiť, ako tcpdump funguje a z ktorej strany by sa k nemu malo pristupovať. Otvorte terminál a spustite program ako root (ako každý sniffer, aj tcpdump musí mať plný prístup na sieťové rozhrania), špecifikovaním názvu sieťového rozhrania a obmedzením počtu výstupných paketov na desať:

# tcpdump -i wlan0 -c 10 -n

Prepínač -n zakáže preklad adries IP na názvy DNS. Teraz skúsme sledovať výmenu len s konkrétnym hostiteľom, napríklad s domácim routerom:

# tcpdump -i wlan0 -c 10 -n hostiteľ 192.168.0.1 a port 53

Pozrime sa, čo nám tcpdump priniesol, na príklade dvoch riadkov uvedených na snímke „DNS dotaz očami tcpdump“. Ľahko pochopíte, že ide o požiadavku DNS (port 53) z hostiteľa 192.168.0.101 na hostiteľa 192.168.0.1 a následnú odpoveď. Čo však znamenajú všetky ostatné čísla a znaky?


Čísla 16:22:41.340105 predstavujú čas odoslania paketu vrátane milióntin sekundy (tzv. frac). Dve písmená IP, ako by ste mohli uhádnuť, identifikujú použitý protokol sieťovej vrstvy, za ktorým nasleduje adresa: odosielací port a adresa: cieľový port paketu. Všetko, čo nasleduje po dvojbodke, priamo závisí od použitého protokolu transportnej alebo aplikačnej vrstvy. tcpdump pozná niektoré protokoly a dokáže ich dešifrovať do podoby čitateľnej pre človeka, zatiaľ čo iné necháva tak, ako sú, a jednoducho vypíše obsah paketu. V tomto prípade tcpdump dešifroval správy DNS a vrátil reťazec 49244+ A? ya.ru. (23), čo znamená: požiadavka (A?) bola odoslaná na adresu spojenú s názvom ya.ru., celková dĺžka paketu mínus hlavičky TCP/IP bola 23 bajtov. Prvá číslica je ID požiadavky.

V ďalšom riadku vidíme odpoveď, ktorej formát je takmer rovnaký ako požiadavka, len s tým rozdielom, že teraz za identifikátorom požiadavky je informácia o počte nájdených záznamov (8/2/3) a tzv. samotné záznamy (A 213.180.204.3, A 77.88.21.3 , A 87.250.250.3...).

tcpdump má podporu mnohých protokolov, vďaka čomu dokáže v čitateľnej forme prezentovať informácie o protokoloch TCP, UDP a ICMP, SMB/CIFS, NFS, AFS, AppleTalk. Ale čo ak tcpdump nevie nič o používanom protokole aplikačnej vrstvy alebo ho nevie určiť? Normálne jednoducho vytlačí informácie o pakete. Môže to vyzerať nejako takto:

Flags [.], seq 3666073194:3666074622, ack 3281095139, win 2000, options , dĺžka 1428

Toto je TCP paket, formát na prezentovanie informácií o ňom v tcpdump je nasledujúci (polia sú oddelené čiarkami):

  • vlajky - nainštalované vlajky. Bodka označená symbolmi S (SYN), F (FIN), P (PUSH) a R (RST) znamená, že nie sú nastavené žiadne vlajky;
  • data-seqno - popisuje dáta obsiahnuté v pakete v nasledujúcom formáte: first:last, kde prvý a posledný sú poradové číslo prvého a posledného bajtu prenášaných dát, nbajtov;
  • potvrdenie - ďalšie poradové číslo (ISN + 1);
  • okno - veľkosť okna;
  • možnosti - tu je možné zadať ďalšie informácie, napríklad (maximálna veľkosť segmentu);
  • dĺžka - dĺžka paketu.

Všetky tieto údaje môžu byť veľmi užitočné pri štúdiu alebo ladení protokolov a sieťové aplikácie, nám však o jeho obsahu nič nehovoria. Ak chcete zobraziť obsah balíka v hexadecimálnom formáte, použite príznak -X:

# tcpdump -i wlan0 -c 10 -n -X hostiteľ 192.168.0.1 a port 80

Túto funkciu je veľmi výhodné použiť na analýzu protokolov, v ktorých sa údaje prenášajú vo forme čistého textu, ako je napríklad HTTP. Pre binárne a šifrované protokoly to bude, samozrejme, zbytočné.
Na získanie ďalších informácií o balíku môžete použiť aj príznak -v. Potom sa za IP v zátvorkách objaví detailné informácie o balíku IP:

(tos 0x0, ttl 64, id 8339, offset 0, príznaky , proto UDP (17), dĺžka 51)

Vo všeobecnosti je tu všetko celkom prozaické. Najprv nasleduje typ služby (TOS), potom čas životnosti paketu (TTL), ID paketu, posun od začiatku prvého paketu v reťazci, príznaky, použitá punkcia transportnej vrstvy (TCP, UDP, ICMP) a dĺžka.


Pokročilé vlastnosti

Väčšinu najdôležitejších funkcií tcpdump sme už prebrali, no v jeho funkcionalite je toho oveľa viac. Napríklad sme použili operátorov hostiteľa a portu na zadanie adresy a portu, ktoré potrebujeme na filtrovanie výstupu, ale čo keby sme chceli vidieť iba pakety smerujúce do zadanú adresu, ale nepochádza z toho? Na to môžete použiť operátor src:

# tcpdump -i wlan0 -c 10 -n src 192.168.0.1

Existuje aj jeho reverzná verzia dst, určená na označenie cieľovej adresy. Ako je uvedené vyššie, všetkých operátorov je možné kombinovať pomocou operátora a (monitorovanie sieťovej prevádzky, s výnimkou relácií SSH a dopytov DNS):

# tcpdump -i wlan0 port nie 22 a port nie 53

Môžete tiež použiť alebo (alebo) a okrem (nie). Okrem toho tcpdump rozumie rozsahom portov:

# tcpdump -i wlan0 -c 10 -n portrange 21-23

Dokáže filtrovať pakety podľa ich veľkosti:

# tcpdump -i wlan0 -c 10 -n > 32 a<= 128

A rozumie maskám podsiete:

# tcpdump -i wlan0 c 10 -n src net 192.168.0.0/16 a dst net 10.0.0.0/8 alebo 172.16.0.0/16

Jednou z najzaujímavejších funkcií tcpdump je schopnosť filtrovať pakety na základe obsahu konkrétnych bitov alebo bajtov v hlavičkách protokolu. Používa sa na to nasledujúci formát: proto, kde proto je protokol, expr je posun v bajtoch od začiatku hlavičky paketu a veľkosť je voliteľné pole označujúce dĺžku príslušných údajov (predvolená hodnota je 1 bajt) . Napríklad, ak chcete filtrovať iba pakety s nastaveným príznakom SYN (TCP handshake initiation), použite nasledujúci záznam:

# tcpdump "tcp==2"

Ako to funguje? Veľmi jednoduché. 13 bajtov hlavičky TCP obsahuje presne osem príznakov, pre každý jeden bit. Druhý bit je vyhradený pre príznak SYN. Nasledujúci záznam jednoducho overí, či je tento bit nastavený. Mimochodom, čitateľnejšia forma tohto záznamu by vyzerala takto:

# tcpdump "tcp & tcp-syn != 0"

Praktické využitie

Nástroj tcpdump sa bežne používa na dva účely: na ladenie siete, sieťových aplikácií a nových protokolov a na výučbu základov TCP/IP. Pôjdeme opačným smerom a využijeme schopnosti tcpdump na detekciu skenovania hostiteľov a na vykonávanie sieťových útokov.

Na obr. Obrázok 1 ukazuje, ako vyzerá klasické skenovanie TCP portu vykonané pomocou nástroja Nmap v protokoloch tcpdump. Jasne vidis, ako sa Nmap z adresy 192.168.0.100 snazi ​​nadviazat TCP spojenie s roznymi portami odoslanim paketu SYN (S v poli flags). Najprv sa testuje port 8888, ako odpoveď je prijatý paket RST, čo znamená, že port nepočúva žiadna služba, potom sa testuje port 587 s rovnakým výsledkom. Nakoniec Nmap odošle paket SYN na port 22 (SSH) a dostane odpoveď vo forme paketu SYN-ACK:

192.168.0.100.43337 > 192.168.0.111.22: Vlajky [S], sek. 2610024277, ... 192.168.0.111.22 > 192.168.0.1077 Vlajky 36, 29, 2633 0 024278, ... 192.168.0.100 43337 > 192.168.0.111.22: Príznaky [.], potvrdenie 1, ...

Port je otvoreny a Nmap teraz moze uspesne ukoncit spojenie odoslanim paketu RST a prejst na dalsie porty. Robí však niečo inteligentnejšie: odošle potvrdenie ACK paketu a okamžite sa presunie na ďalšie porty. Toto správanie vám umožňuje obísť niektoré systémy detekcie narušenia, ale osobu vyzbrojenú lapačom nemožno tak ľahko oklamať.

Venujte pozornosť aj číslam vyhľadávaných portov, nie sú generované náhodne, ale sú vyberané s ohľadom na najväčšiu prevalenciu. To znamena, ze sa vykonava rychla kontrola, alebo presnejsie, Nmap s najvacsou pravdepodobnostou spusti bez akychkolvek priznakov.



Teraz sa pozrime na inú metódu detekcie otvorených portov - skenovanie SYN (nmap -sS). Tento typ kontroly sa zvyčajne nazýva skrytý, pretože počas neho sa nikdy nevytvorí úplné spojenie TCP, čo znamená, že informácie o fakte pripojenia sa v protokoloch neobjavia. Výstup tcpdump pre tento typ skenovania je znázornený na obr. 2. Je veľmi podobný protokolu bežného skenovania TCP, ale odozva skenera na otvorené porty teraz ďalší:

192.168.0.100.48585 > 192.168.0.111.22: Vlajky [S], sek. 1679394613, ... 192.168.0.111.22 > 192.168.0.105.82 696,59 sekv 3 94614, ... 192.168.0.100 48585 > 192.168.0.111.22: Príznaky [R], sekvencia 1679394614, ...

Je vidieť, že po prijatí schvaľovacieho paketu SYN-ACK skener nedokončí nadviazanie spojenia, ale okamžite ho preruší, čím sa vyhne vstupu do protokolov. Na obr. 3 môžete vidieť výsledok kontroly UDP. Všetko je tu veľmi jednoduché, Nmap vymenúva porty s možnými službami UDP a každému z nich posiela paket nulovej dĺžky. Ak je port zatvorený, OS odpovie správou ICMP nedostupný:

16:41:48.798310 IP 192.168.0.100.61020 > 192.168.0.111.18869: UDP, dĺžka 0 16:41:48.798346 IP 192.168.192116 >.0.0.0.0.0.0.0.0 .0.100 udp port 18869 nedostupný, dĺžka 36

V opačnom prípade sa port považuje za otvorený. Iná metóda skenovania: nulové skenovanie odosielaním paketov, ktoré neobsahujú žiadne nastavené príznaky (nmap -sN). Odozva na takéto pakety sa môže líšiť v závislosti od použitého operačného systému, ale ako môžete vidieť z nasledujúceho zoznamu, Linux na ne odpovedá odosielaním paketov RST:

192.168.0.100.39132 > 192.168.0.111.256: Vlajky , výhra 3072, dĺžka 0 192.168.0.111.256 > 192.168.0.100.39132: Vlajky

Útočník môže použiť aj skenovanie Vianoc, pri ktorom majú pakety nastavené príznaky FIN, URG a PUSH (zdá sa, že paket žiari príznakmi ako vianočný stromček):

seq ,ack 3998959602

Ako vidíte, reakcia na takéto balíčky je identická. Skenovanie ACK (-sA) sa objaví v protokoloch tcpdump ako odosielanie viacerých paketov s nastaveným príznakom ACK a odpovedanie na ne odoslaním paketov RST. Ak vsak ma system nainstalovany firewall, ziadne odpovedi sa neodosielaju a Nmap bude schopny pochopit, ci je port filtrovany.

Pomocou tcpdump môžete tiež sledovať rôzne typy povodní. Napríklad klasická záplava ICMP v protokoloch bude vyzerať takto:

16:43:06.008305 IP 192.168.0.100 > 192.168.0.111: ICMP typ-#68, dĺžka 1032 16:43:06.008383 IP 192.168.0.100 101 193 dĺžka MP 2 16:43:06.008714 IP 192.168.0.100 > 192.168.0.111: typ ICMP-#183, dĺžka 1032 16:43:06.008831 IP 192.168.0.100 > 192.168.0.12-112 dĺžka, typ ICMP #112: ICMP

Zvlášť dôležité je tu pole obsahujúce čas prijatia paketu. Žiadna normálna aplikácia nepošle veľa správ ICMP v časovom úseku rovnajúcom sa jednej tisícine sekundy. Ostatné typy záplav (napríklad SYN) sú definované presne rovnakým spôsobom.

Interakcia s inými programami

Jednou z najdôležitejších výhod tcpdump je, že formát jeho reportov sa počas existencie programu stal vlastne štandardom pre všetkých snifferov a dnes mu rozumejú všetky viac či menej seriózne nástroje analýzy návštevnosti. Napríklad tcpdump možno použiť na vygenerovanie výpisu na vzdialenom počítači a potom ho odoslať na lokálny počítač a analyzovať pomocou wireshark:

$ssh [e-mail chránený] tcpdump -w - "port !22" | wireshark -k -i -

Tu sme použili možnosť -w - na zapísanie výpisu na štandardný výstup a presmerovali ho na wireshark bežiaci na lokálnom počítači. Rovnakým spôsobom môžete analyzovať návštevnosť pomocou funkcie Snort:

$ssh [e-mail chránený]"tcpdump -nn -i eth1 -w -" | snort -c /etc/snort/snort.conf -r -

Presmerovaním výstupu programu na vstup grep môžete nájsť rôzne problémy v sieti, napríklad identifikáciou paketov s nesprávnym kontrolným súčtom, informácie o ktorých možno zobraziť pomocou príznaku -vv:

# tcpdump -nnvv -r dump.cap tcp | grep -v "tcp suma ok" | wc–l

Administrátorské veci

Schopnosť filtrovať pakety na základe údajov obsiahnutých v hlavičke, o ktorej sme hovorili na začiatku prvej časti, je veľmi výhodné použiť na ladenie rôznych protokolov a vyhľadávanie problémy so sieťou. Môžeme ho použiť napríklad na zachytávanie sieťových paketov prenášaných prostredníctvom protokolu Cisco Discovery Protocol, prostredníctvom ktorého si smerovače Cisco vymieňajú informácie o topológii a stave siete:

# tcpdump -nn -v -i eth0 -s 1500 -c 1 "ether == 0?2000"

Rovnakým spôsobom môžete zachytiť všetky pakety prenášané prostredníctvom protokolu DHCP (OBJAV, VYŽIADAŤ, INFORMOVAŤ), aby ste identifikovali problémy s pripojením klienta:

# tcpdump -i eth0 -vvv -s 1500 "((port 67 alebo port 68) a (udp = 0x1))"

Alebo zachytávajte pakety prenášané v rámci overovania POP3:

# tcpdump -i eth0 "port tcp pop3 a ip = 85 a ip = 83" -s 1500 -n

Sieť grep

Sniffer tcpdump je dobrý pre svoju všestrannosť a rozmanitosť možností, no nie je tak jednoduché a pohodlné používať ho na vyhľadávanie konkrétnych údajov vo vnútri prenášaných paketov. Oveľa lepšie túto úlohu zvláda ngrep, ktorý je navrhnutý tak, aby zobrazoval prechádzajúce sieťové pakety, ktoré zodpovedajú danej maske.

Ak chcete napríklad nájsť parametre odovzdané metódami GET a POST v rámci relácie HTTP, môžete použiť nasledujúci príkaz:

# ngrep -l -q -d eth0 "^GET |^POST " tcp a port 80

Identifikácia flákačov:

# ngrep -i "hra*|p0rn|dospelý" -W vedľajší riadok -d eth0 > slackers.txt

Analyzujeme prevádzku SMTP na všetkých sieťových rozhraniach:

# ngrep -i "rcpt to|mail from" tcp port smtp

možnosti tcpdump

Tabuľka najzaujímavejších a najužitočnejších príznakov tcpdump.

  • -i [rozhranie] – sieťové rozhranie, na ktorom sa má počúvať, pre všetkých by sa malo zadať ľubovoľné.
  • -n - nerozoznáva adresy IP na názvy DNS.
  • -nn - nekonvertovať IP adresy a čísla portov.
  • -X - zobrazí obsah balíka v textovom a hexadecimálnom formáte.
  • -XX - to isté plus obsah ethernetového rámca.
  • -v, -vv, -vvv - zvýši množstvo zobrazených informácií a paketov (viac, ešte viac, všetky).
  • -c [n] - zobrazí iba prvých n paketov.
  • -s [n] - počet bajtov zobrazených pre každý paket (môže sa znížiť kvôli čitateľnosti alebo zvýšiť pre viac informácií).
  • -S - zobrazí absolútne poradové čísla TCP.
  • -e - zobrazí hlavičky ethernetových rámcov.
  • -q - zobrazí menej informácií (pre jednoduchšie čítanie).
  • -E - dešifrovať prenos IPsec pomocou zadaného kľúča.
  • -w - uloží výpis programu do súboru, argument - používa sa na zadanie stdout.

závery

V rukách skúseného používateľa sa tcpdump zmení na výkonný nástroj nielen na ladenie, ale aj na vyšetrovanie anomálií. Vďaka bohatej sade operátorov a príznakov sa dá použiť na vytiahnutie éteru zo siete a preskúmanie toho, čo skutočne potrebujete.

Preto som sa rozhodol vytvoriť si vlastný cheat sheet tak, aby bol... Pretože bez tcpdump je viac ako jeden admin neadministrátor

Úvod

Veľmi často na nájdenie problémov v sieti používajú analyzátory sieťovej prevádzky . tcpdump je jedným zo zástupcov tejto triedy programov, umožňuje počúvať (zobrazovať/ukladať) a analyzovať fungovanie siete na úrovni prenášaných sieťových paketov, rámcov a iných jednotiek prenosu sieťovej prevádzky. V závislosti od konfigurácie siete, tcpdump môže počúvať nielen pakety určené pre danú MAC adresu, ale aj broadcast pakety. Odpočúvanie sieťových paketov je založené na „promiskuitný“ režim prevádzka sieťového adaptéra.

V závislosti od použitého sieťové vybavenie na pripojenie počítačov Ethernetové siete sú nasledujúce schopnosti počúvania premávky:

  • Online založené koncentrátory všetka prevádzka z rozbočovača je dostupná pre každého hostiteľa siete.
  • V sieťach založených prepínače(prepínače) hostiteľ siete má prístup iba k svojej prevádzke, ako aj k všetkej vysielanej prevádzke tohto segmentu.
  • Niektoré riadené prepínače majú funkciu kopírovania prevádzky daného portu na monitorovací port („zrkadlenie“, monitorovanie portu).
  • Pri použití špeciálnych prostriedkov (spojok) zahrnutých do medzery sieťové pripojenie a odosielanie prevádzky spojenia na samostatný port, je možné počúvať na príslušnom porte.
  • „Trik“ s rozbočovačom spočíva v tom, že port prepínača, ktorého prevádzku je potrebné počúvať, je zapnutý cez rozbočovač, pričom sa k rozbočovaču pripája aj uzol monitora (v tomto prípade je vo väčšine prípadov výkon sieťového pripojenia znížený).

takže, pomôcka tcpdump je súčasťou väčšiny unixových distribúcií a umožňuje vám zachytiť a zobraziť/uložiť sieťový prenos do súboru. Nástroj používa knižnica libpcap. Nechýba ani port pre Windows. Vyžaduje sa, aby nástroj fungoval. Napríklad v Debiane sa inštaluje pomocou príkazu:

Debian:~# apt-get install tcpdump

Obslužné programy sú potrebné na prevádzku (keďže sa zmenili nastavenia sieťového rozhrania - je prepnuté do „promiskuitného“ režimu). Všeobecne Formát príkazu tcpdump má nasledujúci tvar:

Debian:~# tcpdump<опции> <фильтр>

možnosti pomôcky tcpdump

-i rozhranie

Určuje rozhranie, z ktorého sa má analyzovať prevádzka (bez špecifikovania rozhrania - analýza „prvého, ktorý sa objaví“).

Zakáže preklad IP do názvy domén. Ak je zadané -nn, konverzia čísiel portov na názvy protokolov je zakázaná.

Najčastejšie používané možnosti filtrovania pre príkaz tcpdump sú:

hostiteľ dst

Skontroluje, či sa cieľová adresa paketu IP zhoduje so zadanou hodnotou. Je možné nastaviť IP, podsieť vo formáte 10.0.0.1/24 a názov hostiteľa.

hostiteľ src

Skontroluje, či sa zdrojová adresa paketu IP zhoduje so zadanou hodnotou. Je možné nastaviť IP, podsieť vo formáte 10.0.0.1/24 a názov hostiteľa.

hostiteľ hostiteľa

Skontroluje, či sa adresa odosielateľa alebo príjemcu zhoduje so zadanou hodnotou. Je možné nastaviť IP, podsieť vo formáte 10.0.0.1/24 a názov hostiteľa.

net network_name

Skontroluje, či je adresa odosielateľa/príjemcu v zadanej sieti. Sieť je možné zadať vo formáte CIDR (napríklad 10.0.0.1/22) alebo zadať názov siete uvedený v .

ip | arp | rarp | tcp | udp | icmp [hostiteľ]

Skontroluje, či paket patrí k jednému zo špecifikovaných protokolov a pri zadávaní adresy hostiteľa skontroluje, či sa adresa odosielateľa/príjemcu zhoduje so zadanou. Je možné nastaviť IP, podsieť vo formáte 10.0.0.1/24 a názov hostiteľa.

dst port číslo_portu

Skontroluje, či balík patrí TCP protokol/UDP a či sa cieľový port rovná zadanému portu. Môžete zadať číslo portu alebo názov zadaný v súbore /etc/services.

src port číslo_portu

Kontroluje sa, či paket patrí do protokolu TCP/UDP a či sa zdrojový port rovná zadanému. Môžete zadať číslo portu alebo názov zadaný v súbore /etc/services.

port číslo_portu

Kontroluje sa, či paket patrí do protokolu TCP/UDP a či sa cieľový alebo zdrojový port zhoduje so zadaným. Môžete zadať číslo portu alebo názov zadaný v súbore /etc/services.

ip vysielanie

Skontroluje, či je IP paket vysielaný.

ether ( src | dst | hostiteľ ) MAC_address

Skontroluje, či sieťový paket patrí k zdroju, cieľu, zdroju alebo cieľu s danou MAC_adresou.

éterové vysielanie

Skontroluje, či je paket ARP vysielaný.

Príklady použitia príkazu tcpdump

Analýza návštevnosti na úrovni siete (ARP, ICMP) pomocou tcpdump

Predpokladajme, že máme 2 hostiteľov. Hostiteľ 1 s rozhraním eth0 a nasledujúcimi parametrami:

Host1:~# ip addr show dev eth0 5: eth0: mtu 1500 qdisc pfifo_fast state NEZNÁMY qlen 1000 link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff inet 192.168.56.1/24 brd 192.258. globálny rozsah 192.258. :800:27ff:fe00:0/64 odkaz rozsahu valid_lft navždy preferovaný_lft navždy

A tiež host2 s rozhraním eth1

Host2:~# ip addr show dev eth1 3: eth1: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:fd:e5:aa brd ff:ff:ff:ff:ff:ff inet 192.168.56.33/24 rozsah globálny eth1 inet6 fe80: :fefd:e5aa/64 odkaz rozsahu valid_lft navždy preferovaný_lft navždy

Predpokladajme, že doteraz neprebiehala žiadna sieťová výmena údajov medzi hostiteľmi a ak spustíte príkaz ip neigh show na hostiteľovi 2, uvidíte, že v tabuľke ARP nie sú žiadne položky. Urobme malý experiment. Spustite pomôcku tcpdump na jednom z virtuálnych rozhraní hostiteľa1:

Host1:~# tcpdump -ne -i eth0 tcpdump: podrobný výstup je potlačený, použite -v alebo -vv na úplné počúvanie protokolu na eth0, typ prepojenia EN10MB (Ethernet), veľkosť zachytenia 65535 bajtov

Host1:~# ping -c 1 192.168.56.33 PING 192.168.56.33 (192.168.56.33) 56 (84) bajtov dát. 64 bajtov z 192.168.56.33: icmp_req=1 ttl=64 time=1.06 ms --- 192.168.56.33 ping štatistika --- 1 paket odoslaný, 1 prijatý, 0 % strata paketu, čas 0 ms rtt min/avg/max = 1,067/1,067/1,067/0,000 ms

Potom sa v tabuľke ARP systému host1 objavil záznam o IP adrese hostiteľa2:

Host1:~# ip neigh show dev eth0 192.168.56.33 lladdr 01:00:27:77:e5:00 HOST2

Na virtuálnej konzole nám tcpdump zobrazil nasledujúce informácie:

Host1:~# tcpdump -ne -i eth0 tcpdump: podrobný výstup je potlačený, použite -v alebo -vv na počúvanie plného protokolu na eth0, typ prepojenia EN10MB (Ethernet), veľkosť záznamu 65535 bajtov 12:16:29.465780 0a:00 :27:00:00:00 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), dĺžka 42: Žiadosť kto-má 192.168.56.33 tell 192.168.56.1, dĺžka 28 12:16:29.40667 :00:27:77:e5:00 > 0a:00:27:00:00:00, ethertype ARP (0x0806), dĺžka 42: Odpoveď 192.168.56.33 je-o 01:00:27:77:e5:00 , dĺžka 28 12:16:29.466815 0a:00:27:00:00:00 > 01:00:27:77:e5:00, ethertype IPv4 (0x0800), dĺžka 98: 192.168.56.1 MP 192.168.56.1 > 1925. echo request, id 5284, seq 1, length 64 12:16:29.467934 01:00:27:77:e5:00 > 0a:00:27:00:00:00, ethertype IPv4 (0x0800), length 92.16 81 .56.33 > 192.168.56.1: ICMP echo response, id 5284, seq 1, dĺžka 64 ^C 4 pakety zachytené 4 pakety prijaté filtrom 0 paketov zahodených jadrom

Každý záznam sieťového paketu v tomto formáte obsahuje čas zachytenia paketu, zdrojovú a cieľovú MAC adresu, typ protokolu, dĺžku paketu a informácie o obsahu paketu. Prvá nahrávka opisuje požiadavku na vysielanie ARP z adresy MAC rozhrania eth0 hostiteľa systému1 („ Kto má adresu 192.168.56.33, hovorí 192.168.56.1"). Druhý záznam- odpoveď z MAC adresy hostiteľa2 na MAC adresu hostiteľa1 (" 192.168.56.33 má MAC adresu 01:00:27:77:e5:00"). Tretí a štvrtý záznam (Žiadosť ICMP A ICMP odpoveď) sú výsledkom príkazu ping spusteného na hostiteľovi1. Potom bol tcpdump prerušený. Pred vypnutím vypíše tcpdump štatistiku prevádzky: počet zachytených paketov, prijatých filtrom a vyradených jadrom

Preto systém host1, aby odoslal štandardnú požiadavku na odozvu stroju host2, najprv prijal MAC adresy stroja host2 pomocou protokolu ARP a zadal ich, naviazané na IP adresu, do svojej tabuľky ARP.

Analýza prevádzky na transportnej vrstve (TCP, UDP) pomocou tcpdump

Predpokladajme, že na systéme host2 je nainštalovaný určitý WEB server. Skúsme otvoriť stránku z tohto webového servera na počítači host1 pomocou prehliadača konzoly lynx:

Host1:~# rys 192.168.56.33

Na inej konzole najskôr spustite tcpdump s parametrami filtrovania:

Host1:~# tcpdump -n -i eth0 hostiteľ 192.168.56.33 a port 80 tcpdump: podrobný výstup je potlačený, použite -v alebo -vv na úplné počúvanie protokolu na eth0, typ odkazu EN10MB (Ethernet), veľkosť záznamu 65535 bajtov 15 :44:37.837393 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [S], seq 1209026235, win 5840, options , length 0 15:481117.0.9 9 2.168.56.1.41533 : Flags , seq 370041518, ack 1209026236, win 5792, options , length 0 15:44:37.838157 IP 192.168.56.1.41533 > 192.168.56.31 options, 192.168.56.31 options 5: 44:37.839254 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags , seq 1:222, ack 1, win 46, options , length 221 15:44:37.31399. 168.56.1.41533 : Flags [.], ack 222, win 1716, options , length 0 15:44:37.848118 IP 192.168.56.33.80 > 192.168.56.1.41533: Wings , seq 1, 71, a 6 options 445 15:44:37.848156 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [.], ack 446, win 54, options , length 0 15:44:38.33897.0 1 68.56.1 . 41533: Flags , seq 446, ack 222, win 1716, options , length 0 15:44:37.850366 IP 192.168.56.1.41533 > 192.168.56.33,41533, 5 Flags 443,80: win 2 options 0 15:44:37.851267 IP 192.168.56.33.80 > 192.168.56.1.41533: Príznaky [.], potvrdenie 223, výhra 1716, možnosti , dĺžka 0 ...

IN v tomto príklade klient (192.168.56.1) z portu TCP 41533 nadviaže spojenie so serverom (192.168.56.33), ktorý počúva na porte 80, odošle požiadavku, prijme potrebné údaje a spojenie sa ukončí.

Hlavička TCP segmentu, okrem čísla portu príjemcu a odosielateľa obsahuje množstvo parametrov:

  • Poradové číslo(nasledovné). Určuje poradie bajtov v toku odosielanom do siete (offset prvého bajtu v segmente vzhľadom na začiatok toku údajov).
  • Potvrdené číslo(ACK). Maximálny počet bajtov v prijatom segmente sa zvýši o 1. Potvrdenia odoslané odosielateľovi súčasne slúžia ako požiadavka na novú časť dát.
  • Kontrolné príznaky(SYN - S, ACK, FIN -F, RST - R, PSH - P, URG)
  • okno(win) - počet bajtov údajov očakávaný odosielateľom údajov, počnúc bajtom, ktorého číslo je uvedené v poli potvrdenia. Pre optimalizáciu prenosu odosielateľ nečaká na potvrdenie pre každý odoslaný segment, ale môže poslať do siete skupinu do segmentu (avšak v bajtoch nie väčších ako je veľkosť okna). Ak je kvalita kanála nízka (veľa žiadostí o opakovaný prenos, potvrdenia sa stratia), okno sa zníži, ak je dobré, okno sa zväčší.
  • možnosti. Používa sa na riešenie pomocných problémov. Prenáša sa napríklad MSS (Maximum segment size) – maximálna veľkosť segmentu.

Proces vytvárania obojsmerného pripojenia TCP sa odráža v prvých troch záznamoch tcpdump:

  • Klient pošle serveru TCP segment s nastaveným príznakom SYN, počiatočné „náhodné“ číslo (1209026235), z ktorého budú očíslované bajty v streame, ktorý odosiela, maximálna veľkosť okna je množstvo, ktoré má server povolené prenášať bez potvrdenia od klienta (5840): 15: 44:37.837393 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags [S], seq 1209026235, win 5840, options
  • Server odošle klientovi segment TCP s nastavenými príznakmi SYN a ACK, počiatočným „náhodným“ číslom (370041518), z ktorého budú očíslované bajty v toku, ktorý odosiela, a maximálnou veľkosťou okna pre klienta (5792). Tento segment tiež potvrdzuje prijatie požiadavky na pripojenie od klienta: 15:44:37.838118 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags , seq 370041518, ack 120041518, ack 120041518, ack 1209,026 options
  • Klient odošle serveru TCP segment s nastaveným príznakom ACK, čo je potvrdenie prijatia segmentu zo servera (ďalej tcpdump zobrazuje relatívne hodnoty seq a ask): 15:44:37.838157 IP 192.168.56.1 .41533 > 192.168.56.33.80: Príznaky [.], potvrdenie 1, výhra 46, možnosti , dĺžka

Potom spojenie sa považuje za nadviazané.

V ďalšej dvojici záznamov klient odošle požiadavku protokolu aplikačnej vrstvy (221 bajtov) na server v sekcii segmentových údajov a od servera dostane potvrdenie o jej prijatí:

15:44:37.839254 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags , seq 1:222, ack 1, win 46, options , length 221 15:49926.83.0 92,168. 56.1 .41533: Vlajky [.], potvrdenie 222, výhra 1716, možnosti , dĺžka 0

V tomto prípade sa príznak PSH (P) používa na upozornenie odosielajúcej strany, že prijímajúca strana je pripravená prijímať dáta. Potom server odošle údaje klientovi (445 bajtov) a dostane od neho potvrdenie o prijatí:

15:44:37.848118 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags , seq 1:446, ack 222, win 1716, options , length 445 175.416:8 533 > 192,168. 56,33 ,80: Vlajky [.], potvrdenie 446, výhra 54, možnosti , dĺžka 0

Potom sa z iniciatívy servera spojenie ukončí. Server odošle paket s nastaveným príznakom FIN:

15:44:37.849738 IP 192.168.56.33.80 > 192.168.56.1.41533: Flags , seq 446, ack 222, win 1716, options , length 0

Klient tiež odpovedá odoslaním paketu s nastaveným príznakom FIN, tento paket je zároveň potvrdením prijatia požiadavky na ukončenie spojenia zo servera:

15:44:37.850366 IP 192.168.56.1.41533 > 192.168.56.33.80: Flags , seq 222, ack 447, win 54, options , length 0

Server môže iba potvrdiť príjem segmentu FIN od klienta:

15:44:37.851267 IP 192.168.56.33.80 > 192.168.56.1.41533: Príznaky [.], potvrdenie 223, výhra 1716, možnosti , dĺžka 0

Reakcia tcpdump na pokus o pripojenie k uzavretému portu 23/tcp:

21:56:14.381091 IP 192.168.56.1.54040 > 192.168.56.33.23: Flags [S], seq 2956835311, win 5840, options , dĺžka 0 21:5816:146.3 192.168.56.1.54040 : Flags, seq 0, ack 2956835312, win 0, length 0

V tomto príklade sa systém 192.168.56.1 pokúsi pripojiť k neexistujúcej službe TCP na uzle 192.168.56.33. Vzdialený systém odpovie odoslaním segmentu s nastaveným príznakom RST (reset).

Odpoveď tcpdump na odoslanie datagramu UDP na uzavretý port 53/udp:

21:55:16.925906 IP 192.168.56.1.41979 > 192.168.56.33.53: 6561+ A? www.tut.by. (28) 21:55:16.926615 IP 192.168.56.33 > 192.168.56.1: ICMP 192.168.56.33 udp port 53 nedostupný, dĺžka 64

Tento príklad sa pokúša odoslať datagram UDP na neexistujúci port na vzdialenom systéme. UDP zvyčajne odpovedá odoslaním správy ICMP zdrojovému hostiteľovi, že port je nedostupný.

Ďalšie príklady použitia príkazu tcpdump:

# tcpdump -n -i ppp0 ether src 11:20:b3:d8:d8:2c

Záver sieťové štatistiky z rozhrania ppp0 (-i ppp0) bez konverzie IP na DNS (-n) tých rámcov, ktorých zdrojová MAC adresa je 11:20:b3:d8:d8:2c.

# tcpdump -n -e -i vlan0 éterové vysielanie

Výstup vysielania z rozhrania vlan0.

# tcpdump -n -i eth0 src 192.168.66.1

Filtrujú sa sieťové pakety, ktorých hlavička obsahuje IP adresu 192.168.66.1 v poli zdroja.

# tcpdump -n -i eth0 hostiteľ 192.168.66.1

Filtrujú sa pakety, v ktorých je táto adresa IP špecifikovaná ako zdroj alebo cieľ paketu.

# tcpdump -n -i eth0 src net 10.0.0.0 maska ​​255.0.0.0

Filtrujú sa pakety, ktorých zdroj označuje uzly siete 10.0.0.0/8.

# tcpdump -n -i eth0 icmp

Vysiela iba ICMP pakety z rozhrania eth0.

Tu pravdepodobne ukončím aktuálny článok. Článok aktualizujem, keď sa objavia nové príklady. Dúfam, že materiál bude užitočný nielen pre mňa

V článku boli použité príklady a niektoré materiály z intuitívnych prednášok.

S pozdravom, McSim!

Tento tutoriál vám ukáže, ako izolovať prenos rôznymi spôsobmi – od IP cez port, protokol až po prevádzku na aplikačnej vrstve – aby ste čo najrýchlejšie našli presne to, čo potrebujete.

tcpdump je nástroj, ktorý by sa mal každý naučiť ako základ pre analýzu paketov.

Nainštalujte tcpdump pomocou apt install tcpdump (Ubuntu) alebo yum nainštalujte tcpdump (Redhat/Centos)

Začnime základným príkazom, ktorý nám zabezpečí prenos HTTPS:

tcpdump -nn S X port 443

04:45:40.573686 IP 78.149.209.110.27782 > 172.30.0.144 .443 : Príznaky [.], potvrdenie 278239097, výhra 28, možnosti , dĺžka 0 0x0000: 4500 0034 0014 0000 2e06 c005 4e8e d16e E..4........N..n 0x0010: ac1e 0090 6c86 01bb 8e0a b73e 1095 9779 ....l......>...y 0x0020: 8010 001c d202 0000 0101 080a 3803 7b55 ............8.(U 0x0030: 4801 8100

Môžete získať jeden paket s -c 1 , alebo nčíslo s -c n .

To ukázalo určitú premávku HTTPS, pričom v pravej časti výstupu je viditeľný hexadecimálny displej (žiaľ, je šifrovaný). Len si pamätajte – ak máte pochybnosti, spustite príkaz uvedený vyššie s portom, ktorý vás zaujíma, a mali by ste byť na ceste.

Príklady

PacketWizard™ nie je v skutočnosti ochranná známka, ale mala by byť.

odborník pripravujúci sa na spustenie tcpdump

Teraz, keď ste schopní získať základnú návštevnosť, prejdime si početnými príkladmi, ktoré pravdepodobne budete potrebovať pri svojej práci v oblasti sietí, bezpečnosti alebo ako akýkoľvek typ PacketWizard™.

Všetko na rozhraní

Stačí sa pozrieť, čo sa deje, tým, že sa pozriete na to, čo zasahuje vaše rozhranie.

Alebo dostať všetky rozhrania s -i ľubovoľné .

tcpdump -i eth0

Nájdite návštevnosť podľa IP

Jeden z najbežnejších dopytov, pomocou hostiteľa , môžete zobraziť návštevnosť smerujúcu do alebo z 1.1.1.1.

Typy výrazov:

hostiteľ, sieť a port.

src a dst.

hostiteľ, sieť a port.

tcp, udp, icmp a mnoho ďalších.

hostiteľ tcpdump 1.1.1.1

06:20:25.593207 IP 172.30.0.144.39270 > jedna.jedna.jedna.domena : 12790+ A? google.com. (28) 06:20:25.594510 IP one.one.one.one .domain > 172.30.0.144.39270: 12790 1/0/0 A 172.217.15.78 (44)

Ak chcete vidieť premávku iba v jednom alebo druhom smere, môžete použiť src a dst .

tcpdump src 1.1.1.1
tcpdump dst 1.0.0.1

Hľadanie paketov podľa siete

Ak chcete nájsť pakety smerujúce do alebo z konkrétnej siete alebo podsiete, použite možnosť net.

Môžete to skombinovať aj s možnosťami src a dst.

tcpdump net 1.2.3.0/24

Získajte obsah paketu s hexadecimálnym výstupom

Hexadecimálny výstup je užitočný, keď chcete vidieť obsah príslušných paketov, a často sa najlepšie používa, keď izolujete niekoľko kandidátov na bližšie preskúmanie.

tcpdump -c 1 -X icmp

Zhrnutie

Tu sú tipy na jedlo.

  1. tcpdump je cenný nástroj pre každého, kto sa chce dostať do siete alebo .
  2. Surový spôsob prepojenia s prevádzkou v kombinácii s presnosťou, ktorú ponúka pri kontrole paketov, z neho robí najlepší možný nástroj na učenie sa TCP/IP.
  3. Analyzátory protokolov ako Wireshark sú skvelé, ale ak chcete skutočne zvládnuť packet-fu, musíte sa najprv stať jedným s tcpdump.

No, tento základ by vám mal pomôcť, ale manuálová stránka by mala byť vždy po ruke pre najpokročilejšie a jednorazové scenáre použitia. Naozaj dúfam, že to bolo pre vás užitočné, a ak máte nejaké otázky, neváhajte.

Poznámky

  1. Momentálne (tak trochu) píšem knihu o tcpdump pre No Starch Press.
  2. Hlavný obrázok je z SecurityWizardry.com.
  3. Niektoré z izolačných filtrov požičaných z

tcpdump pokyny v ruštine a príklady.

-A určuje výstup každého paketu (bez hlavičiek linkovej vrstvy) vo formáte ASCII. Tento režim je užitočný na zhromažďovanie návštevnosti HTTP.

-c <число пакетов>určuje, že program sa ukončí po zachytení určeného počtu paketov.

-C<размер файла>určuje, či sa má skontrolovať veľkosť zachytávacieho súboru predtým, ako sa doň zapíše každý nový paket. Ak veľkosť súboru presiahne parameter file_size, súbor sa zatvorí
a je vytvorený nový súbor zapisovať doň pakety. Pre zachytávacie súbory sa používa názov určený parametrom -w a počnúc druhým súborom sa názov pridáva ako
prípona číslo súboru. Premenná file_size určuje veľkosť súboru v miliónoch bajtov (nie megabajty = 1 048 576 bajtov).

-d určuje výstup výpisu skompilovaného kódu zodpovedajúceho balíku vo formáte čitateľnom pre človeka a ukončenie programu.

-dd Vypíše zodpovedajúci kód ako fragment programu C.

-ddd vypíše kód zhody ako reťazec desiatkových hodnôt, pred ktorým bude reťazec s hodnotou počítadla.

-D zobrazí zoznam sieťových rozhraní v systéme, z ktorých môže tcpdump zbierať pakety. Každé sieťové rozhranie má názov a číslo, za ktorými môže nasledovať
textový popis rozhrania. Názov a číslo rozhrania možno použiť s príznakom -i na zadanie zberu paketov z jedného rozhrania.

Táto možnosť môže byť veľmi užitočná pre systémy, ktoré neposkytujú informácie o dostupných sieťových rozhraniach3.

Príznak -D nie je podporovaný, ak bol tcpdump skompilovaný pomocou stará verzia libpcap, ktorý nepodporuje funkciu pcap_findalldevs().

-e vytlačí hlavičku spojovacej vrstvy na každom riadku výpisu.

-E určuje použitie algoritmu a tajomstva spi@ipaddr na dešifrovanie paketov IPsec ESP odoslaných na adresu ipaddr a obsahujúcich hodnotu a v poli Index parametra zabezpečenia
spi. Kombináciu spi a adresy je možné opakovať pomocou čiarky resp Nový riadok. Všimnite si, že nastavenie tajomstva pre pakety IPv4 ESP v
v súčasnosti podporované.

Algoritmy, ktoré možno použiť, sú des-cbc, 3des-cbc, blowfish-cbc, rc3-cbc, cast128-cbc alebo none. Predvolený algoritmus je des-cbc. Možnosť dešifrovania
balíky sa poskytujú iba v prípadoch, keď boli pri kompilácii tcpdump povolené možnosti podpory kryptografie.

Tajný parameter obsahuje ASCII text tajného kľúča ESP. Ak tajenka začína 0x znakmi, prečíta sa hexadecimálnu hodnotu. Možnosť predpokladá použitie
ESP podľa RFC 2406, nie RFC 1827. Táto možnosť je podporovaná iba na účely ladenia a mala by sa používať v reálnom svete tajné kľúče by nemal, keďže vstúpil v
príkazový riadok Kľúč IPsec je dostupný pre ostatných používateľov systému4.

Okrem explicitného určenia volieb na príkazovom riadku ich možno zadať v súbore volieb, ktorý tcpdump prečíta, keď prijme prvý paket ESP.

-f nastavuje výstup cudzích IPv4 adries v číselný formát. Použitie tejto možnosti vám umožní zbaviť sa problémov, ktoré sa vyskytujú na serveroch Sun NIS pri pokuse o vysielanie
nemiestne adresy. Cudzosť adresy IPv4 sa kontroluje pomocou adresy a masky rozhrania, ktoré prijalo paket. Ak adresa rozhrania a maska ​​nie sú dostupné
(napríklad pri použití nečíslovaných rozhraní alebo pri zachytávaní paketov zo všetkých adries v systéme Linux pomocou fiktívneho rozhrania ľubovoľného), bude táto možnosť fungovať
nesprávne.

-F<файл> určuje použitie filtrov obsiahnutých v zadanom súbore. V tomto prípade sa filtre zadané v príkazovom riadku ignorujú.

-i<интерфейс> určuje kolekciu paketov zo zadaného rozhrania. Ak rozhranie nie je zadané, tcpdump vyhľadá v systéme zoznam dostupných rozhraní a vyberie z neho aktívne zariadenie s minimálnou
číslo (okrem spätnej slučky).

IN Linuxové systémy, počnúc jadrom 2.2 je podporované fiktívne rozhranie s názvom any, ktoré zabezpečuje zber paketov zo všetkých aktívnych rozhraní systému. Upozorňujeme, že poplatok
pakety zo zariadenia any sa vykonáva v normálnom (nie promiskuitnom) režime.

Ak váš systém podporuje príznak -D, môžete zadať ako argument číslo rozhrania, ktoré sa vytlačí pri použití tohto príznaku.

-l nastaví stdout line buffering. Táto možnosť je užitočná v prípadoch, keď chcete počas zhromažďovania paketov zobraziť údaje. Napríklad príkazy

tcpdump -l | tee dat

tcpdump -l > dat & tail -f dat

poskytujú záznam paketov do dát súboru a simultánny výstup do konzoly.

-L určuje výstup zoznamu známych typov spojovacej vrstvy a ukončenie programu.

-m<файл> načíta modul definícií SMI MIB zo zadaného súboru. Túto možnosť je možné použiť opakovane na načítanie viacerých modulov MIB.

-n zakáže konverziu adries a čísel portov na symbolické názvy.

-N určuje použitie iba názvov hostiteľov, nie plne kvalifikovaných názvov domén. Napríklad namiesto lhotze.bilim-systems.net pri použití tejto možnosti, my pracovná stanica bude
označené ako lhotze.

-O zakáže optimalizátor kódu na kontrolu, či pakety zodpovedajú podmienkam filtrovania. Túto možnosť použite, ak máte pocit, že optimalizátor nepracuje správne.

-p hovorí programu, že rozhranie nemusí byť uvedené do režimu snímania5. Voľba -p nemôže byť použitá v spojení s etherovým hostiteľom (local-hw-addr) alebo etherovým vysielacím filtrom.

-qšpecifikuje výstup minimálneho množstva informácií.

-R keď je nastavený tento príznak, predpokladá sa, že používajú pakety ESP/AH stará verzia Specification6 a tcpdump nevypíšu polia na zabránenie opakovaného prehrávania.
prehrávanie). Pretože špecifikácia ESP/AH neobsahuje polia s číslami verzie, tcpdump nemôže určiť verziu protokolu ESP/AH z hlavičiek paketov.

-r<файл> určuje čítanie údajov zo súboru, ktorý bol predtým vytvorený pomocou príkazu tcpdump -w alebo pomocou iného programu, ktorý podporuje formát tcpdump (napríklad Ethereal). Ak v
Názov súboru je nastavený na - a použije sa dátový tok zo štandardného vstupného zariadenia (stdin).

-S nastavuje výstup absolútnych sekvenčných čísel TCP namiesto relatívnych.

-s nastavuje zachytávanie bajtov z každého paketu snaplen namiesto predvolených 68 bajtov7. Hodnota 68 je vhodná pre protokoly IP, ICMP, TCP a UDP, ale môže viesť k strate
informácie o protokole pre niektoré balíky DNS a NFS. Strata niektorých paketov v dôsledku malej veľkosti snímky je indikovaná vo výstupných dátach poľami formulára
[|proto]“, kde proto je názov úrovne protokolu, na ktorej bola časť paketu odrezaná8. Všimnite si, že zvýšenie záberu bude mať za následok ďalšie dočasné
náklady na spracovanie paketov a zníženie počtu paketov vo vyrovnávacej pamäti, čo môže viesť k strate niektorých paketov. Použite minimálnu hodnotu snaplen, ktorá to umožní
predídete strate informácií o protokole, ktorý vás zaujíma. Nastavenie snaplen=0 zachytí kompletné pakety.

-T<тип> nastavuje interpretáciu paketov vybraných pomocou filtra ako paketov typu určeného parametrom. Aktuálne podporované typy sú aodv9, cnfp10, rpc11, rtp12, rtcp13,
snmp14, tftp15, vat16 a wb17.

-t zakáže výstup časových pečiatok v každom riadku výpisu.

-tt určuje výstup neformátovaných časových pečiatok na každom riadku výpisu.

-ttt určuje výstup časových intervalov (v mikrosekundách) medzi predchádzajúcim zachytením a tohto balíka v každom riadku skládky.

-tttt určuje výstup časových pečiatok v predvolenom formáte pre každý riadok výpisu.

-u nastavuje výstup rukovätí NFS bez dekódovania.

-U nastavuje režim „ukladanie na úrovni dávky“ pre súbory uložené pomocou voľby -w. V tomto režime je každý paket zapísaný do výstupného súboru hneď, ako je zachytený
(bez čakania na naplnenie výstupnej vyrovnávacej pamäte). Príznak -U nebude podporovaný, ak bol tcpdump skompilovaný so starou voľbou libpcap, ktorá túto funkciu nepodporuje
pcap_dump_flush().

-v určuje výstup Ďalšie informácie pri zachytávaní súborov. Tieto informácie môžu zahŕňať hodnotu TTL (Time to Live), identifikáciu, celkovú veľkosť, možnosti IP atď. Kedy
Pri použití tohto príznaku sa vykonávajú aj dodatočné kontroly integrity paketov pomocou kontrolných súčtov (napríklad pre protokoly IP a ICMP).

-vvšpecifikuje dodatočné zvýšenie objemu výstupných informácií (napríklad úplné dekódovanie paketov SMB, výstup dodatočných polí odozvy NFS atď.).

-vvv nastavuje maximálne množstvo zobrazovaných informácií (napríklad možnosti telnetu SB ... SE sa zobrazia úplne). Pri použití v spojení s prepínačom -X sa možnosti Telnetu zobrazia aj v
hexadecimálne znázornenie.

-w<файл> špecifikuje záznam nespracovaných paketov. Pakety zhromaždené do súboru možno neskôr zobraziť pomocou príznaku -r alebo preniesť do iných programov na analýzu
(napr. Éterický). Ak je ako názov súboru zadaný znak -, zápis sa vykoná na štandardné výstupné zariadenie (stdout).

-X určuje výstup hexadecimálneho výpisu (bez hlavičky spojovacej vrstvy) pre každý zachytený paket. Množstvo zobrazených informácií je určené menšou z dvoch hodnôt -
veľkosť balenia a hodnota parametra snaplen. Všimnite si, že pri zachytávaní rámcov celej vrstvy odkazu môže výpis obsahovať aj výplňové bajty, ak je paket sieťovej vrstvy
má malú veľkosť.

-xx nastavuje výstup hexadecimálneho výpisu pre každý paket vrátane hlavičiek linkovej vrstvy.

-X určuje výstup výpisu v hexadecimálnom a ASCII formáte bez hlavičiek linkovej vrstvy. Táto možnosť môže byť veľmi pohodlná pri analýze nových protokolov.

-XX určuje výstup výpisu v hexadecimálnom a ASCII formáte vrátane hlavičiek linkovej vrstvy.

-y<тип> určuje typ spojovacej vrstvy použitej pri zachytávaní paketov. Podporované hodnoty je možné zobraziť pomocou príznaku -L.

Príklady.

  • Zachytávame všetku odchádzajúcu premávku

tcpdump -i re0 -n -nn -ttt dst host 192.168.1.2

  • Zachytávame všetku odchádzajúcu prevádzku okrem našej relácie ssh, pretože ide o veľmi veľký tok údajov.

tcpdump -i re0 -n -nn -ttt ‘hostiteľ dst 192.168.1.110 a nie (hostiteľ src 192.168.1.2 a port dst 22)’

  • Zobraziť dns komunikáciu

tcpdump -i re0 -n -nn -ttt ‘hostiteľ 192.168.1.110 a port 53’

  • Zobraziť pakety icmp

tcpdump -i re0 -n -nn -ttt ‘ip proto \icmp’

  • Premávka prechádzajúca zo siete 10.7.20 s cieľom na sieti 10.7.0. alebo 10.7.24:

tcpdump -nvX src net 10.7.20.0.0/16 a dst net 10.7.0.0/8 alebo 10.7.24.0/16

  • Prevádzka prichádzajúca zo siete 10.7.0.0 do cieľových portov 22 alebo 4589:

tcpdump 'src 10.7.0.0 a (dst port 22 alebo 4589)'

  • Zobrazenie premávky na rozhraní:
  • zobraziť návštevnosť jedného hostiteľa:

hostiteľ tcpdump 192.168.1.1

  • Zobrazenie premávky v prístave:

tcpdump src port 80

  • Zobrazenie návštevnosti IP hostiteľovi:

tcpdump ip hostiteľ 192.168.1.2

  • Zobrazenie návštevnosti ARP k hostiteľovi:

tcpdump arp hostiteľ 192.168.1.2

  • Pozeráme sa na návštevnosť RARP pre hostiteľa:

tcpdump rarp hostiteľ 192.168.1.2

  • Pozeráme na premávku, okrem hostiteľa pav253

tcpdump nie je hostiteľom pav253

  • Pozeráme sa na premávku na pav253 a pav210

tcpdump hostiteľ pav253 alebo hostiteľ pav210

  • Pozeráme sa na obsah paketov na rozhraní re0 k hostiteľskej lokalite

tcpdump -X -i re0 hostiteľská lokalita

  • návštevnosť icq

tcpdump -X -i re0 port aol

  • Pozeráme sa na obsah paketov na rozhraní tun0 k hostiteľovi ya.ru, pričom čítame 1500 bajtov z každého paketu a nekonvertujeme IP na názov hostiteľa

tcpdump -X -s 1500 -n -i re0 hostiteľská lokalita

  • Najlepšie aktívne interakcie

tcpdump -tn -c 10000 -i re0 tcp alebo udp | awk -F "." „(tlač $1″.“$2″.“$3″.“$4)“ | \zoradiť | uniq -c | zoradiť -č | awk '$1 > 100'

  • Pozeráme sa na všetky TCP pakety s príznakom SYN (začiatok relácie).

tcpdump -i eth0 -nn tcp == 2 a src net 192.168.1.0/24

  • Pozrite si pakety syn a fin zvonku

tcpdump 'tcp & (tcp-syn|tcp-fin) != 0 a nie src a dst net 192.168.1.0'

  • Zobraziť všetky ipv4 http pakety z portu 80 okrem údajov syn/fin/ack

tcpdump ‘port tcp 80 a (((ip — ((ip&0xf)<>2)) != 0)’

  • Zobraziť iba balíky syn