Pomocou obslužného programu tcpdump. Parametre príkazu Tcpdump a príklady požiadaviek HTTP tcpdump

Príkaz tcpdump sa nazýva aj paketový sniffer.

Príkaz tcpdump bude fungovať na väčšine verzií operačného systému UNIX. tcpdump umožňuje ukladať zachytené pakety, aby sme ich mohli použiť na ďalšiu analýzu. Uložený súbor je možné zobraziť pomocou rovnakého príkazu tcpdump. Na čítanie súborov PCC tcpdump môžeme tiež použiť softvér s otvoreným zdrojovým kódom, ako je Wireshark.

V tomto výučbe si ukážeme niekoľko praktických príkladov použitia príkazu tcpdump.

1. Zachytávanie paketov z konkrétneho rozhrania LAN pomocou tcpdump -i

Keď spustíte tcpdump bez akejkoľvek možnosti, zachytí všetky pakety prechádzajúce cez všetky rozhrania. Možnosť -i Príkaz tcpdump umožňuje filtrovanie podľa konkrétneho ethernetového rozhrania.

$ tcpdump -i eth1 12: 59: 41,967250 ARP, požiadavka kto má free.msk.ispsystem.net povedať gw.msk.ispsystem.net, dĺžka 46 12: 59: 41,967257 ARP, požiadavka kto má rezervu.scoffserver.ru povedz gw.msk.ispsystem.net, dĺžka 46 12: 59: 41..44141\u003e wdc-ns1.ispsystem.net.doména: 14799+ PTR? 184.48.146.82.in-addr.arpa. (44) ...

V tomto príklade tcpdump zachytáva všetky pakety streamu na eth1 a zobrazuje ich na štandardnom výstupe.

Poznámka:

Obslužný program Editcap sa používa na výber alebo odstránenie konkrétnych balíkov zo súboru s výpisom a ich preklad do určeného formátu.

2. Zachyťte iba N-tý počet paketov pomocou tcpdump -c

Keď spustíte príkaz tcpdump, poskytne vám balíčky, kým nezrušíte príkaz tcpdump. Pomocou možnosti -c môžete určiť počet paketov, ktoré sa majú zachytiť.

$ tcpdump -c 2 -i eth0 počúvanie na eth0, linkový typ EN10MB (Ethernet), veľkosť záznamu 65535 bajtov 13: 01: 35.165898 ARP, požiadavka kto má 213.159.211.80 tell gw.msk.ispsystem.net, dĺžka 46 13 : 01: 35..35123\u003e wdc-ns1.ispsystem.net.domain: 7254+ PTR? 80.211.159.213.in-addr.arpa. (45) 2 pakety zachytili 7 paketov prijatých filtrom 0 paketov vyhodených z jadra

Príkaz Tcpdump zachytil iba 2 pakety z rozhrania eth0.

Poznámka:

Mergecap a TShark: Mergecap je nástroj na zlučovanie výpisov balíkov, ktorý kombinuje viac balíkov do jedného súboru výpisu. Tshark je výkonný nástroj na zachytávanie paketov v sieti, ktorý sa dá použiť na analýzu sieťového prenosu. Dodáva sa s analyzátorom sieťovej distribúcie Wireshark.

3. Zobrazte zachytené pakety v ASCII pomocou tcpdump -a

Nasledujúca syntax tcpdump vytlačí paket v ASCII.

$ tcpdump -A -i eth0 13: 03: 06.516709 IP 213.132.93.178..vlsi-lm: Vlajky [.], potvrdenie 3120779210, výhra 254, dĺžka 0 E .. ( [chránené e-mailom]] ..... b ...%. \u003d ... O.P ....... 13: 03: 06..35313\u003e wdc-ns1.ispsystem.net.domain: 13562+ PTR? 178.93.132.213.in-addr.arpa. (45) [chránené e-mailom]@ ........ x ..... 5,5 ', kde proto je názov vrstvy protokolu, pri ktorej bola odrezaná časť paketu 8. Upozorňujeme, že zväčšenie snímacieho rámčeka spôsobí ďalšie dočasné zmeny
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 povolenú hodnotu, ktorá umožní
zabráňte strate informácií o protokole, ktorý vás zaujíma. Nastavením snaplen \u003d 0 sa zachytia celé balíčky.

-T<тип> určuje, že pakety vybrané filtrom sa interpretujú ako pakety 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 značiek na každom riadku výpisu.

-tt nastavuje výstup neformátovaných časových značiek na každom riadku výpisu.

-ttt nastavuje výstup časových intervalov (v mikrosekundách) medzi zachytením predchádzajúceho a aktuálneho paketu v každom riadku výpisu.

-tttt nastavuje predvolený formát časovej pečiatky pre každý riadok výpisu.

-u nastavuje výstup NFS úchytov bez dekódovania.

-U nastavuje režim „ukladania do vyrovnávacej pamäte na úrovni paketov“ pre súbory uložené s voľbou -w. V tomto režime sa každý paket zapíše do výstupného súboru hneď po jeho zachytení
(bez čakania na vyplnenie výstupného bufferu). Príznak -U nebude podporovaný, ak bol tcpdump zostavený so starou voľbou libpcap, ktorá nepodporuje túto funkciu
pcap_dump_flush ().

-v nastavuje zobrazenie ďalších informácií pri snímaní súborov. Tieto informácie môžu zahŕňať TTL (Time to Live), identitu, celkovú veľkosť, možnosti IP atď.
Použitím tohto príznaku sa tiež vykoná dodatočná kontrola integrity paketu pomocou kontrolných súčtov (napríklad pre protokoly IP a ICMP).

-vv určuje ďalšie zvýšenie množstva informačného výstupu (napríklad úplné dekódovanie paketov SMB, výstup ďalších polí odozvy NFS atď.).

-vvv nastavuje maximálne množstvo informácií, ktoré sa majú zobraziť (napríklad možnosti telnetu SB… SE sa zobrazujú úplne). Ak sa použije v spojení s prepínačom -X, možnosti Telnetu sa zobrazia aj v
hexadecimálne znázornenie.

-w<файл> špecifikuje nahrávanie nespracovaných paketov. Balíky zhromaždené do súboru je možné 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 (štandardný výstup).

-X nastavuje výstup hexadecimálneho výpisu (bez hlavičky odkazovej vrstvy) pre každý zachytený paket. Množstvo zobrazených informácií je určené menšou z týchto dvoch hodnôt -
veľkosť balenia a hodnota parametra snaplen. Upozorňujeme, že pri zachytávaní úplných rámcov odkazovej vrstvy môže výpis obsahovať aj pakety výplne, ak je to paket sieťovej vrstvy
má malú veľkosť.

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

-X Určuje výstup výpisu v hexadecimálnom formáte a formáte ASCII bez hlavičiek na úrovni odkazu. Táto možnosť môže byť veľmi užitočná pri analýze nových protokolov.

-XX určuje výstup výpisu v hexadecimálnom formáte a formáte ASCII vrátane hlavičiek na úrovni odkazov.

-y<тип> určuje typ vrstvy spojenia 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 komunikáciu

tcpdump -i re0 -n -nn -ttt hostiteľa DST 192.168.1.2

  • Zachytávame všetku odchádzajúcu komunikáciu okrem našej relácie ssh, pretože sa získa veľmi veľký dátový tok.

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

  • Zobraziť dns chat

tcpdump -i re0 -n -nn -ttt „hostiteľ 192.168.1.110 a port 53“

  • Prezeranie balíkov icmp

tcpdump -i re0 -n -nn -ttt „ip proto \\ icmp“

  • Doprava prechádzajúca zo siete 10.7.20 s cieľom v 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

  • Prenos zo siete 10.7.0.0 na cieľové porty 22 alebo 4589:

tcpdump „src 10.7.0.0 a (dst port 22 alebo 4589)“

  • Zobraziť prenos na rozhraní:
  • zobraziť prenos jedného hostiteľa:

hostiteľ tcpdump 192.168.1.1

  • Zobraziť prenos na porte:

tcpdump src port 80

  • Zobraziť prenos IP na hostiteľa:

tcpdump ip hostiteľ 192.168.1.2

  • Zobraziť prenos ARP na hostiteľa:

tcpdump arp hostiteľ 192.168.1.2

  • Pozeráme sa na RARP prenos do hostiteľa:

tcpdump rarp hostiteľ 192.168.1.2

  • Pozeráme sa na dopravu, 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 balíkov na rozhraní re0 k hostiteľskej stránke

tcpdump -X -i re0 hostiteľská stránka

  • icq prenos

tcpdump -X -i re0 port aol

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

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

  • Najaktívnejšie interakcie

tcpdump -tn -c 10 000 -i re0 tcp alebo udp | awk -F "." '(Vytlačiť $ 1 ″. „$ 2 ″.„ $ 3 ″. „$ 4)“ | \\ triediť | uniq -c | triediť -nr | awk „$ 1\u003e 100“

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

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

  • Prezerajte si pakety syn a fin z vonkajšej strany

tcpdump ‘tcp & (tcp-syn | tcp-fin)! \u003d 0 a nie src a dst net 192.168.1.0‘

  • Zobraziť všetky pakety protokolu IPv4 http z portu 80, s výnimkou údajov syn / fin / ack

tcpdump 'port tcp 80 a ((((ip - ((ip a 0xf)<>2)) != 0)’

  • Zobraziť iba synchronizované balíčky

Tento tutoriál vám ukáže, ako izolovať prenos rôznymi spôsobmi - od IP, cez port, cez protokol, po prenos 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ňa pre paketovú analýzu.

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

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

tcpdump -nn S X port 443

04: 45: 40.573686 IP 78.149.209.110.27782\u003e 172.30.0.144 .443: Vlajky [.], Ack 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 ......\u003e ... 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.

Ukázalo sa to na určitý prenos HTTPS. V pravej časti výstupu je viditeľný hexadecimálny displej (bohužiaľ, je šifrovaný). Pamätajte - ak máte pochybnosti, spustite príkaz vyššie s portom, ktorý vás zaujíma, a mali by ste byť na ceste.

Príklady

PacketWizard ™ nie je v skutočnosti ochrannou známkou, ale malo by to byť tak.

odborník pripravujúci sa na spustenie tcpdump

Teraz, keď ste schopní získať základnú komunikáciu, prejdime si rad príkladov, ktoré budete pravdepodobne potrebovať počas svojej práce v sieti, zabezpečení alebo ako akýkoľvek typ PacketWizard ™.

Všetko na rozhraní

Stačí vidieť, čo sa deje, a pozrieť sa, čo naráža na vaše rozhranie.

Alebo dostať všetko rozhrania s -i ľubovoľným.

tcpdump -i eth0

Nájdite prenos podľa adresy IP

Jeden z najbežnejších dotazov, pomocou hostiteľa, môžete vidieť prenos, ktorý smeruje na alebo od 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\u003e one.one.one.one .domain: 12790+ A? google.com. (28) 06: 20: 25.594510 IP one.one.one.one .domain\u003e 172.30.0.144.39270: 12790 1/0/0 A 172.217.15.78 (44)

Ak chcete vidieť premávku iba jedným alebo druhým smerom, môžete použiť src a dst.

tcpdump src 1.1.1.1
tcpdump dst 1.0.0.1

Vyhľadanie paketov podľa siete

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

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

tcpdump net 1.2.3.0/24

Získajte obsah paketu so šesťhranným výstupom

Šesťhranný výstup je užitočný, ak chcete vidieť obsah predmetných paketov, a často sa najlepšie používa pri izolácii niekoľkých kandidátov na bližšiu kontrolu.

tcpdump -c 1 -X icmp

Zhrnutie

Tu sú jedlá so sebou.

  1. tcpdump je cenný nástroj pre kohokoľvek, kto sa chce dostať do siete alebo.
  2. Surové rozhranie s prenosom v kombinácii s presnosťou, ktorú ponúka pri kontrole paketov, z neho robí najlepší možný nástroj na učenie TCP / IP.
  3. Analyzátory protokolov ako Wireshark sú skvelí, ale ak chcete skutočne ovládať paketové fu, musíte sa najskôr stať tcpdump.

Tento základný náter by vás mal povzbudiť, ale manuálna stránka by mala byť vždy užitočná pre najpokročilejšie a jednorazové scenáre použitia. Naozaj dúfam, že to pre vás bolo užitočné, a ak máte akékoľvek otázky, neváhajte.

Poznámky

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

PREČO TCPDUMP?

Tcpdump je popredný nástroj na analýzu sietí pre profesionálov v oblasti informačnej bezpečnosti. Pre tých, ktorí chcú úplne porozumieť protokolu TCP / IP, je nevyhnutné mať dostatočné znalosti o tejto dôležitej aplikácii. Mnoho ľudí dáva prednosť použitiu nástrojov na vyššej úrovni, ako je Wireshark, ale myslím si, že je to chyba.

Ak použijete nástroj, ktorý zobrazuje sieťový prenos prirodzenejším (jednoduchým) spôsobom, zložitosť analýzy padá priamo na osobu, nie na aplikáciu. Tento prístup rozvíja chápanie balíka TCP / IP, a preto dôrazne odporúčam používať tcpdump namiesto iných nástrojov, kedykoľvek je to možné.

15: 31: 34.079416 IP (tos 0x0, ttl 64, id 20244, offset 0, flags, proto: TCP (6), dĺžka: 60) zdroj. 35970\u003e cieľ.80: S, cksum 0x0ac1 (správne), 2647022145: 2647022145 (0) win 5840 0x0000: 4500 003c 4f14 4006 7417 0afb 0257 E .. 0x0010: 4815 222a 8c82 0050 9dc6 5a41 0000 0000 H. "* ... P..ZA .... 0x0020: a002 16d0 0ac1 0000 0204 05b4 0402 080a ................ 0x0030: 14b4 1555 0000 0000 0103 0302

ZÁKLADY

Nasleduje niekoľko parametrov, ktoré je možné použiť pri konfigurácii tcpdump. Môžu byť ľahko zabudnuté a / alebo zameniteľné s inými typmi filtrov, napríklad Wireshark, takže táto stránka vám môže slúžiť ako referencia. Tu sú hlavné, na ktoré sám rád pamätám, podľa toho, čo sledujem.

MOŽNOSTI

  • -i hocijaký: počúvajte na všetkých rozhraniach a zistite, či vidíte nejaký prenos.
  • -i eth0: počúvať na rozhraní eth0.
  • -D: Zobraziť zoznam dostupných rozhraní
  • -n: zobrazí IP adresy namiesto názvov hostiteľov.
  • -nn: namiesto názvov hostiteľov a názvov protokolov zobrazí adresy IP a čísla portov.
  • -q: Zobrazí minimálne množstvo informácií o balíku.
  • -t: nezobrazovať časovú značku na každom riadku.
  • -tttt: Nastaví predvolený formát časovej pečiatky pre každý riadok.
  • -X: Zobraziť obsah balíka v šestnástkovej sústave aj v ASCII.
  • -XX: Rovnaké ako -X, ale zobrazuje aj hlavičku ethernetu.
  • -v, -vv, -vvv: Zvýši množstvo informácií vrátených o balíkoch.
  • -c: získajte iba x počet paketov a potom zastavte.
  • -s: Zadajte dĺžku (veľkosť) snímania v bajtoch. Na získanie všetkého použite -s0, pokiaľ zámerne nechytáte menej.
  • -S: Vytlačte absolútne poradové čísla.
  • -e: Získajte ethernetovú hlavičku.
  • -q: Zobraziť minimálne informácie o balíku.
  • -E: Dešifrujte prenos IPSEC zadaním šifrovacieho kľúča.
[Predvolená dĺžka snímky pre tcpdump 4.0 sa zmenila zo 68 na 96 bajtov. Aj keď to poskytne viac informácií o balíku, nebudú to všetky informácie. Použite -s1514 alebo -s0 na získanie úplného pokrytia]

VYJADRENIA

V tcpdump vám výrazy umožňujú orezávať rôzne typy prenosu a nájsť presne to, čo hľadáte. Ovládanie výrazov a schopnosť ich kreatívneho kombinovania je to, čo robí tcpdump skutočne silným.

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

Možnosti sú hostiteľ, sieť a port.

Adresáre umožňujú spúšťať súbory src, dst a ich kombinácie.

Protokol umožňuje definovať: tcp, udp, icmp, ah a mnoho ďalších.

PRÍKLADY

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

HLAVNÁ SPRÁVA

Stačí sa pozrieť na všetky rozhrania a pozrieť sa, čo sa deje.

# tcpdump -i akýkoľvek

ŠPECIFICKÉ ROZHRANIE

Základné pochopenie toho, čo sa deje na konkrétnom rozhraní.

# tcpdump -i eth0

NEPRACOVANÁ VÝSTUPNÁ VÝSTAVA

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

# tcpdump -ttttnnvvS

NÁJDETE DOPRAVU PODĽA IP

Jeden z najbežnejších dotazov, ktorý vám ukáže prenos z verzie 1.2.3.4, či už ide o zdroj alebo cieľ.

# tcpdump hostiteľ 1.2.3.4

ZOBRAZIŤ VIAC INFORMÁCIÍ O BALENÍ S ŠESTNÁSTIM BALENÍM

Hexadecimálny výstup je užitočný, ak chcete vidieť obsah predmetných balíkov, a často sa najlepšie použije, keď izolujete niekoľko kandidátov na bližší pohľad.

# tcpdump -nnvXSs 0 -c1 icmp tcpdump: počúvanie na ether0, linkový typ EN10MB (Ethernet), 23: 11: 10,370321 IP (tos 0x20, ttl 48, id 34859, offset 0, vlajky, dĺžka: 84) 69.254.213.43 \u003e 72.21.34.42: icmp 64: echo request seq 0 0x0000: 4520 0054 882b 0000 3001 7cf5 45fe d52b E..T. + .. 0. | .E .. + 0x0010: 4815 222a 0800 3530 272a 0000 25ff d744 H. "..50" ..% .. D 0x0020: ae5e 0500 0809 0a0b 0c0d 0e0f 1011 1213. ^ .............. 0x0030: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 ... ..........! "# 0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $% &" () * +, -. / 0123 0x0050: 3435 3637 4567 1 zachytené pakety 1 pakety prijaté filtrom 0 pakety spadnuté z jadra

FILTROVANIE PODĽA ZDROJA A CIELE

Izolácia prenosu na základe zdroja alebo cieľa je jednoduchá pomocou súborov src a dst.

# tcpdump src 2.3.4.5 tcpdump dst 3.4.5.6

BALÍČKY VYHĽADÁVANIA ONLINE

Ak chcete nájsť pakety smerujúce do konkrétnej siete alebo z nej, použite voľbu net. Môžete to skombinovať s voľbami src alebo dst.

# tcpdump net 1.2.3.0/24

ZOBRAZIŤ DOPRAVU TÝKAJÚCI SA ŠPECIÁLNEHO PRÍSTAVU

Konkrétny port premávky môžete vyhľadať pomocou možnosti portu, za ktorou nasleduje číslo portu.

# port tcpdump 3389 port tcpdump src 1025

ZOBRAZIŤ DOPRAVU JEDEN PROTOKOL

Ak hľadáte konkrétny typ prenosu, môžete použiť tcp, udp, icmp a mnoho ďalších.

# tcpdump icmp

ZOBRAZIŤ IBA DOPRAVU IP6

Môžete tiež nájsť všetku komunikáciu IP6 pomocou možnosti protokolu.

NÁJDETE DOPRAVU POUŽITÍM PORTU

Na vyhľadanie prenosu môžete tiež použiť rozsah portov.

# tcpdump portrange 21-23

NÁJDETE DOPRAVU NA ZÁKLADE VEĽKOSTI BALENIA

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 im zodpovedajúce symboly, ktoré by ste od matematiky očakávali.

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

PÍSOMNÉ VKLADY DO SPISU

Často je užitočné uložiť výsledok dávky do súboru pre budúcu analýzu. Tieto súbory sú známe ako súbory PCAP (PEE-caps) 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 pomocou prepínača -w napíšeme súbor s názvom capture_file.

# tcpdump port 80 -w súbor_zachytenia

ČÍTANIE SÚBOROV PCAP

Súbory PCAP môžete čítať pomocou prepínača -r. Upozorňujeme, že pri čítaní zo súboru môžete použiť všetky bežné príkazy v tcpdump; obmedzuje vás iba skutočnosť, že nemôžete zachytiť a spracovať niečo, čo v súbore neexistuje.

# tcpdump -r capture_file

POKROČILÉ

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

JE TO VŠETKO O KOMBINÁCIÁCH

Urobiť tieto rôzne veci individuálnymi je silná schopnosť, ale skutočné kúzlo tcpdump pochádza zo schopnosti kreatívnym spôsobom kombinovať možnosti a izolovať presne to, čo hľadáte. Existujú tri spôsoby, ako vytvoriť kombinácie, a ak ste sa vôbec naučili programovať, budete s nimi veľmi dobre oboznámení.

A
a alebo &&

ALEBO
alebo alebo ||

S VÝNIMKOU
nie alebo!

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

ZO ŠPECIFICKEJ IP A PRIDELENÉ NA ŠPECIFICKÝ PRÍSTAV

Nájdeme všetku komunikáciu 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 INEJ

Pozrime sa na všetku prevádzku od sietí 192.168.x.x do 10.x alebo 172.16.x.x a ukážeme si hexadecimálny výstup bez názvu hostiteľa a jednej úrovne mimoriadnej podrobnosti.

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

NIE JE ICMP DOPRAVA NA ŠPECIFICKÉ 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

DOPRAVA Z HOSTORA NIE V KONKRÉTNOM PORTE

Toto nám ukáže všetku komunikáciu z hostiteľa, ktorá nie je prenosom SSH (za predpokladu použitia predvoleného portu).

Tcpdump -vv src mars a nie dst port 22

Ako vidíte, môžete vytvárať dotazy, aby ste našli takmer všetko, čo potrebujete. Kľúčom je najskôr definovať presne to, čo hľadáte, a potom vytvoriť syntax na izoláciu konkrétneho typu prenosu.

Komplexné zoskupenie a špeciálne znaky

Pamätajte tiež na to, že pri vytváraní zložitých dotazov bude pravdepodobne potrebné zoskupiť parametre pomocou jednoduchých úvodzoviek. Jednoduché úvodzovky sa používajú na to, aby príkazu tcpdump ignoroval niektoré špeciálne znaky - v tomto prípade to, čo je v zátvorkách „()“. Rovnakú metódu možno použiť na zoskupenie pomocou iných výrazov, ako sú hostiteľ, port, sieť atď. Zoznámte sa s príkazom uvedeným nižšie.

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

Ak ste tento veľmi užitočný príkaz vyskúšali v inom prípade, zobrazí sa chyba v zátvorkách. Môžete to vyriešiť uniknutím zátvoriek (vložením \\ pred každú z nich) alebo uzavretím celého príkazu 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)“

Izolácia konkrétnych príznakov TCP

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

[POZNÁMKA: Filtre nižšie nájdu tieto rôzne pakety, pretože tcp zaznamená v hlavičke TCP posun 13, číslo predstavuje umiestnenie v bajtech a! \u003d 0 znamená, že tento príznak je nastavený na 1, t.j. je to zapnuté. ]

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

# tcpdump "tcp & 32! \u003d 0"

Zobraziť všetky pakety ACKNOWLEDGE (ACK) ...

# tcpdump "tcp & 16! \u003d 0"

Zobraziť všetky PUSH pakety (PSH) ...

# tcpdump "tcp & 8! \u003d 0"

Zobraziť všetky balíčky RESET (RST) ...

# tcpdump "tcp & 4! \u003d 0"

Zobraziť všetky pakety SYNCHRONIZE (SYN) ...

# tcpdump "tcp & 2! \u003d 0"

Zobraziť všetky pakety FINISH (FIN) ...

# tcpdump "tcp & 1! \u003d 0"

Zobraziť všetky pakety SYNCHRONIZE / ACKNOWLEDGE (SYNACK) ...

# tcpdump "tcp \u003d 18" [Poznámka: Vo výstupe poľa tcpdump sa zobrazia iba príznaky PSH, RST, SYN a FIN. URG a ACK sú zobrazené, ale sú zobrazené inde na výstupe, nie v poli s príznakmi. ]

Rovnako ako v prípade najsilnejších nástrojov, ale aj v tomto prípade existuje veľa spôsobov, ako postupovať správne. Nasledujúci príklad ukazuje ďalší spôsob, ako zachytiť pakety so špecifickými sadami príznakov TCP.

# tcpdump "tcp \u003d\u003d tcp-syn"

Odstrániť príznaky RST pomocou tcpflags ...

# tcpdump "tcp \u003d\u003d tcp-rst"

Odstrániť vlajky FIN pomocou tcpflags ...

# tcpdump "tcp \u003d\u003d tcp-fin" [Poznámka: rovnakú metódu je možné použiť aj pre ďalšie príznaky; boli vynechané v záujme úspory miesta. ]

Identifikácia pozoruhodnej premávky

Na záver existuje niekoľko rýchlych receptov, ktoré by ste si mali pamätať, aby ste zachytili konkrétny a špecializovaný prenos, napríklad nesprávne / pravdepodobne škodlivé pakety.

BALÍČKY S PRAVIDELNÝMI SADAMI RST A SYN (TOTO BY NEMALO BYŤ)

# tcpdump "tcp \u003d 6"

NÁJDETE OTVORENÝ TEXT HTTP A ZÍSKEJTE ŽIADOSŤ

# tcpdump "tcp \u003d 0x47455420"

NÁJDETE SPOJENIA SSH NA KAŽDÝ PRÍSTAV (VIA BANNER)

# tcpdump "tcp [(tcp \u003e\u003e 2): 4] \u003d 0x5353482D"

BALÍKY S TTL Menej AKO 10 (AKO PRAVIDLO ZOBRAZUJE PROBLÉM ALEBO POUŽÍVA TRACEROUTE)

# tcpdump „ip< 10"

ZLÉ BITOVÉ BALÍČKY

# tcpdump "ip & 128! \u003d 0"

Záver

tcpdump je cenný nástroj pre kohokoľvek, kto chce vstúpiť do bezpečnosti sietí alebo informácií.
Neobvyklý spôsob interakcie s prenosom v kombinácii s presnosťou, ktorú poskytuje pri kontrole paketov, z neho robí najlepší nástroj na učenie protokolu TCP / IP.
Analyzátory protokolov ako Wireshark sú vynikajúce, ale ak chcete skutočne ovládať pakety, musíte najskôr ovládať tcpdump.
Tento tutoriál by vám mal celkovo pomôcť posilniť sa, ale manuálna 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 akékoľvek otázky, kontaktujte ma.

  • 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 lektora.
  • Pomôžeme vám so zamestnaním a urobíme kariéru. 100% našich absolventov je zamestnaných.
  • Ako prebieha školenie?

    • Realizujeme večerné online prednášky na našej platforme alebo osobne študujeme v kancelárii v Kyjeve.
    • Opýtame sa vás na vhodný čas na cvičenie a prispôsobenie sa: chápeme, že času na štúdium je málo.
    • Ak chcete individuálny harmonogram, prediskutujeme ho a implementujeme.
    • Stanovíme jasné termíny pre samoorganizáciu. Bude v kontakte s osobným lektorom, ktorý vám odpovie na otázky, poradí a motivuje vás dodržiavať termíny skúšok.

    Pomôžeme vám tiež: