Počítače Windows internet

Tcpdump ako zastaviť po určitom čase. Tcpdump je užitočná príručka s príkladmi. Zobrazenie zachytených paketov v HEX a ASCII pomocou tcpdump -xx

Ak potrebujete analyzovať alebo zachytiť sieťové pakety v systéme Linux, potom je najlepšie použiť na to pomôcku konzoly. tcpdump. Problém ale nastáva v jeho pomerne komplikovanom riadení. Bežnému používateľovi sa bude zdať, že je nepohodlné pracovať s nástrojom, ale je to len na prvý pohľad. Článok vysvetlí, ako tcpdump funguje, akú má syntax, ako ju používať a poskytne aj množstvo príkladov jej použitia.

Prečítajte si tiež: Sprievodcovia nastavením internetového pripojenia v Ubuntu , Debiane , Ubuntu Serveri

Väčšina vývojárov operačných systémov založených na Linuxe zahŕňa pomôcku tcpdump do zoznamu predinštalovaných, ale ak z nejakého dôvodu nie je vo vašej distribúcii, vždy si ju môžete stiahnuť a nainštalovať cez "Terminál". Ak je váš OS založený na Debiane a to sú Ubuntu, Linux Mint, Kali Linux a podobne, musíte spustiť tento príkaz:

sudo apt nainštalovať tcpdump

Počas inštalácie je potrebné zadať heslo. Upozorňujeme, že pri písaní sa nezobrazuje, musíte tiež zadať symbol na potvrdenie inštalácie "D" a stlačte Zadajte.

Ak máte Red Hat, Fedora alebo CentOS, príkaz na inštaláciu bude vyzerať takto:

sudo yam nainštalujte tcpdump

Po nainštalovaní pomôcky ju môžete okamžite použiť. O tomto a mnohých ďalších veciach bude reč neskôr v texte.

Syntax

Ako každý iný príkaz, aj tcpdump má svoju vlastnú syntax. Keď to viete, môžete nastaviť všetky potrebné parametre, ktoré sa budú brať do úvahy pri vykonávaní príkazu. Syntax je nasledovná:

tcpdump options -i filtre rozhrania

Pri použití príkazu musíte zadať rozhranie, ktoré chcete sledovať. Filtre a možnosti nie sú povinné premenné, ale umožňujú väčšie prispôsobenie.

možnosti

Hoci možnosť nie je potrebné špecifikovať, je potrebné uviesť dostupné. V tabuľke nie je uvedený ich celý zoznam, ale len tie najobľúbenejšie, no na vyriešenie väčšiny úloh sú viac než dostatočné.

Možnosť Definícia
-A Umožňuje triediť balíky vo formáte ASCII
-l Pridáva funkciu posúvania
-i Po zadaní je potrebné špecifikovať sieťové rozhranie, ktoré bude monitorované. Ak chcete spustiť monitorovanie všetkých rozhraní, zadajte za možnosť slovo „akýkoľvek“.
-c Ukončí proces sledovania po kontrole zadaného počtu paketov
-w Vygeneruje textový súbor so správou o overení
-e Zobrazuje úroveň internetového pripojenia dátového paketu
-L Zobrazuje iba tie protokoly, ktoré podporuje zadané sieťové rozhranie
-C Počas zachytávania balíka vytvorí ďalší súbor, ak je jeho veľkosť väčšia ako daná
-r Otvorí súbor na čítanie, ktorý bol vytvorený s voľbou -w
-j Formát časovej pečiatky sa použije na zapisovanie paketov
-J Umožňuje zobraziť všetky dostupné formáty časových pečiatok
-G Slúži na vytvorenie súboru s protokolmi. Voľba tiež vyžaduje dočasnú hodnotu, po ktorej sa vytvorí nový protokol.
-v, -vv, -vvv V závislosti od počtu znakov vo voľbe bude výstup príkazu podrobnejší (nárast je priamo úmerný počtu znakov)
-f Zobrazuje názov domény IP adries vo výstupe
-F Umožňuje čítanie informácií nie zo sieťového rozhrania, ale zo zadaného súboru
-D Zobrazuje všetky sieťové rozhrania, ktoré je možné použiť
-n Deaktivuje zobrazovanie názvov domén
-Z Určuje používateľa, pod ktorého kontom sa budú vytvárať všetky súbory
-K Preskočenie analýzy kontrolného súčtu
-q Stručná informačná ukážka
-H Umožňuje detekciu hlavičiek 802.11s
-Ja Používa sa pri zachytávaní paketov v režime monitora

Po analýze možností o niečo nižšie prejdeme priamo k ich aplikáciám. Medzitým sa zvážia filtre.

Filtre

Ako bolo spomenuté na samom začiatku článku, do syntaxe tcpdump môžete pridať filtre. Teraz sa budú považovať za najobľúbenejšie z nich:

Všetky vyššie uvedené filtre je možné navzájom kombinovať, takže pri vydaní príkazu uvidíte len tie informácie, ktoré chcete vidieť. Aby sme podrobnejšie porozumeli použitiu vyššie uvedených filtrov, stojí za to uviesť príklady.

Príklady použitia

Teraz bude uvedená bežne používaná syntax príkazu tcpdump. Nie je možné ich všetky vymenovať, pretože ich variácií môže byť nekonečné množstvo.

Zobrazenie zoznamu rozhraní

Odporúča sa, aby si každý používateľ najprv skontroloval zoznam všetkých jeho sieťových rozhraní, ktoré možno sledovať. Z tabuľky vyššie vieme, že na to musíme použiť možnosť -D, takže v termináli spustite nasledujúci príkaz:

Ako vidíte, v príklade je osem rozhraní, ktoré je možné zobraziť pomocou príkazu tcpdump. Článok poskytne príklady ppp0, môžete použiť akýkoľvek iný.

Bežné zachytávanie premávky

Ak potrebujete sledovať jedno sieťové rozhranie, môžete to urobiť pomocou možnosti -i. Po zadaní rozhrania nezabudnite zadať názov. Tu je príklad takéhoto príkazu:

sudo tcpdump -i ppp0

Poznámka: pred samotným príkazom musíte zadať "sudo", pretože to vyžaduje práva superužívateľa.

Poznámka: po stlačení Enter bude "Terminál" nepretržite zobrazovať zachytené pakety. Ak chcete zastaviť ich tok, musíte stlačiť kombináciu klávesov Ctrl + C.

Ak spustíte príkaz bez ďalších možností a filtrov, uvidíte nasledujúci formát zobrazenia sledovaných paketov:

22:18:52.597573 IP vrrp-topf2.p.mail.ru.https > 10.0.6.67.35482 : Flags , seq 1:595, ack 1118, win 6494, options , length 594

Kde je to zvýraznené:

  • modrá - čas prijatia balíka;
  • zelená - adresa odosielateľa;
  • fialová - adresa príjemcu;
  • šedá - dodatočné informácie o tcp;
  • červená - veľkosť paketu (zobrazená v bajtoch).

Táto syntax má schopnosť zobraziť sa v okne "Terminál" bez akýchkoľvek ďalších možností.

Zachytenie prevádzky pomocou voľby -v

Ako je známe z tabuľky, možnosť -v umožňuje zvýšiť množstvo informácií. Vezmime si príklad. Pozrime sa na rovnaké rozhranie:

sudo tcpdump -v -i ppp0

Tu si môžete všimnúť, že vo výstupe sa objavil nasledujúci riadok:

IP (tos 0x0, ttl 58 , id 30675, offset 0, príznaky , proto TCP (6) , dĺžka 52

Kde je to zvýraznené:

  • oranžová - verzia protokolu;
  • modrá - životnosť protokolu;
  • zelené pole dĺžka hlavičky;
  • fialová - verzia balíka tcp;
  • červená - veľkosť balenia.

Môžete tiež pridať voľbu do syntaxe príkazu -vv alebo -vvv, čo ešte viac zvýši množstvo informácií zobrazovaných na obrazovke.

Možnosť -w a -r

Tabuľka možností spomínala možnosť uložiť všetky výstupné dáta do samostatného súboru, aby si ich bolo možné pozrieť neskôr. Toto je možnosť -w. Použitie je pomerne jednoduché, stačí ho zadať v príkaze a potom zadať názov budúceho súboru s príponou ".pcap". Pozrime sa na príklad:

sudo tcpdump -i ppp0 -w súbor.pcap

Poznámka: počas zapisovania protokolov do súboru sa na obrazovke „Terminál“ nezobrazuje žiadny text.

Ak chcete zobraziť zaznamenaný výstup, musíte použiť možnosť -r, po ktorom napíšte názov predtým nahraného súboru. Aplikuje sa bez ďalších možností a filtrov:

sudo tcpdump -r súbor.pcap

Obe tieto možnosti sú skvelé, keď potrebujete uložiť veľké množstvo textu na neskoršiu analýzu.

Filtrovanie podľa IP

Z tabuľky filtrov to vieme dst umožňuje zobraziť na obrazovke konzoly len tie pakety, ktoré boli prijaté adresou, ktorá je uvedená v syntaxi príkazu. Preto je veľmi pohodlné zobraziť pakety prijaté vaším počítačom. Ak to chcete urobiť, v príkaze stačí zadať vašu IP adresu:

sudo tcpdump -i ppp0 ip dst 10.0.6.67

Ako vidíte, okrem dst, v príkaze sme zaregistrovali aj filter IP. Inými slovami, povedali sme počítaču, aby pri výbere paketov venoval pozornosť svojej IP adrese a nie iným parametrom.

Môžete tiež filtrovať odchádzajúce pakety podľa adresy IP. Vezmime si ako príklad našu IP. To znamená, že teraz budeme sledovať, ktoré pakety sú odosielané z nášho počítača na iné adresy. Ak to chcete urobiť, spustite nasledujúci príkaz:

sudo tcpdump -i ppp0 ip src 10.0.6.67

Ako vidíte, v syntaxi príkazu sme zmenili filter dst na src, čím poviete stroju, aby hľadal odosielateľa podľa IP.

Filtrovanie podľa HOST

Analogicky s IP v príkaze môžeme zadať filter hostiteľ na vyradenie paketov so zástupom záujmu. To znamená, že v syntaxi namiesto IP adresy odosielateľa / príjemcu budete musieť zadať jeho hostiteľa. Vyzerá to takto:

sudo tcpdump -i ppp0 dst hostiteľ google-public-dns-a.google.com

Na obrázku to môžete vidieť v "Terminál" zobrazujú sa iba pakety, ktoré boli odoslané z našej IP hostiteľovi google.com. Ako viete, namiesto hostiteľa google môžete zadať ľubovoľného iného.

Rovnako ako v prípade filtrovania podľa IP, v syntaxi dst možno nahradiť src ak chcete zobraziť pakety, ktoré sa odosielajú do vášho počítača:

sudo tcpdump -i ppp0 src hostiteľ google-public-dns-a.google.com

Poznámka: hostiteľský filter musí nasledovať po dst alebo src, inak príkaz vydá chybu. V prípade filtrovania podľa IP sú naopak dst a src pred ip filtrom.

Použitie filtra a a alebo

Ak potrebujete použiť niekoľko filtrov naraz v jednom príkaze, musíte na to použiť filter a alebo alebo(v závislosti od prípadu). Zadaním filtrov v syntaxi a ich oddelením týmito operátormi ich „urobíte“ ako jeden. Vyzerá to napríklad takto:

sudo tcpdump -i ppp0 ip dst 95.47.144.254 alebo ip src 95.47.144.254

Zo syntaxe príkazu je jasné, že chceme zobraziť "Terminál" všetky pakety, ktoré boli odoslané na adresu 95.47.144.254 a pakety prijaté na rovnakú adresu. Môžete tiež zmeniť niektoré premenné v tomto výraze. Napríklad namiesto IP zadajte HOST alebo priamo nahraďte samotné adresy.

Port a portrange filter

Filter prístav skvelé v prípadoch, keď potrebujete získať informácie o paketoch s konkrétnym portom. Ak teda chcete vidieť iba odpovede alebo dotazy DNS, musíte zadať port 53:

sudo tcpdump -vv -i ppp0 port 53

Ak chcete zobraziť pakety http, musíte zadať port 80:

sudo tcpdump -vv -i ppp0 port 80

Okrem iného je možné sledovať celý rad portov naraz. Na tento účel sa používa filter. rozsah portov:

sudo tcpdump portrange 50-80

Ako vidíte, v spojení s filtrom rozsah portov nie je potrebné špecifikovať ďalšie možnosti. Stačí si nastaviť rozsah.

Filtrovanie protokolov

Môžete tiež zobraziť iba návštevnosť, ktorá zodpovedá konkrétnemu protokolu. Na tento účel použite ako filter názov tohto protokolu. Pozrime sa na príklad udp:

sudo tcpdump -vvv -i ppp0 udp

Ako môžete vidieť na obrázku, po vykonaní príkazu in "Terminál" boli zobrazené iba pakety s protokolom udp. Podľa toho môžete filtrovať podľa iných, napr. arp:

sudo tcpdump -vvv -i ppp0 arp

alebo TCP:

sudo tcpdump -vvv -i ppp0 tcp

sieťový filter

Operátor net pomáha filtrovať pakety na základe ich sieťového označenia. Používanie je rovnako jednoduché ako ostatné – atribút musíte zadať v syntaxi net a potom zadajte sieťovú adresu. Tu je príklad takéhoto príkazu:

sudo tcpdump -i ppp0 net 192.168.1.1

Filtrovanie veľkosti paketov

Nezaoberali sme sa ďalšími dvoma zaujímavými filtrami: menej a väčší. Z tabuľky s filtrami vieme, že slúžia na zobrazenie väčších dátových paketov ( menej) alebo menej ( väčší) veľkosti uvedenej po zadaní atribútu.

Povedzme, že chceme monitorovať iba pakety, ktoré nepresahujú 50 bitovú značku, potom bude príkaz vyzerať takto:

sudo tcpdump -i ppp0 menej 50

Teraz sa poďme zobraziť "Terminál" pakety väčšie ako 50 bitov:

sudo tcpdump -i ppp0 väčšie ako 50

Ako vidíte, aplikujú sa rovnakým spôsobom, rozdiel je len v názve filtra.

Záver

Na konci článku možno usúdiť, že príkaz tcpdump je skvelý nástroj, pomocou ktorého môžete sledovať akýkoľvek dátový paket prenášaný cez internet. Na to však nestačí len zadať samotný príkaz "Terminál". Požadovaný výsledok môžete dosiahnuť iba vtedy, ak použijete všetky druhy možností a filtrov, ako aj ich kombinácie.

Pre systémy UNIX existuje veľa rôznych snifferov a analyzátorov premávky s pohodlným grafickým rozhraním a bohatou sadou funkcií. Žiadny z nich sa však nemôže porovnávať vo flexibilite, všestrannosti a rozšírenosti so staromódnym tcpdump. Tento nástroj je súčasťou mnohých distribúcií Linuxu a všetkých systémov BSD hneď po vybalení a môže vám pomôcť, keď nie sú k dispozícii iné nástroje.

Úvod

Pomôcka tcpdump je sieťový sledovač paketov príkazového riadka, ktorý nemá ani grafické, ani pseudografické rozhranie. Pre začiatočníkov sa môže zdať neohrabaný a príliš staromódny, no v šikovných rukách sa zmení na skutočný švajčiarsky nôž na otváranie akýchkoľvek sieťových paketov a protokolov. Skúsení správcovia systémov vždy odporúčajú začiatočníkom používať tcpdump namiesto akéhokoľvek iného nástroja 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 vyvíja a naďalej predstavuje štandard medzi podobnými nástrojmi pre operačný systém UNIX. Knižnicu na zachytávanie paketov libpcap vyvinutú špeciálne pre ňu teraz používa takmer každý sniffer pre systémy UNIX a mnohé podobné programy pre Windows.

V tomto článku sa budeme venovať všetkým aspektom práce s tcpdump, od základov práce s programom až po spôsob použitia pomôcky na detekciu 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, tcpdump musí mať úplný prístup k sieťovým rozhraniam), špecifikujte názov sieťového rozhrania a obmedzte počet 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 sa pokúsme sledovať výmenu iba s konkrétnym hostiteľom, napríklad pomocou domáceho smerovača:

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

Pozrime sa, čo nám tcpdump vypísal, pomocou dvoch riadkov zobrazených na snímke obrazovky „DNS dotaz očami tcpdump“ ako príklad. Dá sa ľahko pochopiť, že ide o požiadavku DNS (port 53) od 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 hádať, označujú 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, ostatné ponecháva tak, ako sú, a jednoducho vypíše obsah paketu. V tomto prípade tcpdump dekódoval DNS správy 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 prezentácie je takmer totožný s požiadavkou, 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) resp. samotné záznamy (A 213.180.204.3, A 77.88.21.3 , A 87.250.250.3...).

Arzenál tcpdump má podporu mnohých protokolov, vďaka čomu dokáže prezentovať v čitateľnej forme 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ť? V bežnej situácii jednoducho vypíše informácie o balíku. Môže to vyzerať nejako takto:

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

Toto je TCP paket, ktorého formát informácií je uvedený v tcpdump je nasledovný (polia sú oddelené čiarkami):

  • vlajky - nastaviť 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ých aplikácií, ale o ich obsahu nám 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 funkcia je veľmi užitočná pri analýze protokolov, v ktorých sa údaje prenášajú vo forme čistého textu, ako je napríklad HTTP. Pre binárne protokoly a protokoly so šifrovaním 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 zobrazia podrobné informácie o IP pakete:

(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é. Ako prvý prichádza na rad typ služby (TOS), po ňom nasleduje čas trvania paketu (TTL), identifikátor paketu, posun od začiatku prvého paketu v reťazci, príznaky, použitý protokol transportnej vrstvy (TCP, UDP, ICMP) a dĺžka .


Pokročilé vlastnosti

Väčšinu najdôležitejších funkcií tcpdump sme už prebrali, ale jeho funkčnosť je oveľa širšia. Napríklad sme použili príkazy hostiteľa a portu na zadanie adresy a portu, ktorý chceme filtrovať na výstupe, ale čo ak chceme vidieť iba pakety smerujúce na zadanú adresu, ale nie z nej odchádzať? 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 požiadaviek DNS):

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

Môžete tiež použiť alebo (alebo) a okrem (nie). Tcpdump tiež 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. Na tento účel sa používa 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 ). Ak chcete napríklad filtrovať iba pakety s nastaveným príznakom SYN (spustenie nadviazania spojenia TCP), 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, každý po jednom bite. Druhý bit je vyhradený pre príznak SYN. Vyššie uvedený záznam jednoducho skontroluje, či je tento bit nastavený. Mimochodom, čitateľnejšia forma tohto záznamu by vyzerala takto:

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

Praktické využitie

Pomôcka tcpdump sa bežne používa na dva účely: na ladenie siete, sieťových aplikácií a nových protokolov a na to, aby vás naučila základy TCP/IP. Pôjdeme opačným smerom a využijeme silu tcpdump na detekciu skenovania hostiteľov a sieťových útokov.

Na obr. Obrázok 1 ukazuje, ako vyzerá klasické skenovanie TCP portu vykonané Nmapom v protokoloch tcpdump. Jasne vidno 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ď príde paket RST, čo znamená, že na porte 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], sekv. 2610024277, ... 43337 > 192.168.0.111.22: Vlajky [.], ack 1, ...

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

Dávajte pozor aj na počty portov, ktoré sa majú vytriediť, nie sú generované náhodne, ale sú vyberané s ohľadom na najväčšiu prevalenciu. To znamená, že sa vykonáva rýchle skenovanie, alebo konkrétnejšie, Nmap s najväčšou pravdepodobnosťou beží bez akýchkoľvek príznakov.



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 skutočnosti pripojenia nie sú zahrnuté v protokoloch. Výstup tcpdump pre tento druh skenovania je znázornený na obrázku 1. 2. Je veľmi podobný protokolu bežného skenovania TCP, ale odozva skenera na otvorené porty je teraz iná:

192.168.0.100.48585 > 192.168.0.111.22: Vlajky[S], sek. 1679394613, ... 48585 > 192.168.0.111.22: Vlajky[R], 39 ... 1167

Je vidieť, že po prijatí schvaľovacieho paketu SYN-ACK skener spojenie nedokončí, ale okamžite ho ukončí, čím sa vyhne tomu, aby sa dostal 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 odošle späť správu ICMP nedostupný:

16:41:48.798310 IP 192.168.0.100.61020 > 192.168.0.111.18869: UDP, dĺžka 0

V opačnom prípade sa port považuje za otvorený. Ďalšou metódou skenovania je nulové skenovanie odosielaním paketov bez nastavených príznakov (nmap -sN). Reakcia na takéto pakety sa môže líšiť v závislosti od 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):

192.168.0.100.35331 > 192.168.0.111.5544: Vlajky , nasledujúce 3998959601, výhra 4096, urg 0, dĺžka 0

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 je vsak na systeme nainstalovany firewall, nebudu ziadne odpovedi a Nmap bude schopny pochopit, ci je port filtrovany.

Pomocou tcpdump môžete tiež sledovať rôzne typy záplav. 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 192.168.0.100 > 192.168.0.111: 16168.0.111: ICMP typ-#1613MP dĺžka-68

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. SYN) sú definované úplne rovnako.

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 na analýzu návštevnosti. Napríklad tcpdump možno použiť na vygenerovanie výpisu na vzdialenom počítači, potom ho odoslať na lokálny počítač a analyzovať pomocou wireshark:

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

Tu sme použili možnosť -w - na zapísanie výpisu do stdout 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 [chránený e-mailom]"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 identifikovať pakety s nesprávnym kontrolným súčtom, čo 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 hlavičky, o ktorej sme hovorili na začiatku prvej časti, je veľmi užitočná na ladenie rôznych protokolov a hľadanie problémov so sieťou. Môžeme ho použiť napríklad na zachytávanie sieťových paketov prenášaných cez 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é cez protokol 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 odoslané 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žiť ho na vyhľadávanie konkrétnych údajov vo vnútri prenášaných paketov. Túto úlohu oveľa lepšie 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

Nájdenie 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šetky zadajte ľubovoľné.
  • -n Neprekladať adresy IP na názvy DNS.
  • -nn Neprekladať adresy IP 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 balíkov (viac, viac, všetko).
  • -c [n] Zobraziť 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 - zobrazuje menej informácií (kvôli čitateľnosti).
  • -E - dešifrovať prenos IPsec pomocou zadaného kľúča.
  • -w - uloženie výpisu programu do súboru, argument - používa sa na zadanie stdout.

zistenia

V rukách skúseného používateľa sa tcpdump zmení na výkonný nástroj nielen na ladenie, ale aj na výskum anomálií. Vďaka bohatej sade operátorov a vlajok ho môžete použiť na to, aby ste sa dostali zo siete a preskúmali, čo skutočne potrebujete.

Tcpdump je mimoriadne praktický sieťový analyzátor, ktorý je veľmi užitočný pre správcov siete aj pre bezpečnostných pracovníkov. Prirodzene, aby ste pri práci s tcpdump získali maximum informácií, je jednoducho potrebné pochopiť zásobník protokolov TCP / IP. Pre pohodlie môžete použiť napríklad pohodlnejšie a inteligentnejšie programy, ale často sa vyskytujú situácie, keď nie je možné nainštalovať ďalšie služby na testovaný stroj, a potom je tcpdump jednoducho nenahraditeľný, správca, kvôli paketu analýza, neprebudí sa, umiestni na unixový server X-Windows, najmä preto, že na väčšine unixových systémov je štandardne dodávaná utilita tcpdump.

Pochopenie protokolu TCP/IP poskytuje široký rozsah použitia analyzátora a odstraňovania problémov so sieťou pomocou analýzy paketov. Pretože optimálne využitie tejto pomôcky si vyžaduje dobré pochopenie sieťových protokolov a ich fungovania, je to zábavná situácia, v ktorej inžinier potrebuje poznať a pochopiť mechanizmy sieťovej komunikácie. počítajúc do toho tcpdump je užitočný vo všetkých smeroch, od riešenia problémov až po samovzdelávanie.

Nižšie je uvedených niekoľko možností, ktoré vám pomôžu používať tento nástroj najúplnejším a najpodrobnejším spôsobom, najmä preto, že na všetky tieto polia a kľúče je ľahké zabudnúť a tieto príklady sú veľmi užitočné na osvieženie pamäte.

Prvý použitý prepínač je -n, ktorý zakazuje pokusy o konverziu adries na názvy domén, čím nám poskytuje čisté IP adresy s portami.

Druhým je -X, ktorý hovorí, že každý balík má vypísať hexadecimálny (hexadecimálny) aj ASCII obsah balíka.
A posledná možnosť je -S, ktorá nahradí výstup relatívneho TCP číslovania absolútnym číslovaním. Ide o to, že pri relatívnom číslovaní môžu byť niektoré problémy skryté pred vašou pozornosťou.

Musíte pochopiť, že hlavnou výhodou tcpdump oproti iným nástrojom je to, že umožňuje podrobné a manuálne analyzovanie paketov. Musíte tiež pamätať na to, že štandardne tcpdump používa iba prvých 68 bajtov paketu, vrátane. ak potrebujete vidieť viac, potom by ste mali použiť prepínač čísla -s, kde číslo je počet bajtov na zachytenie. Ak je číslo nastavené na 0, dôjde k úplnému zachyteniu paketov, preto je lepšie použiť hodnotu 1514, ktorá poskytne úplné zachytenie štandardného ethernetového paketu.

Zoznam najčastejšie používaných kľúčov:
-c: nastavenie tak, aby sa pred každým ďalším záznamom nasnímaného balíka skontrolovala veľkosť zachyteného súboru, ak je veľkosť väčšia, súbor sa uloží a záznam prejde do nového súboru
-e: vytlačí ethernetovú hlavičku (vrstvu prepojenia) na každý riadok výpisu
-i any: počúvať na všetkých rozhraniach v prípade, že potrebujete všetku premávku.
-n: Zakáže preklad adries na názvy domén alebo symbolov
-nn: Zakáže preklad adries a portov na názvy domén alebo symbolov
-q: Krátko vytlačte informácie za cenu zníženia výstupu informácií protokolu.
-X: výstup hexadecimálneho aj ASCII obsahu balíka
-v, -vv, -vvv: Určuje dodatočné informácie o zachytených paketoch, ktoré majú byť výstupom, čo umožňuje širšiu analýzu.
Niekoľko príkladov na použitie:

# Štandardný výstup paketov
tcpdump -nS
# Rozšírený štandardný výstup
tcpdump -nnvvS
# Hlboká analýza paketov
tcpdump -nnvvXS
# Najpodrobnejšie dopravné informácie
tcpdump -nnvvXSs 1514

Výrazy vám umožňujú vykonávať cielenejšie kontroly a definovať typy návštevnosti. Schopnosť používať výrazy robí z tcpdump veľmi produktívny nástroj v rukách správcu systému. Existujú tri hlavné typy výrazov: typ, dir a proto.
Možnosti výrazu typu sú hostiteľ, sieť a port.
Na vyjadrenie smeru daného dir sú dostupné možnosti src, dst, src alebo dst a src a dst.
Niekoľko štandardných výrazov:

hostiteľ // analyzuje návštevnosť na základe adresy IP (funguje aj so symbolickými názvami, ak nie je nastavené -n)
hostiteľ tcpdump 1.2.3.4

src, dst // analyzuje prevádzku len pre konkrétny cieľ alebo vysielač
tcpdump src 2.3.4.5
tcpdump dst 3.4.5.6

net // zachytávanie prevádzky patriacej do konkrétnej siete
tcpdump net 1.2.3.0/24

proto // pracuje s tcp, udp a icmp. Treba mať na pamäti, že proto sa nespomína
tcpdump icmp

port // analyzuje prevádzku z konkrétneho portu (prichádzajúcu alebo odchádzajúce)
tcpdump port 3389

src, dst port // filter na základe prichádzajúceho alebo odchádzajúceho portu
tcpdump src port 1025
tcpdump dst port 3389

Najvýkonnejším nástrojom sú však operandy, ktoré umožňujú nastaviť podmienky pre výrazy a možnosti pre podrobnejšiu izoláciu informácií o analyzovanej návštevnosti.

A
a alebo &&
ALEBO
alebo alebo ||
OKREM
nie alebo!

Prevádzka TCP zo zdroja 10.15.123.33 s cieľovým portom 3379:

# tcpdump -nnvvS tcp a src 10.15.123.33 a dst port 3379

Premávka prichádzajúca zo siete 192.168 s cieľom na sieťach 10 alebo 172.16:

# tcpdump -nvX src net 192.168.0.0/16 a dst net 10.0.0.0/8 alebo 172.16.0.0/16

Prevádzka bez ICMP s cieľom 192.168.0.2 a zo siete 172.16:

# tcpdump -nvvXSs 1514 dst 192.168.0.2 a src net 172.16.0.0/16 a nie icmp

Prevádzka z hostiteľov Eros alebo Ares , ale neprechádzajúca na štandardný port SSH (tento výraz vyžaduje rozlíšenie názvu):

# tcpdump -vv src eros alebo ares a nie dst port 22

Ako môžete vidieť z vyššie uvedených príkladov, môžeme vytvoriť akýkoľvek výraz na akýkoľvek účel. Pomocou komplexnej syntaxe môžeme z analýzy vylúčiť akýkoľvek typ návštevnosti.

Majte tiež na pamäti, že môžeme vytvárať dotazy, ktoré zahŕňajú skupiny a skupiny možností zadaných v jednom dotaze. Aby im však obslužný program tcpdump venoval pozornosť, musia byť umiestnené v zátvorkách, pričom výraz musí byť uvedený v jednoduchých úvodzovkách:
Prevádzka prichádzajúca z hostiteľa 10.0.2.4 do cieľových portov 3379 alebo 22:
# tcpdump ‘src 10.0.2.4 a (dst port 3379 alebo 22)’

Je tiež možné filtrovať na základe príznakov TCP, napríklad izolovať pakety SYN alebo RST:

Analyzujte všetky pakety URG:
# tcpdump 'tcp & 32 != 0'

Analyzujte všetky ACK pakety:
# tcpdump 'tcp & 16 != 0'

Analyzujte všetky PSH pakety:
# tcpdump 'tcp & 8 != 0'

Analyzujte všetky pakety RST:
# tcpdump 'tcp & 4 != 0'

Analyzujte všetky pakety SYN:
# tcpdump 'tcp & 2 != 0'

Tento tutoriál vám ukáže, ako izolovať prevádzku 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 s hexovým displejom viditeľným v pravej časti výstupu (žiaľ, je šifrovaný). Len si pamätajte – ak máte pochybnosti, spustite vyššie uvedený príkaz 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ájsť 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 je najlepšie použiť ho, 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

PREČO TCPDUMP?

Tcpdump je popredným sieťovým analytickým nástrojom pre profesionálov v oblasti informačnej bezpečnosti. Pre tých, ktorí chcú úplne porozumieť TCP / IP, je nevyhnutné, aby dostatočne rozumeli tejto dôležitej aplikácii. Mnohí radšej používajú nástroje vyššej úrovne, ako je Wireshark, ale myslím si, že je to chyba.

Keď používate nástroj, ktorý zobrazuje sieťovú prevádzku prirodzenejším (jednoduchším) spôsobom, zložitosť analýzy padá priamo na osobu, nie na aplikáciu. Tento prístup rozvíja pochopenie balíka TCP/IP, a preto dôrazne odporúčam používať tcpdump namiesto iných nástrojov vždy, keď je to možné.

15:31:34.079416 IP (tos 0x0, ttl 64, id 20244, offset 0, príznaky , proto: TCP(6), dĺžka: 60) source.35970 > dest.80: S, cksum 0x0ac1 (správne), 221647 2647022145 (0) Vyhrajte 5840 0x0000: 4500 003C 4F14 4006 7417 0ABB 0257 E. 0x0010: 4815 222A 8C82 0050 9DC6 5A41 0000 0000 H. "* ... P..za .... 0x0020: A002 16D0 0x0020 0000 0204 \ t 05b4 0402 080a ................ 0x0030: 14b4 1555 0000 0000 0103 0302

ZÁKLADY

Nižšie je uvedených niekoľko možností, ktoré môžete použiť pri konfigurácii tcpdump. Je ľahké ich zabudnúť a/alebo zameniť s inými typmi filtrov, ako je Wireshark, takže táto stránka vám môže slúžiť ako referencia. Tu sú tie hlavné, ktoré si sám rád pamätám podľa toho, čo sledujem.

MOŽNOSTI

  • -i any: počúvajte na všetkých rozhraniach a zistite, či nevidíte nejaký prenos.
  • -i eth0: počúvať na rozhraní eth0.
  • -D: Zobraziť zoznam dostupných rozhraní
  • -n: Zobrazuje IP adresy namiesto názvov hostiteľov.
  • -nn: Zobrazuje adresy IP a čísla portov namiesto názvov hostiteľov a názvov protokolov.
  • -q: Zobrazí minimálne množstvo informácií o balíku.
  • -t: Nezobrazovať časovú pečiatku na každom riadku.
  • -tttt: Určuje, že časové pečiatky sa vydávajú v predvolenom formáte pre každý riadok.
  • -X: Zobraziť obsah balíka v hexadecimálnom formáte aj v ASCII.
  • -XX: Rovnaké ako -X, ale zobrazuje aj ethernetovú hlavičku.
  • -v, -vv, -vvv: zvýšenie množstva vrátených informácií o balíku.
  • -c: získať iba x počet paketov a potom zastaviť.
  • -s: Zadajte dĺžku (veľkosť) zachytenia v bajtoch. Použite -s0, aby ste dostali všetko, pokiaľ úmyselne nechytíte menej.
  • -S: Vytlačí absolútne poradové čísla.
  • -e: Získajte ethernetovú hlavičku.
  • -q: Zobraziť informácie o minimálnom balíku.
  • -E: Dešifrovanie prenosu IPSEC poskytnutím šifrovacieho kľúča.
[Hodnota snaplength, predvolená pre tcpdump 4.0, sa zmenila zo 68 bajtov na 96 bajtov. Aj keď vám to poskytne viac informácií o balíku, nebudú to všetky informácie. Ak chcete získať úplné pokrytie, použite -s1514 alebo -s0]

VÝRAZY

V tcpdump vám výrazy umožňujú skrátiť rôzne typy návštevnosti a nájsť presne to, čo hľadáte. Zvládnutie výrazov a schopnosť ich kreatívne kombinovať je to, čo robí tcpdump skutočne silným.

Existujú tri hlavné typy výrazov: typ, dir a proto.

Typy možností: hostiteľ, sieť a port.

Adresáre vám umožňujú robiť src, dst a ich kombinácie.

Protokol vám umožňuje definovať: tcp, udp, icmp, ah a mnohé ďalšie.

PRÍKLADY

Takže teraz, keď sme videli, aké máme možnosti, pozrime sa na niekoľko príkladov z reálneho sveta, ktoré pravdepodobne uvidíme pri našej každodennej práci.

HLAVNÁ SPRÁVA

Pozrite sa na všetky rozhrania a pozrite sa, čo sa deje.

# tcpdump -i ľubovoľný

ŠPECIFICKÉ ROZHRANIE

Základný pohľad na to, čo sa deje na konkrétnom rozhraní.

# tcpdump -i eth0

PREDSTAVENIE RAW VÝSTUPU

Podrobný výstup bez rozlíšenia názvov hostiteľov alebo čísel portov, absolútnych sekvenčných čísel a človekom čitateľných časových pečiatok.

# tcpdump -ttttnnvvS

VYHĽADAŤ PREVÁDZKU PODĽA IP

Jeden z najbežnejších dopytov, toto vám ukáže návštevnosť z 1.2.3.4, či už ide o zdroj alebo cieľ.

# hostiteľ tcpdump 1.2.3.4

ZOBRAZIŤ VIAC INFORMÁCIÍ O HEX BALÍKU

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

# tcpdump -nnvXSs 0 -c1 icmp tcpdump: počúvanie na eth0, typ odkazu EN10MB (Ethernet), 23:11:10.370321 IP (tos 0x20, ttl 48, id 34859, dĺžka 453, príznaky 452, 23,83 > 72.21.34.42: icmp 64: echo požiadavka seq 0 0x0000: 4520 0054 882b 0000 3001 7cf5 45fe d52b E..T.+..0.|.E..5 "E..5" 081x02 0.0.0.0.0.0.0.0. 50"....%D 0x0020: ae5e 0500 0809 0a0b 0c0d 0e0f 1011 1213 .^............... 0x0030: 1415 1617 1819 1a1b 1c1d.221e1 ........!"# 0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&"()*+,-./0123 0x0050: 3435 3637 0 zachytených paketov 1 paket prijatý filtrom podľa jadra

FILTROVANIE PODĽA ZDROJA A CIEĽA

Vyčlenenie návštevnosti na základe zdroja alebo cieľa je veľmi jednoduché pomocou src a dst.

# tcpdump src 2.3.4.5 tcpdump dst 3.4.5.6

VYHĽADÁVAŤ BALÍKY PO SIETI

Ak chcete nájsť pakety do alebo z konkrétnej siete, použite možnosť net. Môžete to skombinovať s možnosťami src alebo dst.

# tcpdump net 1.2.3.0/24

ZOBRAZIŤ PREVÁDZKU SPOJEnú SO ŠPECIÁLNYM PRÍSTAVOM

Konkrétny dopravný port môžete nájsť pomocou možnosti portu, za ktorou nasleduje číslo portu.

# tcpdump port 3389 tcpdump src port 1025

ZOBRAZIŤ PREVÁDZKU JEDNÉHO PROTOKOLU

Ak hľadáte konkrétny typ návštevnosti, môžete použiť protokoly tcp, udp, icmp a mnohé ďalšie.

# tcpdump icmp

ZOBRAZIŤ LEN PREMÁVKU IP6

Celú prevádzku IP6 môžete nájsť aj pomocou možnosti protokolu.

VYHĽADAJTE PREVÁDZKU POMOCOU PRÍSTAVNÝCH PÁSIM

Na nájdenie prevádzky môžete použiť aj rozsah portov.

# tcpdump portrange 21-23

NÁJDETE PREVÁDZKU NA ZÁKLADE VEĽKOSTI BALÍKA

Ak hľadáte balíky konkrétnej veľkosti, môžete využiť tieto možnosti. Môžete použiť malé, veľké alebo akékoľvek symboly, ktoré od matematiky očakávate.

# tcpdump menej ako 32 tcpdump väčšie ako 64 tcpdump<= 128

PÍSOMNÉ ZÁZNAMY DO SPOLOČNOSTI

Často je užitočné uložiť výstup dávok do súboru na neskoršiu analýzu. Tieto súbory sú známe ako súbory PCAP (PEE-cap) a môžu byť spracované stovkami rôznych aplikácií vrátane sieťových analyzátorov, systémov detekcie narušenia a samozrejme samotného tcpdump. Tu zapisujeme súbor s názvom capture_file pomocou prepínača -w.

# tcpdump port 80 -w capture_file

ČÍTANIE SÚBOROV PCAP

Súbory PCAP môžete čítať pomocou prepínača -r. Všimnite si, že pri čítaní súboru môžete použiť všetky bežné príkazy v tcpdump; obmedzuje ťa len to, že nevieš zachytiť a spracovať niečo, čo v súbore neexistuje.

# tcpdump -r súbor_zachytenia

POKROČILÉ

Teraz, keď sme na niekoľkých príkladoch videli, čo môžeme robiť so základmi, pozrime sa na niektoré pokročilejšie veci.

VŠETKO JE O KOMBINÁCIÁCH

Prispôsobenie týchto rôznych vecí individuálnym je mocné, ale skutočné kúzlo tcpdump pochádza zo schopnosti kombinovať možnosti kreatívnymi spôsobmi, aby ste izolovali presne to, čo hľadáte. Existujú tri spôsoby vytvárania kombinácií a ak ste vôbec študovali programovanie, budú vám veľmi známe.

A
a alebo &&

ALEBO
alebo alebo ||

OKREM
nie alebo!

Tu je niekoľko príkladov kombinovaných príkazov.

Z KONKRÉTNEJ IP A PRIRADENÉ DO KONKRÉTNEHO PORTU

Nájdite všetok prenos z 10.5.2.3 na ľubovoľného hostiteľa na porte 3389.

Tcpdump -nnvvS src 10.5.2.3 a dst port 3389

Z JEDNEJ SIETE DO DRUHEJ

Pozrime sa na všetku prevádzku prichádzajúcu z 192.168.x.x a smerujúcu k sieťam 10.x alebo 172.16.x.x a ukážeme hexadecimálny výstup bez názvu hostiteľa a jednej úrovne ďalších podrobností.

Tcpdump -nvX src net 192.168.0.0/16 a dst net 10.0.0.0/8 alebo 172.16.0.0/16

PREVÁDZKA NIE JE ICMP SMEROVANÁ NA KONKRÉTNU IP

Toto nám ukáže všetku komunikáciu smerujúcu na 192.168.0.2, ktorá nie je ICMP.

tcpdump dst 192.168.0.2 a src net a nie icmp

PREVÁDZKA Z HOSTITEĽA, KTORÝ NIE JE V KONKRÉTNOM PRÍSTAVE

Toto nám ukáže všetku komunikáciu z hostiteľa, ktorá nie je prevádzkou SSH (za predpokladu, že sa použije predvolený port).

Tcpdump -vv src mars a nie dst port 22

Ako vidíte, môžete vytvárať dopyty, aby ste našli čokoľvek, čo potrebujete. Kľúčom je najprv presne definovať, čo hľadáte, a potom zostaviť syntax, aby ste izolovali konkrétny typ prevádzky.

Komplexné zoskupovanie a špeciálne znaky

Majte tiež na pamäti, že pri vytváraní zložitých dopytov možno budete musieť zoskupiť parametre pomocou jednoduchých úvodzoviek. Jednoduché úvodzovky sa používajú na to, aby tcpdump ignoroval niektoré špeciálne znaky - v tomto prípade ten v zátvorkách "()". Rovnakú metódu možno použiť na zoskupenie pomocou iných výrazov, ako je hostiteľ, port, sieť atď. Pozrite sa na nižšie uvedený príkaz.

# Prevádzka, ktorá pochádza z 10.0.2.4 A je určená pre porty 3389 alebo 22 (nesprávne) tcpdump src 10.0.2.4 a (port dst 3389 alebo 22)

Ak ste sa pokúsili spustiť tento veľmi užitočný príkaz pri inej príležitosti, zobrazí sa chyba zátvoriek. Môžete to opraviť tak, že escapujete zátvorky (pred každú so znakom \) alebo dáte celý príkaz do jednoduchých úvodzoviek:

# Prevádzka z 10.0.2.4 A určená pre porty 3389 alebo 22 (správne) # tcpdump "src 10.0.2.4 a (dst port 3389 alebo 22)"

Izolujte špecifické príznaky TCP

Môžete tiež zachytiť prevádzku na základe určitých príznakov TCP.

[POZNÁMKA: Filtre uvedené nižšie nájdu tieto rôzne pakety, pretože tcp si v hlavičke TCP všimne offset 13, číslo predstavuje umiestnenie v byte, eh! = 0 znamená, že tento príznak je nastavený na 1, t.j. je to zapnuté. ]

Zobraziť všetky URGENT (URG) balíky...

# tcpdump "tcp & 32!=0"

Zobraziť všetky balíčky ACKNOWLEDGE (ACK)…

# tcpdump "tcp & 16!=0"

Zobraziť všetky PUSH balíčky (PSH)…

# tcpdump "tcp & 8!=0"

Zobraziť všetky pakety RESET (RST) ...

# tcpdump "tcp & 4!=0"

Zobraziť všetky balíčky SYNCHRONIZE (SYN) ...

# tcpdump "tcp & 2!=0"

Zobraziť všetky FINISH (FIN) balíky...

# tcpdump "tcp & 1!=0"

Zobraziť všetky balíčky SYNCHRONIZE / ACKNOWLEDGE (SYNACK) …

# tcpdump "tcp=18" [Poznámka: vo výstupe poľa tcpdump sa zobrazuje iba príznak PSH, RST, SYN a FIN. URG a ACK sú zobrazené, ale sú zobrazené inde vo výstupe ako v poli príznakov. ]

Rovnako ako pri najvýkonnejších nástrojoch však existuje veľa spôsobov, ako urobiť to, čo potrebujete. Nasledujúci príklad ukazuje ďalší spôsob zachytávania paketov so špecifickými sadami príznakov TCP.

# tcpdump "tcp == tcp-syn"

Odstráňte príznaky RST pomocou možnosti tcpflags...

# tcpdump "tcp == tcp-rst"

Odstráňte príznaky FIN pomocou tcpflags...

# tcpdump "tcp == tcp-fin" [Poznámka: rovnakú metódu možno použiť aj pre iné príznaky; boli vynechané v záujme úspory miesta. ]

Identifikácia pozoruhodnej premávky

Nakoniec je tu niekoľko rýchlych receptov, ktoré si budete chcieť zapamätať, aby ste zachytili špecifickú a špecializovanú prevádzku, ako sú napríklad zlé/pravdepodobne škodlivé pakety.

BALÍČKY S BEŽNÝMI SÚPRAVAMI RST A SYN (TOTO BY NEMALI BYŤ)

# tcpdump "tcp=6"

NÁJDITE ČISTÝ TEXT HTTP A ZÍSKAJTE POŽIADAVKU

# tcpdump "tcp=0x47455420"

NÁJDITE PRIPOJENIA SSH NA AKKOĽVEK PORTE (CEZ BANNER)

# tcpdump "tcp[(tcp>>2):4] = 0x5353482D"

PAKETY S TTL MENŠÍM AKO 10 (VŠEOBECNE ZOBRAZIŤ PROBLÉM ALEBO POUŽÍVAŤ TRACEROUTE)

# tcpdump "ip< 10"

BALÍČKY EVIL BIT

# tcpdump "ip & 128 != 0"

Záver

tcpdump je cenný nástroj pre každého, kto sa chce dostať do siete alebo informačnej bezpečnosti.
Nezvyčajný spôsob interakcie s prevádzkou v kombinácii s presnosťou, ktorú poskytuje pri kontrole paketov, z neho robí najlepší nástroj na učenie sa o TCP/IP.
Analyzátory protokolov ako Wireshark sú skvelé, ale ak chcete skutočne zvládnuť pakety, musíte najprv zvládnuť tcpdump.
Celkovo vzaté, tento tutoriál by vám mal pomôcť posilniť sa, ale manuálová stránka by mala byť vždy užitočná pre najpokročilejšie a jednorazové prípady použitia. Úprimne dúfam, že vám to pomohlo, a ak máte nejaké otázky, neváhajte ma kontaktovať.

  • Ponúkame osvedčený program a tutoriál od odborníkov z Cisco Networking Academy a Linux Professional Institute, certifikovaných inštruktorov a osobného tútora.
  • Pomôžeme so zamestnaním a kariérou. 100% našich absolventov je zamestnaných.
  • Ako prebieha školenie?

    • Organizujeme večerné online prednášky na našej platforme alebo študujeme dennou formou na báze Kyjevskej kancelárie.
    • Opýtame sa vás na vhodný čas na cvičenie a prispôsobenie: chápeme, že na štúdium nie je dostatok času.
    • Ak chcete individuálny harmonogram, prediskutujeme a zrealizujeme.
    • Stanovíme jasné termíny samoorganizácie. Osobný kurátor bude v kontakte, ktorý vám odpovie na otázky, poradí a motivuje vás k dodržiavaniu termínov na zloženie skúšok.

    Pomôžeme vám aj: