Skip to main content

Tcpdump: primjeri, opcije i više

tcpdump - Traffic Capture & Analysis (Lipanj 2025)

tcpdump - Traffic Capture & Analysis (Lipanj 2025)
Anonim

Tcpdump je naredba korištena na različitim Linux operativnim sustavima (OS-ovima) koji okuplja TCP / IP pakete koji prolaze kroz mrežni prilagodnik. Poput paketa za snijeg paketa, tcpdump ne može samo analizirati mrežni promet, već ga i spremiti u datoteku.

Za razliku od nekih naredbi koje je zadani operacijski sustav, možda ćete otkriti da ne možete koristiti tcpdump jer nije instaliran. Da biste instalirali tcpdump, izvršite apt-get instalirajte tcpdump ili yum instalirajte tcpdump, ovisno o OS-u.

Kako funkcionira Tcpdump

Tcpdump ispisuje zaglavlja paketa na mrežnom sučelju koje odgovaraju Booleovom izraz , Također se može pokrenuti s-w zastavu, što uzrokuje spremanje paketa podataka u datoteku za kasniju analizu i / ili s-r zastavu, što uzrokuje čitanje iz spremljene pakete, a ne čitanje paketa s mrežnog sučelja. U svim slučajevima, samo paketi koji se podudaraju izraz obradit će se tcpdump .

tcpdump će, ako se ne pokrene sc zastavicu, nastavite bilježiti pakete dok ne prekine SIGINT signal (generiran, na primjer, upisivanjem znaka za prekid, obično Ctrl + C) ili SIGTERM signal (obično generiran saubiti(1) naredba); ako se pokrećete sc zastavom, uhvatit će pakete dok se ne prekine SIGINT ili SIGTERM signal ili određeni broj paketa je obrađen.

Gore spomenuti prekidači detaljno su opisani u ovom članku.

Kada tcpdump dovršava hvatanje paketa, prijavit će broj:

  • Paketi "primljeni po filtru."
    • Značenje ovisi o OS-u na kojem radite tcpdump , a možda i na način na koji je OS konfiguriran. Ako je na naredbenom retku naveden filtar, na nekim operacijskim sustavima bilježi pakete bez obzira na to jesu li ih podudarali izrazom filtra, a drugima broji samo one pakete koji su podudarali izraz filtra i obrađeni su od strane tcpdump.
  • Paketi "ispušteni po jezgri."
    • To je broj paketa koji su zbog nedostatka međuspremnika ostavljeni mehanizmom za prikupljanje paketa u operacijskom sustavu na kojemu je tcpdump je pokrenut, ako OS prenosi te podatke aplikacijama. Ako ne, to će biti prijavljeno kao 0.

Na platformama koje podržavaju signal SIGINFO, kao što je većina BSD-ova (Berkeley Software Distributions), ona će izvještavati o brojevima kada primi signal SIGINFO (generiran, na primjer, upisivanjem znaka "statusa", obično Ctrl + T) i nastavit će uhvatiti pakete.

Kompatibilnost s Tcpdumpom

Čitanje paketa s mrežnog sučelja s tcpdump naredbom može zahtijevati da imate posebne povlastice ( čitanje spremljena paketna datoteka ne zahtijeva takve privilegije):

  • SunOS 3.x ili 4.x s NIT ili BPF: Morate imati pristup za čitanje / Dev / gnjida ili dev / bpf * .
  • Solaris s DLPI-om: Morate imati pristup za čitanje / pisanje mrežnog pseudo uređaja, poput / Dev / le , Na barem nekim verzijama sustava Solaris, međutim, to nije dovoljno dopustiti tcpdump uhvatiti u promiskuitetnom načinu; na tim verzijama sustava Solaris, morate biti root ili tcpdump mora biti instaliran setuid na root, kako bi se uhvatili u promiskuitetnom modu. Imajte na umu da, na mnogim (možda i svim) sučeljima, ako ne uhvatite u promiskuitetnom načinu, nećete vidjeti nikakav odlazni paket, tako da hvatanje nije učinjeno u promiskuitetnom načinu rada možda neće biti korisno.
  • HP-UX s DLPI-om: Morate biti korijen ili tcpdump mora biti instaliran setuid na root.
  • IRIX s noktima: Morate biti korijen ili tcpdump mora biti instaliran setuid na root.
  • Linux: Morate biti korijen ili tcpdump mora biti instaliran setuid na root.
  • Ultrix i Digital UNIX / Tru64 UNIX: Svaki korisnik može uhvatiti mrežni promet s tcpdump , Međutim, niti jedan korisnik (čak ni super-korisnik) ne može snimiti u promisljatnom načinu rada na sučelju, osim ako super-korisnik nije omogućio promiskujući način rada na tom sučelju koristeći pfconfig (8), a niti jedan korisnik (čak ni super-korisnik) ne može uhvatiti unicast promet koji je primio ili ga je poslao na sučelju, osim ako super-korisnik nije omogućio kopiranje svih načina rada na tom sučelju koristeći pfconfig , tako koristan paketno hvatanje na sučelju vjerojatno zahtijeva da se na tom sučelju omogućavaju operacije promiskujalnog ili kopiranja svih načina rada ili oba načina rada.
  • BSD: Morate imati pristup za čitanje / Dev / bpf * .

Tcpdump zapovjedna sintaksa

Kao i sve računalne naredbe, tcpdump naredba radi ispravno samo ako je sintaksa točna:

tcpdump -adeflnNOpqRStuvxX c računati

-C veličina datoteke -F datoteka

-i sučelje -m modul -r datoteka

-s snaplen -T tip -U korisnik -w datoteka

-E algo: tajna izraz

Opcije za naredbe Tcpdump

Sve su to opcije koje možete koristiti s tcpdump naredbom:

  • -a: Pokušajte pretvoriti adrese mreže i emitiranja u nazive.
  • c: Izlaz nakon primanja računati paketa.
  • -C: Prije pisanja sirovog paketa u datoteku za spremanje, provjerite je li datoteka trenutno veća od veličina datoteke i, ako je tako, zatvorite trenutni spremnik i otvorite novi.Savefiles nakon prvog savefile imat će ime navedeno s-w zastava, s brojem iza njega, s početkom u 2 i nastavlja prema gore. Jedinice veličina datoteke su milijuni bajtova (1.000.000 bajtova, a ne 1.048.576 bajtova).
  • -D: Izvršite kompilirani kod za podudaranje paketa u ljudski čitljiv oblik na standardni izlaz i zaustavljanje.
  • -dd: Kôd za podudaranje paketnih paketa kao aC fragment programa.
  • -ddd: Kôd za podudaranje paketa s kolačićima kao decimalni brojevi (prethodi brojem).
  • -e: Ispis zaglavlja na razini veza na svakoj liniji s dumpima.
  • -E: Koristiti algo: tajna za dekriptiranje IPsec ESP paketa. Možda su algoritmides-CBC, 3DES-CBC, Blowfish-CBC, RC3-CBC, cast128-CBC, ilinijedan, Zadana postavka jedes-CBC, Sposobnost dekriptiranja paketa prisutna je samo ako tcpdump je sastavljen s kriptografijom omogućen. tajna ASCII tekst za ESP tajni ključ. U ovom trenutku ne možemo uzeti arbitrarnu binarnu vrijednost. Opcija preuzima RFC2406 ESP, a ne RFC1827 ESP. Opcija je samo za svrhe uklanjanja pogrešaka, a uporaba ove opcije s doista "tajnim" ključem je obeshrabrena. Prikazivanjem tajnog ključa IPsec-a na naredbeni redak učinite ga vidljivima drugima putem p.s (1) i drugim prigodama.
  • f: Ispis "stranih" internetskih adresa numerički, a ne simbolički (ova opcija ima za cilj ozbiljnu oštećenja mozga u Sunovom yp poslužitelju - obično se visi zauvijek prevođenjem internetskih brojeva koji nisu lokalni).
  • -F: Koristiti datoteka kao unos za izraz filtra. Dodatni izraz naveden u naredbenom retku zanemaruje se.
  • -i: Slušajte sučelje , Ako nije navedeno, tcpdump pretražuje popis sučelja sustava za najniže, konfigurirano sučelje (isključujući povratne petlje). Veze su slomljene odabirom najranije utakmice. Na Linux sustavima s 2.2 ili novijim jezgrama, sučelje argument "bilo kojeg" može se koristiti za hvatanje paketa sa svih sučelja. Imajte na umu da snimanje na bilo kojem uređaju neće biti učinjeno u promiskuitetnom načinu rada.
  • -l: Izvršite puštanje stdout linije. Korisno je ako želite vidjeti podatke tijekom snimanja. Na primjer, "tcpdump -l | tee dat" ili "tcpdump -l" dat i rep -f dat ".
  • -m: Učitajte definicije SMI MIB modula iz datoteke modul , Ova opcija može se koristiti nekoliko puta za učitavanje nekoliko MIB modula u tcpdump .
  • -n: Ne pretvorite adrese hostova u nazive. To se može koristiti za izbjegavanje pretraživanja DNS-a.
  • -nn: Ne pretvarajte protokol i brojeve porta itd.
  • N: Nemoj ispisati kvalifikaciju naziva domene naziva hosta. Na primjer, ako ovu zastavicu dajete tcpdump će ispisati "nic" umjesto "nic.ddn.mil".
  • -O: Nemojte pokretati optimizaciju koda za podudaranje paketa. Ovo je korisno samo ako sumnjate na grešku u optimizatoru.
  • -p: nemoj stavite sučelje u promiskuitetni način. Imajte na umu da sučelje može biti u promiskuitetnom načinu rada iz nekog drugog razloga; stoga '-p' ne može se koristiti kao kratica za 'ether host {local-hw-addr} ili etersku emisiju'.
  • Q: Brzo (tiho) izlaz. Ispišite manje informacija o protokolu, tako da su izlazne linije kraće.
  • -R: Pretpostavimo da se ESP / AH paketi temelje na starim specifikacijama: RFC1825 do RFC1829. Ako je navedeno, tcpdump neće ispisati polje za preuzimanje preporuke. Budući da u ESP / AH specifikaciji nema polja verzije protokola, tcpdump ne može zaključiti verziju ESP / AH protokol.
  • -r: Pročitajte pakete iz tvrtke datoteka (koja je stvorena pomoću opcije -w). Standardni se unos koristi ako datoteka je "-".
  • -S: Ispišite apsolutne, a ne relativne brojeve TCP sekvenci.
  • -s: Snarf snaplen bajtova podataka iz svakog paketa, a ne zadani od 68; s SunOS-ovim NIT-om, minimalno je 96. Šezdeset osam bajta prikladno je za IP, ICMP, TCP i UDP, ali može skratiti podatke protokola s poslužitelja imena i NFS paketa (vidi dolje). Paketi skraćeni zbog ograničene snimke označeni su u izlazu s "| proto '', gdje proto je naziv protokola na kojoj je došlo do prekidanja. Imajte na umu da uzimanje većih snimaka povećava vrijeme potrebno za procesiranje paketa i učinkovito smanjuje količinu paketa. To može uzrokovati gubitak paketa. Trebaš ograničiti snaplen na najmanji broj koji će obuhvatiti informacije o protokolima koje ste zainteresirani snaplen do 0 znači upotrijebiti potrebnu duljinu da biste uhvatili cijele pakete.
  • -T: Force pakete odabrane od strane " izraz "da se tumači navedeno tip , Trenutačno poznate vrste sucnfp (Protokol Cisco NetFlow),RPC (Daljinski postupak poziva),RTP (Protokol za real-time aplikacije),RTCP (Protokol kontrole u stvarnom vremenu),SNMP (Simple Network Management Protocol),PDV (Visual Audio Tool), iWB (distribuirani Bijeli odbor).
  • -t: nemoj ispisati vremensku oznaku na svakoj liniji s izvatkom.
  • -tt: Ispišite neformatiranu vremensku oznaku na svakoj liniji s izvatkom.
  • -U: Drops povlastica root i promjene korisnički ID to korisnik i ID skupine u primarnoj grupi korisnik .
  • Bilješka: Red Hat Linux automatski baca privilegije korisniku "pcap" ako ništa drugo nije specificirano.
  • -ttt: Ispišite deltu (u mikrosekunu) između trenutne i prethodne linije na svakoj liniji s dumpima.
  • -tttt: Ispišite vremensku oznaku u zadanom formatu prema datumu na svakoj liniji s dumpima.
  • -u: Ispišite neodređene NFS ručke.
  • -v: (Malo više) iznimno izlaz. Primjerice, ispisuju se vremena za život, identifikaciju, ukupnu duljinu i opcije u IP paketu. Omogućuje i dodatne provjere integriteta paketa kao što je potvrda provjere IP i ICMP zaglavlja.
  • -vv: Još veći izlaz. Na primjer, dodatna su polja ispisana iz NFS paketa za odgovor i SMB paketi su u potpunosti dekodirani.
  • -vvv: Još veći izlaz. Na primjer, telnetSBSE opcije su ispisane u cijelosti. S -X telnet opcije su tiskane u hex kao dobro.
  • -w: Pišite sirovine na datoteka umjesto da raščlanjuju i ispisuju. Kasnije se mogu tiskati s opcijom -r. Standardni izlaz se koristi ako datoteka je "-".
  • -x: Ispišite svaki paket (minus njegov zaglavlje razine veze) u hex. Manji od cijelog paketa ili snaplen bit će ispisane bajtova. Imajte na umu da je to cijeli paket veznog sloja, tako da za slojeve veza tu podlogu (npr., Ethernet) ispisni bajtovi će se ispisati i kada je paket višeg sloja kraći od potrebnog padanja.
  • -X: Kada ispisujete šesterokute, ispišite ascii. Dakle, ako-x je također postavljen, paket je tiskan u hex / ascii. Ovo je vrlo korisno za analizu novih protokola. Čak i ako-x nije također postavljen, neki dijelovi nekih paketa mogu se ispisati u hex / ascii.
  • izraz : Odabir paketa koji će biti izbačeni. Ako ne izraz , svi paketi na mreži će biti odbačeni. Inače, samo paketi za koji izraz je "istina" bit će izbačena. izraz sastoji se od jednog ili više primitivci. Primitivi se obično sastoje od iskaznica (ime ili broj) koji prethodi jedan ili više kvalifikatora. Postoje tri različite vrste kvalifikacija:
  • tip : Kvalifikacije kažu kakva se stvar odnosi ime ili broj id. Moguće vrste sudomaćin, neto, iluka- primjerice, 'host foo', 'net 128.3', 'port 20'. Ako nema kvalificiranog tipa,domaćin pretpostavlja se.
  • dir : Kvalifikacije navode određeni smjer prijenosa na i / ili od iskaznica , Mogući su smjerovisrc, DST, src ili dst isrc i DST (npr. 'src foo', 'dst net 128.3', 'src ili dst port ftp-data'). Ako nema kvalifikacijskog broja,src ili dst pretpostavlja se. Za 'null' slojeve veza (tj. Točke do točke protokoli kao što je slip) dolazeći i inostranstvo Kvalifikacije se mogu koristiti za određivanje željenog smjera.
  • proto : Kvalifikatori ograničavaju utakmicu određenom protokolu. Mogući protos su: eter, FDDI, tr, IP, IP6, aRP, rarp, dekodirati, TCP, iUDPNpr. 'Ether src foo', 'arp net 128.3', 'tcp port 21'. Ako nema proto qualifier, svi protokoli koji su u skladu s vrstom se pretpostavljaju. Na primjer, 'src foo' znači '(ip ili arp ili rarp) src foo' (osim što drugi nije pravna sintaksa), 'net bar' znači '(ip ili arp ili rarp) net bar' i 'port 53' znači '(tcp ili udp) priključak 53'.
    • 'fddi' je zapravo pseudonim za 'eter'; parser ih jednako tretira kao "razina podatkovnih veza koja se koristi na navedenom mrežnom sučelju." FDDI zaglavlja sadrže Ethernet-poput izvornih i odredišnih adresa, a često sadrže Ethernet-slične vrste paketa, tako da možete filtrirati na tim FDDI polja samo kao i kod analognih Ethernet polja. FDDI zaglavlja također sadrže druga polja, ali ih ne možete izravno imenovati u izrazu filtra.
    • Slično tome, 'tr' je pseudonim za 'eter'; izjave iz prethodnog odlomka o zaglavljima FDDI također se primjenjuju na zaglavlja Token Ringa.

Uz gore navedeno, postoje neke posebne "primitivne" ključne riječi koje ne slijede obrazac:prolaz, emitiranje, manje, više, i aritmetika izrazi. Sve su opisane u nastavku.

Složenije filtarske izraze izgrađuju se pomoću riječii, ili, ine za spajanje primitivaca - na primjer, "domaćin foo, a ne port ftp i ne otvaranje ftp-podataka". Da biste spremili tipkanje, identični popisi kvalifikacija mogu se izostaviti (npr., "Tcp dst port ftp ili ftp-podaci ili domena" točno je isto kao "tcp dst port ftp ili tcp dst port ftp-data ili tcp dst port domena".)

Ovo su primitivi dopušteni s tcpdump naredbom:

  • dst host domaćin
    • Istina je da je IPv4 / v6 odredišno polje paketa domaćin , što može biti adresa ili naziv.
  • src host domaćin
    • Istina je ako je IPv4 / v6 izvorno polje paketa domaćin .
  • domaćin domaćin
    • Istina, ako je bilo IPv4 / v6 izvor ili odredište paketa domaćin , Bilo koji od gornjih izraza domaćina može se dodati ključnim riječima,IP, aRP, rarp, iliIP6, kao u ip domaćin domaćin (što je ekvivalentno za eter proto IP i domaćin domaćin).
    • Ako domaćin je naziv s više IP adresa, svaka adresa bit će provjerena za utakmicu.
  • eter dst ehost
    • Istina je da je Ethernet adresa odredišta ehost . Ehost može biti naziv iz / etc / ethers ili broj (vidi str eteri (3N) za numerički format).
  • eter src ehost
    • Istina, ako je Ethernet adresa izvora ehost .
  • eterskog domaćina ehost
    • Istina, ako je Ethernet izvor ili odredišna adresa ehost .
  • prolaz domaćin
    • Istina je ako se koristi paket domaćin kao pristupnika (tj., Ethernet izvor ili odredišna adresa bila je domaćin ali niti IP izvor niti IP odredište nisu bili domaćin ).
    • Domaćin mora biti naziv i mora ga pronaći i mehanizmi razlučivanja host-name-to-IP adresa računala (datoteka glavnog naziva, DNS, NIS, itd.) i mehanizam rezolucije računala host-name-to-Ethernet (/ etc / ethers, itd.).
    • Ekvivalentan je izraz eterskog domaćina ehost i sada domaćin domaćin , koji se može koristiti s bilo imenima ili brojevima za domaćin / ehost .) Ova sintaksa u ovom trenutku ne funkcionira u konfiguraciji koja je omogućena za IPv6.
  • dst neto neto
    • Istina je da IPv4 / v6 odredišna adresa paketa ima mrežni broj neto . Neto može biti naziv iz / etc / networks ili mrežni broj (vidi mreža (4) za detalje).
  • src net neto
    • Istina je da izvorna adresa IPv4 / v6 paketa ima broj mreže neto .
  • neto neto
    • Istina je ako izvor IPv4 / v6 ili odredišna adresa paketa ima mrežni broj neto .
  • neto neto maska maska
    • Istina, ako se podudara s IP adresom neto s određenim maska , Može se kvalificiratisrc iliDST, Imajte na umu da ova sintaksa nije valjana za IPv6 neto .
  • neto neto / Len
    • Točno ako se IPv4 / v6 adresa podudara neto s mrežnom maskom Len bitova širok. Može se kvalificiratisrc iliDST.
  • dst port luka
    • Istina je da je paket ip / tcp, ip / udp, ip6 / tcp ili ip6 / udp i ima vrijednost odredišne ​​luke luka , luka može biti broj ili naziv koji se koristi u / etc / services (pogledaj TCP (4P) i UDP (4P)). Ako se koristi naziv, provjeravaju se i broj porta i protokol. Ako se koristi broj ili dvosmislen naziv, označava se samo broj porta (npr.dst luka 513 će ispisati i tcp / login promet i udp / koji promet, iport domena će ispisati i tcp / domain i udp / domain promet).
  • src port luka
    • Istina je da paket ima vrijednost izvornog ulaza luka .
  • luka luka
    • Istina je li izvor ili odredišna luka paketa luka , Bilo koji od gornjih izraza luka može se dodati ključnim riječima,TCP iliUDP, kao u tcp src priključak luka , što odgovara samo TCP paketima čiji je izvorni priključak luka .
  • manje dužina
    • Istina je da paket ima duljinu manju ili jednaku dužina , Ovo je ekvivalentno len <= dužina .
  • više dužina
    • Istina je da paket ima duljinu veću ili jednaku dužina , Ovo je ekvivalentno len> = dužina .
  • ip proto protokol
    • Istina je da je paket IP paket (vidi IP (4P)) tipa protutijela protokol . Protokol može biti broj ili jedno od imena ICMP , icmp6 , IGMP , igrp , PIM , Ah , esp , VRRP , UDP , ili TCP , Imajte na umu da su identifikatori TCP , UDP , i ICMP su također ključne riječi i moraju se pobjeći preko obrnute linije (), što je u C-ljusci. Imajte na umu da ovaj primitiv ne potiče lanac zaglavlja protokola.
  • ip6 proto protokol
    • Istina je da je paket IPv6 paket tipa protokola protokol , Imajte na umu da ovaj primitiv ne potiče lanac zaglavlja protokola.
  • ip6 protokol protokol
    • Istina je da je paket IPv6 paket i sadrži zaglavlje protokola s tipom protokol u svom lancu zaglavlja protokola. Na primjer, ipv6 protokol 6 odgovara bilo kojem IPv6 paketu s zaglavljem TCP protokola u lancu zaglavlja protokola. Paket može sadržavati, na primjer, zaglavlje za autentifikaciju, zaglavlje usmjeravanja ili zaglavlje opcije hop-by-hop između IPv6 zaglavlja i TCP zaglavlja. BPF kôd koji emitira ovaj primitiv je složen i ne može se optimizirati pomoću BPF optimizacijskog koda u sustavu tcpdump , tako da to može biti pomalo sporo.
  • ip protochain protokol
    • Odgovaraip6 protokol protokol , ali ovo je za IPv4.
  • eterskim emitiranjem
    • Istina je da je paket Ethernet paket za emitiranje. eter ključna riječ nije obavezna.
  • ip emitirati
    • Istina je da je paket paket za IP prijenos. Provjerava i sve nulte i sve one koji emitiraju konvencije, i pregleda lokalnu masku podmreže.
  • eter multicast
    • Istina je da je paket Ethernet multicast paket. eter ključna riječ nije obavezna. Ovo je stenografija za 'eter 0 "1 = 0'.
  • ip multicast
    • Istina je da je paket IP multicast paket.
  • ip6 multicast
    • Istina je da je paket IPv6 multicast paket.
  • eter proto protokol
    • Istina je da je paket eter tipa protokol . Protokol može biti broj ili jedno od imena IP , IP6 , aRP , rarp , razgovor , AARP , dekodirati , SCA , lat , mopdl , moprc , izo , STP , IPX , ili NetBEUI , Imajte na umu da su ti identifikatori i ključne riječi i moraju se izbjeći putem obrnute strane ().
    • U slučaju FDDI (npr., 'fddi protokol arp') i Token prsten (npr.,'tr protokola arp'), za većinu tih protokola, identifikacija protokola dolazi iz zaglavlja 802.2 Logical Link Control (LLC), koja je obično slojevita na vrhu zaglavlja FDDI ili Token Ring.
    • Pri filtriranju većine identifikatora protokola na FDDI ili Token Ringu, tcpdump provjerava samo polje ID protokola LLC zaglavlja u tzv. SNAP formatu s identifikatorom organizacijske jedinice (OUI) od 0x000000, za enkapsuliranu Ethernet; ne provjerava je li paket u SNAP formatu s OUI od 0x000000.
    • Iznimke su izo , za koji provjerava polja DSAP (pristupna točka odredišne ​​usluge) i polja SSAP (Izvorna usluga pristupne točke) LLC zaglavlja, STP i NetBEUI , gdje provjerava DSAP zaglavlja LLC, i razgovor , gdje provjerava paket SNAP-formata s OUI od 0x080007 i tipa Appletalk.
    • U slučaju Ethernet, tcpdump provjerava polje Ethernet tipa za većinu tih protokola; iznimke su izo , budala , i NetBEUI , za koji provjerava 802.3 okvir, a zatim provjerava LLC zaglavlje kao i za FDDI i Token Ring; razgovor , gdje se provjerava i za Appletalk etype u Ethernet okviru i za paket SNAP-formata kao što to čini za FDDI i Token Ring; AARP , gdje provjerava Appletalk ARP etype u bilo kojem Ethernet okviru ili 802.2 SNAP okviru s OUI od 0x000000; i IPX , gdje provjerava IPX etype u Ethernet okviru, IPX DSAP u zaglavlju LLC, 802.3 bez oklopa IP zaglavlja LLC i IPX etype u SNAP okviru.
  • decnet src domaćin
    • Istina je da je izvorna adresa DECNET domaćin , što može biti adresa obrasca "10.123" ili naziv računala DECNET podrška naziva domene DECNET dostupna je samo na sustavima tvrtke Ultrix koji su konfigurirani za pokretanje sustava DECNET.
  • decnet dst domaćin
    • Istina je da je odredišna adresa DECNET domaćin .
  • decnet host domaćin
    • Istina, ako je izvor DECNET ili odredišna adresa domaćin .
  • IP, IP6, aRP, rarp, razgovor, AARP, dekodirati, izo, STP, IPX, NetBEUI
    • Kratice za eter proto p gdje p je jedan od gore navedenih protokola.
  • lat, moprc, mopdl
    • Kratice za eter proto p gdje p je jedan od gore navedenih protokola. Imajte na umu da tcpdump trenutno ne zna kako analizirati te protokole.
  • VLAN Vlan_id
    • Istina je da je paket IEEE 802.1Q VLAN paket. Ako Vlan_id navedeno je, samo istinito ako paket ima navedeno vlan_id , Imajte na umu da je prviVLAN ključna riječ s kojom se susrela izraz mijenja offsets dekodiranja za ostatak izraz na pretpostavci da je paket VLAN paket.
  • TCP, UDP, ICMP
    • Kratice za ip proto p ili ip6 proto p gdje p je jedan od gore navedenih protokola.
  • iso proto protokol
    • Istina je da paket predstavlja OSI paket tipa protokola protokol . Protokol može biti broj ili jedno od imena clnp , esis , ili je je .
  • clnp, esis, je je
    • Kratice za iso proto p gdje p je jedan od gore navedenih protokola. Imajte na umu da tcpdump radi nepotpuni posao raščlanjivanja tih protokola.
  • expr relop expr
    • Istina je li odnos zadržan, gdje relop je jedan od>, <,> =, <=, =,! = i Expr je aritmetička ekspresija sastavljena od cjelobrojnih konstanti (izražena u standardnoj sintaksi C), uobičajene binarne operatore +, -, *, /, &,, operatera duljine i posebnih pristupnika paketnih podataka. Za pristup podacima unutar paketa upotrijebite sljedeću sintaksu: proto expr: veličina .

Proto je jedan odeter, FDDI, tr, pPP, skliznuti, veza, IP, aRP, rarp, TCP, UDP, ICMP, ili IP6, i označava protokonski sloj za operaciju indeksa (eter, FDDI, tr, pPP, skliznuti, iveza svi se odnose na sloj veze). Imajte na umu da tcp, udp , i ostali tipovi višeg sloja protokola primjenjuju se samo na IPv4, a ne na IPv6 (to će biti fiksirano u budućnosti). Byte offset, u odnosu na naznačeni sloj protokola, daje se pomoću Expr . Veličina je opcionalno i označava broj bajtova na području interesa; može biti jedan, dva ili četiri, a zadani na jedan. Operator duljine, označen ključnom riječiLen, daje duljinu paketa.

Na primjer, 'eter 0 "1 = 0'hvata sve multicast prometa. Izraz 'ip 0 & 0xf! = 5'hvata sve IP pakete s opcijama. Izraz 'ip 6: 2 i 0x1fff = 0'hvata samo nefragmentirane datagrame i frag nula fragmentiranih datagrama. Ova se provjera implicitno primjenjuje naTCP iUDP indeks operacija. Na primjer, TCP 0 uvijek znači prvi bajt TCP-a Zaglavlje , a nikada ne znači prvi bajt intervencijskog fragmenta.

Neka odstupanja i vrijednosti polja mogu se izraziti kao imena, a ne kao numeričke vrijednosti. Dostupni su sljedeći offseti polja zaglavlja protokola: icmptype (Polje vrste ICMP),icmpcode (ICMP kôd polja) itcpflags (Polje TCP zastavica).

Sljedeće vrijednosti polja tipa ICMP dostupne su:ICMP-echoreply, ICMP-unreach, ICMP-sourcequench, ICMP-preusmjeravanje, ICMP-eho, ICMP-routeradvert, ICMP-routersolicit, ICMP-timxceed, ICMP-paramprob, ICMP-tstamp, ICMP-tstampreply, ICMP-ireq, ICMP-ireqreply, ICMP-maskreq, ICMP-maskreply.

Dostupne su sljedeće vrijednosti polja oznaka TCP:TCP-fin, TCP-sin, TCP-prvi, TCP pritiskom, TCP pritiskom, TCP-ACK, TCP-URG.

Primitivi se mogu kombinirati koristeći bilo što od sljedećeg:

  • Zatvorena skupina primitivaca i operatora (zagrade su posebne za Shell i moraju se pobjeći)
  • Negacija ('!'ili'ne')
  • Spajanje ('&&' ili 'i')
  • Zamjena ('||' ili 'ili')

Negacija ima najveći prioritet. Izmjenjivanje i povezivanje imaju jednaku prednost i pridružuju se s lijeva na desno. Imajte na umu da je eksplicitnoi tokeni, a ne suprotstavljanje, potrebni su za povezivanje.

Ako se identifikator dodjeljuje bez ključne riječi, pretpostavlja se najnovija ključna riječ. Na primjer, ne domaćin nas i as je kratka za ne domaćin vs i domaćin as, Međutim, to se ne smije zbuniti ne (host vs ili as).

Argumenti za izražavanje mogu se proslijediti tcpdump kao pojedinačni argument ili kao više argumenata, ovisno što je prikladno. Općenito, ako izraz sadrži Shell metakaraktere, lakše ga je proslijediti kao jedan, citirani argument. Višestruki argumenti povezani su s razmakom prije nego što se raščlanjuju.

Primjeri Tcpdump

tcpdump domaćin zalaska sunca

Gornja tcpdump naredba koristi se za ispis svih paketa koji dolaze ili odlaze zalaska sunca.

tcpdump host helios i (vruće ili asa )

Ovaj primjer tcpdump ispisuje promet između Helios i ili vruće ili as.

tcpdump ip host ace, a ne helios

Možete koristiti ovu tcpdump naredbu za ispis svih IP paketa između as i bilo kojeg domaćina osim Helios.

tcpdump net ucb-eter

U gornjem primjeru, tcpdump ispisuje sav promet između lokalnih domaćina i hostova u Berkeleyu.

tcpdump 'gateway snup i (port ftp ili ftp-data)'

Ovaj sljedeći primjer tcpdump naredbe koristi se za ispis svih FTP prometa putem internetskog pristupnika snup , Imajte na umu da se izraz navodi da spriječi pogrešnu interpretaciju zagrada.

tcpdump ip, a ne neto localnet

U gore navedenom primjeru tcpdump naredba ispisuje promet koji nije izvor ni namijenjen lokalnim hostima.

tcpdump 'tcp tcpflags & (tcp-syn | tcp-fin)! = 0, a ne src i dst net localnet '

Za gore navedeni primjer tcpdump, naredba se koristi za ispis početnih i završnih paketa (SYN i FIN paketa) svakog TCP razgovora koji uključuje ne-lokalni domaćin.

tcpdump 'pristupnik snup i ip 2: 2> 576'

Gornja naredba ispisuje IP pakete dulje od 576 bajta poslanih preko pristupnika snup.

tcpdump 'eter 0 & 1 = 0 i ip 16> = 224'

Tcpdump naredba prikazana iznad ispisuje IP ili multicast pakete koji su bili ne poslan putem Ethernet prijenosa ili multicasta.

tcpdump 'icmp icmptype! = icmp-echo i icmp icmptype! = icmp-echoreply'

U ovom posljednjem primjeru tcpdump, naredba ispisuje sve ICMP pakete koji nisu zahtjevi ili odgovori (npr. Ne ping paketi).

Tcpdump izlazni format

Izlaz iz tcpdump ovisi o protokolu. Slijedi kratak opis i primjeri većine formata.

Headers Razina veze, Ako je navedena opcija "-e", ispisuje se zaglavlje razine veza. Na Ethernet mrežama ispisuju se izvorna i odredišna adresa, protokol i duljina paketa.

Na mrežama FDDI, opcija "-e" uzrokuje tcpdump za ispis polja "kontrola okvira", adresa izvora i odredišta i duljina paketa. Normalni paketi (poput onih koji sadrže IP datagrami) su paketi 'async', s prioritetnom vrijednošću između 0 i 7: na primjer, ``async4”. Pretpostavlja se da takvi paketi sadrže paket 802.2 Logical Link Control (LLC); zaglavlje LLC ispisuje ako jest ne ISO datagram ili takozvani SNAP paket.

Na mrežama Token Ring, opcija "-e" uzrokuje tcpdump za ispis polja "kontrola pristupa" i "kontrola okvira", adresa izvora i odredišta i duljina paketa. Kao i na FDDI mrežama, pretpostavlja se da paketi sadrže paket LLC. Bez obzira je li opcija "-e" specificirana ili nije, podaci o izvoru usmjeravanja ispisuju se za izvorno usmjerene pakete.

(N.B .: Sljedeći opis pretpostavlja poznavanje SLIP kompresijskog algoritma opisanog u RFC-1144.)

Na SLIP vezama ispisuju se indikatori smjera ("I" za dolazne, "O" za odlazne), vrstu paketa i informacije o komprimiranju. Vrsta paketa se prvo ispisuje. Tri su vrste IP , utcp , i ctcp , Nije ispisana nijedna daljnja veza IP paketa. Za TCP pakete, identifikator veze ispisuje se prema vrsti. Ako je paket komprimiran, njegovo kodirano zaglavlje ispisuje se. Posebni slučajevi ispisuju se kao* S + n i* SA + n , gdje n je iznos kojim se promijenio redni broj (ili broj slijeda i ack). Ako to nije poseban slučaj, ispisuju se nula ili više promjena. Promjena je naznačena pomoću U (hitni pokazivač), W (prozor), A (ack), S (broj slijeda) i I (paketni ID), a zatim delta (+ n ili -n) ili novu vrijednost (= n). Konačno, ispisuju se količine podataka u paketu i komprimiranoj duljini zaglavlja.

Na primjer, sljedeća linija prikazuje izlazni komprimirani TCP paket s implicitnim identifikatorom veze; ack se promijenio za 6, broj slijeda za 49 i ID paketa za 6; postoje 3 bajta podataka i 6 bajta komprimiranog zaglavlja:

O ctcp * A + 6 S + 49 I + 6 3 (6)

Arp / rarp paketi, Arp / rarp izlaz prikazuje vrstu zahtjeva i njegove argumente. Oblik je namijenjen samoobjasnjavanju. Evo kratkog uzorka preuzetog od početka "rlogina" od domaćina rtsg domaćin csam :

arp koji-ima csam reći rtsgarp odgovor csam je - na CSAM

Prva linija kaže da je rtsg poslao arp paket koji traži Ethernet adresu internet host csam. Csam odgovara sa svojom Ethernet adresom (u ovom primjeru, Ethernet adrese su u kapicama i internetskim adresama u malim slovima).

Ovo bi izgledalo manje suvišno ako smo to učinili tcpdump-n :

arp koji-ima 128.3.254.6 reći 128.3.254.68arp odgovor 128.3.254.6 je-u 02: 07: 01: 00: 01: c4

Da smo to učinili tcpdump-e , bit će vidljiva činjenica da se prvo paketi emitiraju, a drugi je točka do točke:

RTSG Broadcast 0806 64: arp koji-ima csam reći rtsgCSAM RTSG 0806 64: arp odgovor csam je - u CSAM

Za prvi paket to govori da je Ethernet adresa izvora RTSG, odredište je Ethernet adresa, polje tipa sadrži hex 0806 (tip ETHER_ARP), a ukupna duljina 64 bajta.

TCP paketi (N.B .: Slijedeći opis pretpostavlja poznavanje TCP protokola opisanog u RFC-793. Ako niste upoznati s protokolom, ni ovaj opis niti tcpdump neće vam puno koristiti) , Opći format tcp protokola linija je:

src> dst: zastavice podataka-seqno ack prozor hitne opcije

src i DST su izvorne i odredišne ​​IP adrese i priključci. zastavice su neke kombinacije S (SYN), F (FIN), P (PUSH) ili R (RST) ili pojedinačne '.' (bez zastave). Podataka seqno opisuje dio prostora sekvencije pokrivenih podacima u ovom paketu (vidi primjer u nastavku). Ack slijedni broj sljedećih podataka očekuje drugi smjer na ovoj vezi. Prozor je broj bajtova spremnika za prijam dostupan u drugom smjeru na ovoj vezi. Urg ukazuje na to da postoji "hitan" podatak u paketu. Opcije su opcije tcp zatvorene u kutnim zagradama (npr. ).

Src, dst, i zastave uvijek su prisutni. Ostala polja ovise o sadržaju zaglavlja tcp protokola paketa i izlaze se samo ako je to prikladno.

Ovo je početni dio rlogina od domaćina rtsg domaćin csam .

rtsg.1023> csam.login: S 768512: 768512 (0) pobjeda 4096 csam.login> rtsg.1023: S 947648: 947648 (0) ack 768513 pobjeda 4096 rtsg.1023> csam.login:. ack 1 pobijediti 4096rtsg.1023> csam.login: P 1: 2 (1) ack 1 pobjeda 4096csam.login> rtsg.1023:. ack 2 pobijediti 4096rtsg.1023> csam.login: P 2:21 (19) ack 1 pobjeda 4096csam.login> rtsg.1023: P 1: 2 (1) ack 21 pobjeda 4077csam.login> rtsg.1023: P 2: 3 (1) ack 21 pobijediti 4077 poziv 1csam.login> rtsg.1023: P 3: 4 (1) ack 21 pobijediti 4077 poziv 1

Prva linija kaže da je tcp port 1023 na rtsg poslao paket u priključak prijaviti se na celu.S označava da je SYN zastavica je postavljena. Broj sekvence paketa bio je 768512 i nije sadržavao podatke. (Zapis je "prvi: zadnji (nbytes)", što znači "brojevi redoslijeda prvi do, ali ne uključujući posljednji koji je nbytes bajtova korisničkih podataka ".) Nije bilo pračnate torbice, dostupni prozor za prijem bio je 4096 bajta, a postoji opcija maksimalne veličine segmenta koja traži mss od 1024 bajta.

Csam odgovara sa sličnim paketom, osim što uključuje i prtljažnik za rtsg's SYN. Rtsg onda acks csam's SYN. '.' znači da nisu postavljene zastave. Paket nije sadržavao podatke pa nema broja slijeda podataka. Imajte na umu da je broj slijeda ack mali cijeli broj (1). Prvi put tcpdump vidi tcp 'razgovor', ispisuje redni broj iz paketa. Na naknadnim paketima razgovora, ispisuje se razlika između broja slijednog broja trenutnog paketa i tog početnog broja slijeda. To znači da se brojevi redoslijeda nakon prvog mogu interpretirati kao relativni položaji bajtova u streamu konverzacije (s prvim bajtom podataka koji je svaki smjer "1"). '-S' će nadjačati ovu značajku, uzrokujući da se izvorni brojevi redoslijeda izlaze.

Na šestoj liniji, rtsg šalje 19 bajta podataka (bajtova 2 do 20 u rtsg -> csam strani razgovora). PUSH zastavica je postavljena u paketu. Na sedmoj liniji csam kaže da su primljeni podaci poslani rtsg-om do, ali ne uključujući byte 21. Većina tih podataka očigledno je sjedila u čašici za socket jer je csamov prijemni prozor dobio manje od 19 bajta. Csam također šalje jedan bajt podataka u rtsg u ovom paketu. Na osmom i devetom retku, csam šalje dva bajtova hitnih, gurnutih podataka na rtsg.

Ako je snimka bila dovoljno mala da tcpdump nije uhvatio cijelo zaglavlje TCP-a, on tumači što više zaglavlja, a zatim izvještava "| TCP "da biste naznačili da ostatak nije moguće tumačiti. Ako zaglavlje sadrži lažnu opciju (jednu s duljinom koja je premalena ili iza kraja zaglavlja), tcpdump prijavljuje ga kao " loše opt "i ne interpretira nikakve daljnje mogućnosti (budući da je nemoguće reći gdje počinju). Ako duljina zaglavlja ukazuje da su opcije prisutne, ali duljina IP datagrama nije dovoljno dugo da opcije zaista budu tamo, tcpdump prijavljuje ga kao " loša HDD dužina ''.

Snimite pakete s posebnim kombinacijama zastave, U sekciji kontrolnih bitova TCP zaglavlja ima osam bitova:

CWR | ECE | URG | ACK | PSH | RST | SYN | PERAJE

Pretpostavimo da želimo gledati pakete koji se koriste za uspostavljanje TCP veze. Podsjetimo da TCP koristi trostruki protokol rukovanja kada inicijalizira novu vezu; slijed povezivanja s obzirom na TCP kontrolne bitove je:

  1. Pozivatelj šalje SYN.
  2. Primatelj odgovara sa SYN, ACK.
  3. Pozivatelj šalje ACK.

Sada smo zainteresirani za hvatanje paketa koji imaju samo skup SYN bitova (korak 1). Imajte na umu da ne želimo pakete iz koraka 2 (SYN-ACK), samo običan početni SYN. Ono što nam je potrebno je ispravan izraz filtra za tcpdump .

Sjetite se strukture TCP zaglavlja bez mogućnosti:

0 15 31-----------------------------------------------------------------| izvorni port | odredišni port |-----------------------------------------------------------------| broj sekvence-----------------------------------------------------------------| broj priznanja |-----------------------------------------------------------------| HL | rsvd | C | E | U | A | P | R | S | F | veličina prozora-----------------------------------------------------------------| TCP kontrolni zbroj | hitni pokazivač-----------------------------------------------------------------

TCP zaglavlje obično ima 20 okteta podataka, osim ako su opcije prisutne. Prva linija grafikona sadrži oktete 0-3, druga linija prikazuje oktete 4-7, itd.

Počevši odbrojavanje s 0, relevantni TCP kontrolni bitovi sadržani su u oktetu 13:

0 7| 15| 23| 31----------------|---------------|---------------|----------------| HL | rsvd | C | E | U | A | P | R | S | F | veličina prozora----------------|---------------|---------------|----------------| | 13. oktet | | |

Let's imati bliži pogled na oktet br. 13:

| | |---------------| | C | e | U | A | P | R | S | F | |---------------| |7 5 3 0|

To su TCP kontrolni bitovi u kojima smo zainteresirani. Brojni su bitovi u ovom oktetu od 0 do 7, desno od lijeve strane, tako da je bit PSH bit broj 3, a URG bit je broj 5.

Podsjetimo da želimo uhvatiti pakete sa samo SYN skupom. Pogledajmo što se događa s oktetom 13 ako TCP datagram stigne s SYN bitom postavljenim u zaglavlju:

| C | e | U | A | P | R | S | F | |---------------| |0 0 0 0 0 0 1 0| |---------------| |7 6 5 4 3 2 1 0|

Gledajući odjeljak kontrolnih bitova vidimo da je postavljen samo bitni broj 1 (SYN).

Pretpostavljajući da oktet broj 13 predstavlja 8-bitni nepotpisani integer u redoslijedu mrežnog bajtova, binarna vrijednost ovog okteta je:

00000010

Njegov decimalni prikaz je:

7 6 5 4 3 2 1 00*2 + 0*2 + 0*2 + 0*2 + 0*2 + 0*2 + 1*2 + 0*2 = 2

Gotovo smo gotovi jer sada znamo da ako je samo SYN postavljen, vrijednost 13. okteta u TCP zaglavlju, kada se interpretira kao 8-bitni nepotpisani cijeli broj u mrežnom bajtu, mora biti točno 2.

Taj se odnos može izraziti kao

tcp 13 == 2

Taj izraz možemo koristiti kao filtar tcpdump kako bi se gledali paketi koji imaju samo SYN skup:

tcpdump -i xl0 tcp 13 == 2

Izraz kaže "neka 13. oktet TCP datagrama ima decimalnu vrijednost 2", što je upravo ono što želimo.

Pretpostavimo da trebamo uhvatiti pakete za SYN, ali nam nije bitno da li ACK ili bilo koji drugi TCP kontrolni bit postavljen u isto vrijeme. Pogledajte što se događa s oktetom 13 kada dolazi TCP datagram s SYN-ACK skupom:

| C | e | U | A | P | R | S | F | |---------------| |0 0 0 1 0 0 1 0| |---------------| |7 6 5 4 3 2 1 0|

Bitovi 1 i 4 sada su postavljeni u 13. oktetu. Binarna vrijednost okteta 13 je:

00010010

što znači decimalni broj:

7 6 5 4 3 2 1 00*2 + 0*2 + 0*2 + 1*2 + 0*2 + 0*2 + 1*2 + 0*2 = 18

Ne možemo samo koristiti 'tcp 13 == 18' u tcpdump jer to bi odabrao samo one pakete koji imaju SYN-ACK set, ali ne one sa samo SYN skupom. Imajte na umu da nas ne zanima ACK ili bilo koji drugi kontrolni bit postavljen tako dugo dok je SYN postavljen.

Da bismo postigli svoj cilj, moramo logički i binarnu vrijednost okteta 13 s nekom drugom vrijednošću sačuvati SYN bit. Znamo da želimo da SYN bude postavljen u svakom slučaju, tako da ćemo logički i vrijednost u 13. oktetu s binarnom vrijednošću SYN:

00010010 SYN-ACK 00000010 SYN I 00000010 (želimo SYN) I 00000010 (želimo SYN) -------- -------- = 00000010 = 00000010

Vidimo da ova AND operacija donosi isti rezultat bez obzira je li ACK ili neki drugi TCP kontrolni bit postavljen. Decimalni prikaz I vrijednosti kao i rezultat ove operacije je 2 (binarni 00000010), tako da znamo da za pakete sa SYN postavljamo sljedeći odnos mora vrijediti:

((vrijednost okteta 13) I (2)) == (2)

Ovo nas upućuje na tcpdump izraz filtra

tcpdump -i xl0 'tcp 13 & 2 == 2'

Imajte na umu da biste trebali upotrijebiti pojedinačne navodnike ili povratni udarac u izrazu da biste sakrili AND ('&') posebni znak iz ljuske.

UDP paketa. UDP format ilustrira ovaj rwho paket:

actinide.who> broadcast.who: udp 84

Ovo kaže da je luka tko na domaćinu aktinida poslao udp datagram u luku tko na domaćinu emitiranje , internetska adresa za emitiranje. Paket sadrži 84 bajta korisničkih podataka.

Neke UDP usluge prepoznaju se (od izvora ili odredišnog broja ulaza) i informacije o protokolu na višoj razini - naročito - zahtjevi za uslugom domene (RFC-1034/1035) i Sunčani RPC pozivi (RFC-1050) na NFS.

UDP zahtjevi za poslužitelj imena (N.B .: Slijedeći opis pretpostavlja poznavanje protokola Domain Service opisanog u RFC-1035. Ako niste upoznati s protokolom, sljedeći će opis imati malo smisla.)

Zahtjevi za naziv poslužitelja oblikovani su kao:

src> dst: id op? zastavice qtype qclass ime (len) h2opolo.1538> helios.domain: 3+ A? ucbvax.berkeley.edu. (37)

Domaćin h2opolo upita poslužitelj domene Helios za zapis adrese (qtype = A) povezan s imenom ucbvax.berkeley.edu. ID upita bio je '3'. '+' Označava željena rekurzija zastavica je postavljena. Duljina upita bila je 37 bajtova, ne uključujući zaglavlja UDP i IP protokola. Rad upita bio je normalan, pitanje , tako da je op polje izostavljeno. Ako je op bilo nešto drugo, bilo bi tiskano između '3' i '+'. Slično tome, qclass je bio normalan, C_IN , i izostavljen. Bilo koji drugi qclass tiskan je odmah nakon "A".

Nekoliko anomalija se provjerava i može rezultirati dodatnim poljima zatvorenim u kvadratnim zagradama: Ako upit sadrži odgovor, zapisnik o ovlasti ili dodatni zapis, ancount , nscount , ili arcount tiskani su kao " n a ', n n ', ili' n au 'gdje n je odgovarajući broj. Ako je bilo koji od bitova odgovora postavljen (AA, RA ili rcode) ili bilo koji od bitova "mora biti nula" postavljen u bajtovima dva i tri, `b2 & 3 = x ', gdje je x je hex vrijednost zaglavlja byte dva i tri.

Odgovori UDP naziva poslužitelja. Odgovori poslužitelja naziva oblikovani su kao:

src> dst: id op rcode zastava a / n / au tipa klase podataka (len) helios.domain> h2opolo.1538: 3 3/3/7 A 128.32.137.3 (273)helios.domain> h2opolo.1537: 2 NXDomain * 0/1/0 (97)

U prvom primjeru, Helios odgovara na upit id 3 od h2opolo s tri odgovornog zapisa, tri zapisa poslužitelja imena i sedam dodatnih zapisa. Prvi odgovor je tip A (adresa), a podaci su internetska adresa 128.32.137.3. Ukupna veličina odgovora bila je 273 bajta, isključujući UDP i IP zaglavlja. Propust (Query) i kôd odgovora (NoError) izostavljeni su, kao i klasa (C_IN) rekorda A.

U drugom primjeru, Helios odgovara na upit 2 s kodom odgovora nepostojeće domene (NXDomain) bez odgovora, jednog poslužitelja imena i bez zapisa o vlasti. '*' Označava da autoritativni odgovor bit je postavljen. Budući da nije bilo odgovora, nije ispisana nikakva vrsta, klasa ili podaci.

Drugi znakovi zastave koji se mogu pojaviti su '-' (rekurzija je dostupna, RA, ne set) i '|' (skraćena poruka, TC, skup). Ako odjeljak "pitanje" ne sadrži točno jedan unos, " n q '.

Imajte na umu da zahtjevi i odgovori poslužitelja imena često imaju veliku i zadanu snaplen od 68 bajta ne može uhvatiti dovoljno paketa za ispis. Koristiti-s zastavica za povećanje snaplen ako trebate ozbiljno istražiti promet poslužitelja imena. '-s 128'je dobro radio za mene.

SMB / CIFS dekodiranje. tcpdump uključuje prilično opsežno SMB / CIFS / NBT dekodiranje za podatke o UDP / 137, UDP / 138 i TCP / 139. Također se obavljaju neka primitivna dekodiranja IPX i NetBEUI SMB podataka.

Prema zadanim postavkama, obavlja se prilično minimalna dekodiranje, s puno detaljnijom dekodiranjem ako se koristi -v. Budite upozoreni da s jednim paketom SMB-a može doći do stranice ili više, stoga samo koristite - ako zbilja želite sve krhke detalje.

Ako dekodirate SMB sesije koje sadrže unicode žice, možda želite postaviti varijablu okruženja USE_UNICODE na 1. Zakrpa za automatsko otkrivanje unicode stringova bila bi dobrodošla.

Za informacije o formatima paketa SMB i o svim područjima pogledajte www.cifs.org ili katalog / pub / samba / specs / na vašem omiljenom mjestu ogledala samba.org. SMB zakrpe napisao je Andrew Tridgell ([email protected]).

NFS zahtjevi i odgovori. Zahtjevi i odgovori Sun NFS (Network File System) tiskani su kao:

src.xid> dst.nfs: len op args src.nfs> dst.xid: odgovor stat len ​​op rezultata sushi.6709> wrl.nfs: 112 readlink fh 21,24 / 10,73165wrl.nfs> sushi.6709: odgovor ok 40 readlink "../var"sushi.201b> wrl.nfs: 144 pretraživanje fh 9,74 / 4096,6878 "xcolors"wrl.nfs> sushi.201b: odgovor ok 128 lookup fh 9,74 / 4134,3150

U prvom retku, domaćin sushi šalje transakciju s ID-om 6709 do WRL (imajte na umu da je broj koji slijedi src host je ID transakcije, ne izvorni priključak). Zahtjev je bio 112 bajtova, isključujući UDP i IP zaglavlja. Operacija je bila a readlink (pročitajte simboličku vezu) na ručici datoteka ( FH ) 21,24 / 10,731657119. (Ako je netko sretan, kao u ovom slučaju, rukovanje datotekom može se tumačiti kao glavni, manji broj parova uređaja, nakon čega slijedi broj za inode i broj generiranja.) WRL odgovara 'ok' sa sadržajem veze.

U trećem retku, sushi pita WRL potražiti ime ' xcolors 'u direktorijskoj datoteci 9,74 / 4096,6878. Imajte na umu da ispisani podaci ovise o vrsti operacije. Format je namijenjen samoobjasnjavanju ako se pročita zajedno s specitičnim protokolom NFS.

Ako je navedena zastavica -v (opširan), ispisuju se dodatne informacije. Na primjer:

sushi.1372a> wrl.nfs: 148 čitanje fh 21,11 / 12,195 8192 bajta @ 24576wrl.nfs> sushi.1372a: odgovor ok 1472 pročitaj REG 100664 ids 417/0 sz 29388

(-v također ispisuje polja IP TTL, ID, duljina i fragmentacije koja su izostavljena iz ovog primjera.) U prvom retku, sushi pita WRL za čitanje 8192 bajta iz datoteke 21,11 / 12,195, kod byte offset 24576. WRL odgovori 'ok'; paket prikazan na drugom retku prvi je fragment odgovora i stoga je dugačak samo 1472 bajta (ostali bajtovi će pratiti u kasnijim fragmentima, ali ti fragmenti nemaju NFS ili čak UDP zaglavlja i stoga ih možda neće ispisivati, ovisno o upotrijebljenom izrazu filtra). Budući da je navedena -v zastavica, ispisuju se neki atributi datoteka (koji se vraćaju uz datoteke podataka): vrstu datoteke ("REG" za redovitu datoteku), način rada datoteka (u oktalnom), uid i gid i veličina datoteke.

Ako se oznaka -v dade više puta, više se ispisuju detalji.

Imajte na umu da su NFS zahtjevi vrlo veliki, a velik dio detalja neće se ispisati osim ako snaplen povećava se. Pokušajte koristiti 's 192'za gledanje NFS prometa.

NFS paketi za odgovor ne izričito identificiraju rad RPC-a. umjesto toga, tcpdump prati zahtjeve "nedavnih" i odgovara im odgovorima pomoću ID-a transakcije. Ako odgovor ne slijedi usko odgovarajući zahtjev, možda neće biti moguće analizirati.

Transarc AFS (Andrew File System) zahtijeva i odgovara.

src.sport> dst.dport: tip paketa rx src.sport> dst.dport: rx paketni servisni poziv pozivno ime args src.sport> dst.dport: rx paketa tipa odgovor usluge odgovor naziva naziva args elvis.7001> pike.afsfs: rx podaci fs poziv preimenovati stari fid 536876964/1/1 ".newsrc.new" novi fid 536876964/1/1 ".newsrc"pike.afsfs> elvis.7001: rx podataka fs odgovor preimenuj

U prvom retku, domaćin elvis šalje RX paket na štuka. To je RX paket podataka za fs (fileerver) uslugu, a početak je RPC poziva.RPC poziv bio je preimenovan, s imenom starog imenika direktorija 536876964/1/1 i starim nazivom datoteke '.newsrc.new', a novi imenik direktorija 536876964/1/1 i novi naziv datoteke '. newsrc”. Pečat domaćin odgovara RPC odgovorom na preimenovanje poziva (što je bilo uspješno, jer je to bio podatkovni paket, a ne paket za prekid).

Općenito, svi AFS RPC-ovi dekodirani su najmanje nazivom RPC naziva. Većina AFS RPC-ova imaju barem neke od argumenata koji su dekodirani (uglavnom samo "zanimljivi" argumenti, za određenu definiciju zanimljive).

Oblik je namijenjen samooblikovanju, ali vjerojatno neće biti korisno ljudima koji nisu upoznati s radom AFS i RX.

Ako se zastavica -v (dvolično) daje dva puta, ispisuju se paketi priznanja i dodatne informacije o zaglavlju, kao što su RX pozivni broj, broj poziva, redni broj, serijski broj i oznake RX paketa.

Ako je -v zastavica dana dva puta, ispisuju se dodatne informacije, kao što su ID RX poziva, serijski broj i oznake RX paketa. MTU pregovaračke informacije također se ispisuju iz paketa RX ack.

Ako se oznaka -v dade tri puta, ispisuje se sigurnosni indeks i ID usluge.

Šifre grešaka se ispisuju za abort pakete, s iznimkom paketa Ubik beacon (jer se abort paketi koriste za označavanje broja glasova za Ubik protokol).

Imajte na umu da su zahtjevi za AFS vrlo veliki, a mnogi se argumenti neće ispisati osim ako snaplen povećava se. Pokušajte koristiti `-s 256'za gledanje AFS prometa.

Paketi odgovornih AFS-a ne izričito identificiraju RPC operaciju. umjesto toga, tcpdump prati zahtjeve "nedavnih" i odgovara na odgovore koristeći pozivni broj i ID usluge.Ako odgovor ne slijedi usko odgovarajući zahtjev, možda neće biti moguće analizirati.

KIP Appletalk (DDP u UDP-u), Appletalk DDP paketi enkapsulirani u UDP datagramima su de-encapsulated i bačeni kao DDP paketi (tj. Sve informacije UDP zaglavlja su odbačene). Datoteka /etc/atalk.names se koristi za prevođenje neto appletalk i brojeva čvorova na imena.

Redci u ovoj datoteci imaju ovaj obrazac:

naziv broja 1.254 etera16,1 icsd-net1.254.110 as

Prve dvije linije daju imena mreža apleta. Treća crta daje naziv određenog domaćina (domaćin se razlikuje od mreže do trećeg okteta u broju - neto broj mora imaju dva okteta i broj domaćina mora imaju tri okteta). Broj i ime trebaju biti odvojeni razmakom (praznine ili kartice). /etc/atalk.names Datoteka može sadržavati prazne retke ili retke komentara (linije koje počinju s "#").

Adresa apleta ispisuju se u obliku:

net.host.port 144.1.209.2> icsd-net.112.220ured.2> icsd-net.112.220jssmag.149.235> icsd-net.2

(Ako je /etc/atalk.names ne postoji ili ne sadrži unos za neke hostove / neto broj, adrese se tiskaju u numeričkom obliku.) U prvom primjeru, NBP (DDP port 2) na neto 144.1 čvoru 209 šalje na sve što sluša port 220 od neto icsd čvora 112. Druga linija je ista, osim što je poznat cijeli naziv izvornog čvora ('ured'). Treći redak je slanje iz luke 235 na neto jssmag čvoru 149 radi emitiranja na icsd-net NBP portu (imajte na umu da je adresa za emitiranje (255) označena neto imenom bez broja domaćina, zbog čega je to dobro ideja da čuvaju imena čvora i neto imena različita u /etc/atalk.names).

NBP (naziv obvezujući protokol) i ATP (Appletalk transakcijski protokol) paketi imaju svoj sadržaj tumačiti. Ostali protokoli upisuju samo naziv protokola (ili broj ako nijedan naziv nije registriran za protokol) i veličina paketa.

NBP paketi oblikovani su poput sljedećih primjera:

icsd-net.112.220> jssmag.2: nbp-lkup 190: "=: LaserWriter @ *"jssmag.209.2> icsd-net.112.220: nbp-odgovor 190: "RM1140: LaserWriter @ *" 250techpit.2> icsd-net.112.220: nbp-odgovor 190: "techpit: LaserWriter @ *" 186

Prva linija je zahtjev za traženje imena za laserske osobe koje šalje net icsd host 112 i emitira se na net jssmag. Nbp ID za pretraživanje je 190. Druga linija prikazuje odgovor za ovaj zahtjev (imajte na umu da ima isti ID) od domaćina jssmag.209 rekavši da ima laserski resurs pod imenom "RM1140" registriran na priključku 250. Treći linija je još jedan odgovor na isti zahtjev koji govori da domaćin techpit ima laserski "techpit" registriran na portu 186.

ATP paket oblikovanje je prikazano sljedećim primjerom:

jssmag.209.165> helios.132: atp-req 12266 <0-7> 0xae030001helios.132> jssmag.209.165: atp-resp 12266: 0 (512) 0xae040000helios.132> jssmag.209.165: atp-resp 12266: 1 (512) 0xae040000helios.132> jssmag.209.165: atp-resp 12266: 2 (512) 0xae040000helios.132> jssmag.209.165: atp-resp 12266: 3 (512) 0xae040000helios.132> jssmag.209.165: atp-resp 12266: 4 (512) 0xae040000helios.132> jssmag.209.165: atp-resp 12266: 5 (512) 0xae040000helios.132> jssmag.209.165: atp-resp 12266: 6 (512) 0xae040000helios.132> jssmag.209.165: atp-resp * 12266: 7 (512) 0xae040000jssmag.209.165> helios.132: atp-req 12266 <3,5> 0xae030001helios.132> jssmag.209.165: atp-resp 12266: 3 (512) 0xae040000helios.132> jssmag.209.165: atp-resp 12266: 5 (512) 0xae040000jssmag.209.165> helios.132: atp-rel 12266 <0-7> 0xae030001jssmag.209.133> helios.132: atp-req * 12267 <0-7> 0xae030002

Jssmag.209 pokreće ID transakcije 12266 s helikopterom domaćinstva tražeći do osam paketa ('<0-7>').Heksadinski broj na kraju retka je vrijednost polja "korisnički podaci" u zahtjevu.

Helios reagira s osam paketa od 512 bajta. ': Znamenka' koja slijedi id transakcije daje broj sekvence paketa u transakciji, a broj u parenu je količina podataka u