Tcpdump - Linux Command - Unix naredba

NAME

tcpdump - saobraćaj na mreži

SYNOPSIS

tcpdump [ -adeflnNOpqRStuvxX ] [ -c broj ]

[ -C file_size ] [ -F datoteka ]

[ -i interfejs ] [ -m modul ] [ -r datoteka ]

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

[ -E algo: tajna ] [ izraz ]

OPIS

Tcpdump odštampava zaglavlja paketa na mrežnom interfejsu koji odgovara boolean izrazu . Takođe se može pokrenuti sa -w zastavom, zbog čega se sačuva paketni podatak u datoteku za kasniju analizu i / ili sa oznakom -r , što ga prouzrokuje čitanje iz memorisane datoteke paketa, a ne čitanje paketa iz mrežnog interfejsa. U svim slučajevima, tcpdump će obraditi samo pakete koji odgovaraju izrazu .

Tcpdump će, ako se ne pokrene sa oznakom -c , nastaviti sa sakupljanjem paketa dok ne bude prekinut signalom SIGINT (generisan, na primjer, upisivanjem vašeg prekidnog znaka, obično kontrola-C) ili SIGTERM signala (obično generiranog sa ubistvom (1) komanda); ako se pokreće sa -c zastavom, snimaće pakete sve dok ne bude prekinuta signalom SIGINT ili SIGTERM ili je obrađen određeni broj paketa.

Kada tcpdump završi sakupljanje paketa, on će prijaviti broj:

paketi `` primljeni filterom '' (ovo značenje zavisi od operativnog sistema na kojem radite tcpdump , a možda i od načina na koji je OS konfigurisan - ako je u komandnoj liniji određen filter, na nekim OS-ovima se računa paketi bez obzira da li su upareni izrazom filtriranja, a na drugim operativnim sistemima računaju samo pakete koji su upareni izrazom filtera i obrađeni su pomoću tcpdump-a );

paketi "padeni po kernelu" (ovo je broj paketa koji su pali zbog nedostatka puferskog prostora pomoću mehanizma za snimanje paketa na operativnom sistemu na kojem tcpdump radi, ako OS izveštava te informacije aplikacijama; ako ne, to će biti prijavljeno kao 0).

Na platformama koje podržavaju SIGINFO signal, kao što je većina BSD-ova, izveštava o tim brojkama kada primi SIGINFO signal (generisan, na primer, upisivanjem vašeg "statusnog" karaktera, obično kontrola-T) i nastaviće sakupljati pakete .

Čitanje paketa sa mrežnog interfejsa može zahtevati da imate posebne privilegije:

Ispod SunOS 3.x ili 4.x sa NIT ili BPF:

Morate imati pristup čitanju / dev / nit ili / dev / bpf * .

Pod Solarisom sa DLPI:

Morate imati pristup za čitanje / pisanje mrežnom pseudo uređaju, npr. / Dev / le . Međutim, u nekim verzijama Solaris-a to nije dovoljno da omogući tcpdump da se snima u promiskuitetnom režimu; na onim verzijama Solaris-a, morate biti root, ili tcpdump mora biti instaliran setuid root, kako biste ga snimili u promiskuitetnom režimu. Imajte na umu da, na mnogim (možda svim) interfejsima, ako ne snimate u promiskuitetnom režimu, nećete videti nikakve odlazne pakete, tako da snimanje koje nije obavljeno u promiskuitetnom režimu možda neće biti vrlo korisno.

Pod HP-UX sa DLPI:

Morate biti root ili tcpdump mora biti instaliran setuid root.

Pod IRIX-om s snoopom:

Morate biti root ili tcpdump mora biti instaliran setuid root.

Pod Linuxom:

Morate biti root ili tcpdump mora biti instaliran setuid root.

Pod Ultrix i Digital UNIX / Tru64 UNIX:

Svaki korisnik može snimiti mrežni saobraćaj pomoću tcpdump-a . Međutim, nijedan korisnik (čak ni super-korisnik) ne može uhvatiti u promiskuitetnom režimu na interfejsu osim ako super-korisnik nije omogućio rad na promjenjivom režimu na tom interfejsu koristeći pfconfig (8), a nema korisnika (čak ni super-korisnik ) može uhvatiti unicast saobraćaj koji je primio ili poslala mašina na interfejsu osim ako je super-korisnik omogućio operaciju kopiranja u svim modovima pomoću pfconfig-a , tako korisno uzimanje paketa na interfejsu vjerovatno zahtijeva da bilo koji promiskuni mod ili kopija -all-mode ili oba načina rada, biti omogućeni na tom interfejsu.

Pod BSD:

Morate imati pristup za čitanje / dev / bpf * .

Čitanje sačuvane paketne datoteke ne zahtijeva posebne privilegije.

OPCIJE

-a

Pokušaj pretvoriti mrežu i emitovati adrese imena.

-c

Izađi nakon primanja brojeva paketa.

-C

Pre nego što pišete neobrađeni paket u datoteku sačuvanja, proverite da li je datoteka trenutno veća od file_size i, ako jeste, zatvorite trenutnu datoteku sačuvaj i otvorite novu. Savefiles nakon prve savefile će imati ime specificirano sa -w zastavom, sa brojem nakon toga, počevši od 2 i nastavlja se prema gore. Jedinice datoteke_size su milione bajtova (1.000.000 bajtova, ne 1.048.576 bajtova).

-d

Iscrtajte sastavljeni kod za upoređivanje paketa u ljudskom čitljivom obliku na standardni izlaz i zaustavljanje.

-dd

Kôd za upoređivanje paketa sa podacima kao C- programski fragment.

-ddd

Odredišni kôd za upoređivanje paketa kao decimalni brojevi (prethodi broju).

-e

Štampajte zaglavlje linka veze na svakoj liniji otpreme.

-E

Koristi algo: tajna za dešifrovanje IPsec ESP paketa. Algoritmi mogu biti des-cbc , 3des -cbc , blowfish-cbc , rc3-cbc , cast128-cbc , ili nijedan . Podrazumevano je des-cbc . Sposobnost dešifrovanja paketa je prisutna samo ako je tcpdump kompajliran sa omogućenom kriptografijom. tajni ascii tekst za tajni ključ ESP. U ovom trenutku ne možemo da prihvatimo proizvoljnu binarnu vrednost. Opcija preuzima RFC2406 ESP, a ne RFC1827 ESP. Ova opcija je samo u svrhu otklanjanja grešaka, a obeshrabrena je upotreba ove opcije sa istinski tajnim ključem. Predstavljanjem tajnog ključa IPsec na komandnu liniju učinite ga vidljivim drugim, putem ps (1) i drugim prilikama.

-f

Štampati 'inostrane' internet adrese brojčano, a ne simbolično (ova opcija je namijenjena za ozbiljne oštećenja mozga na Sunovom yp serveru - obično je zauvijek preveo ne-lokalne brojeve interneta).

-F

Koristite datoteku kao ulaz za izraz filtra. Dodatni izraz dat u komandnoj liniji se zanemaruje.

-i

Slušajte na interfejsu . Ako nije specificirano, tcpdump pretražuje listu sistemskih interfejsa za najmanji brojčani, konfigurisani up interfejs (isključujući loopback). Veze se rasklapaju odabirom najranijeg meča.

Na Linux sistemima sa 2.2 ili kasnijim jezgrima, argument za interfejs "bilo koje" može se koristiti za sakupljanje paketa sa svih interfejsa. Imajte na umu da snimci na "bilo kojem" uređaju neće biti obavljeni u promiskuitetnom režimu.

-l

Napravite stdout liniju. Korisno ako želite da vidite podatke dok ga snimate. Na primjer,
`` tcpdump -l | tee dat '' ili `tcpdump -l> dat & tail -f dat ''.

-m

Učitajte definicije SMI MIB modula iz modula datoteka. Ova opcija se može koristiti nekoliko puta za učitavanje nekoliko MIB modula u tcpdump .

-n

Ne pretvarajte adrese hostova u imena. Ovo se može koristiti da bi se izbegli pregledi DNS-a.

-nn

Ne pretvarajte brojeve protokola i portova itd. U imena.

-N

Ne štampajte kvalifikacije hostova imena domena. Na primjer, ako date ovu zastavu, tcpdump će natpis "nic" umjesto "nic.ddn.mil".

-O

Ne pokrećite optimizator koda za usklađivanje paketa. Ovo je korisno samo ako sumnjate na grešku u optimizatoru.

-p

Ne stavljajte interfejs u promiskuni mod. Imajte na umu da je interfejs možda u promiskuitetnom režimu iz nekog drugog razloga; Dakle, `-p 'ne može se koristiti kao skraćenica za' ether host {local-hw-addr} ili ether broadcast '.

-q

Brzi (tihi?) Izlaz. Štampajte manje informacija o protokolu, tako da su izlazne linije kraće.

-R

Pretpostavimo da se paketi ESP / AH zasnivaju na starim specifikacijama (RFC1825 do RFC1829). Ako je specificirano, tcpdump neće štampati polje za sprečavanje reprodukcije. Pošto nema polja za verifikaciju protokola u specifikaciji ESP / AH, tcpdump ne može zaključiti verziju ESP / AH protokola.

-r

Pročitajte pakete iz datoteke (koja je kreirana sa opcijom -w). Standardni ulaz se koristi ako je datoteka `` - ''.

-S

Štampajte apsolutne, a ne relativne, brojeve TCP redosleda.

-s

Snarf pojačava bajtove podataka iz svakog paketa, a ne podrazumevano od 68 (sa SunOS-ovim NIT-om, minimum je zapravo 96). 68 bajtova je adekvatno za IP, ICMP, TCP i UDP, ali može skraćivati ​​informacije o protokolu sa servera imena i NFS paketa (pogledajte dole). Paketi skraćeni zbog ograničenog snimka prikazani su na izlazu sa `` [| proto ] '', gde je proto naziv nivoa protokola na kojem se pojavila skraćivanje. Imajte na umu da uzimanje veće snimke povećava količinu vremena potrebnog za procesiranje paketa i efikasno smanjuje količinu bafera paketa. Ovo može dovesti do gubitka paketa. Trebali biste ograničiti urezivanje na najmanji broj koji će prikupiti informacije o protokolu koji vas zanima. Podešavanje strpljenja na 0 znači koristiti potrebnu dužinu da biste uhvatili čitave pakete.

-T

Pakete sile koje je odabrao izraz " izraz " za interpretaciju navedenog tipa . Trenutno poznati tipovi su cnfp (Cisco NetFlow protokol), rpc (Remote Procedure Call), rtp (Real-Time Applications protokol), rtcp (Real-Time Application Control Protocol), snmp (Simple Network Management Protocol) ) i wb (distribuirani bijeli odbor).

-t

Nemojte odštampati vremensku oznaku na svakoj liniji otpada.

-tt

Odštampajte neformatiran vremenski znak na svakoj liniji otpada.

-U

Kapira privilegije root-a i menja korisničku identifikaciju ID korisnika i grupe primarnoj grupi korisnika .

Bilješka! Red Hat Linux automatski ispusta privilegije korisniku `` pcap '' ako ništa drugo nije specificirano.

-ttt

Štampajte delta (u mikro-sekundama) između trenutne i prethodne linije na svakoj liniji otpada.

-tttt

Odštampajte vremenski žig u podrazumevanom formatu nastavljen po datumu na svakoj liniji otpada.

-u

Štampati nedodirljive NFS ručke.

-v

(Malo više) glomazan izlaz. Na primer, odštampano je vrijeme za život, identifikaciju, ukupnu dužinu i opcije u IP paketu. Takođe omogućava dodatne provjere integriteta paketa, kao što je provjera IP i ICMP header checksum-a.

-vv

Još više glomazan izlaz. Na primer, dodatna polja se štampaju iz NFS paketa za odgovor, a SMB paketi su potpuno dekodirani.

-vvv

Još više glomazan izlaz. Na primer, telnet SB ... SE opcije se štampaju u potpunosti. Uz opcije -X telnet opcije se štampaju iu hexu.

-w

Napišite sirove pakete u datoteku, a ne na parse i ispisujte ih. Kasnije se mogu štampati sa opcijom -r. Standardni izlaz se koristi ako je datoteka `` - ''.

-x

Štampajte svaki paket (minus njegovu liniju za zaglavlje veze) u hex. Odštampaće se manji od celog paketa ili pojačanih bajtova. Imajte na umu da je ovo cijeli paket paketa linka, tako da se za slojeve veze koji pad (npr. Ethernet) piše i bajtovi za padanje kada je paket višeg sloja kraći od potrebnog padanja.

-X

Kada štampate hex, ispisujte ascii takođe. Tako ako je i -x podešen, paket se štampa u hex / ascii. Ovo je veoma korisno za analizu novih protokola. Čak i ako -x nije podešen, neki dijelovi nekih paketa mogu se odštampati u hex / ascii.

izraz

bira koji paketi će biti odbačeni. Ako se ne daju izrazi , svi paketi na mreži će biti odbačeni. U suprotnom, samo paketi za koje je izraz "istina" biće odbačeni.

Izraz se sastoji od jednog ili više primitiva. Primitivi se obično sastoje od id-a (imena ili broja) prethodi jedan ili više kvalifikatora. Postoje tri različite vrste kvalifikatora:

tip

kvalifikatori kažu na koju vrstu stvari se odnosi ime id ili broj. Moguće vrste su host , mreža i port . Na primjer, `host foo ',` net 128.3', `port 20 '. Ako ne postoji kvalifikator tipa, pretpostavlja se host .

dir

kvalifikatori navode određeni pravac prenosa na i / ili od id . Moguća uputstva su src , dst , src ili dst i src i dst . Na primjer, `src foo ',` dst net 128.3', `src ili dst port ftp-data '. Ako nema kvalifikatora za dir, pretpostavlja se src ili dst . Za slojeve nultog sloja veze (tj. Protokole od točke do tačke kao što je klizanje), dolazni i odlazni kvalifikatori se mogu koristiti za određivanje željenog pravca.

proto

kvalifikatori ograničavaju utakmicu na određeni protokol. Mogući protokovi su: ether , fddi , tr , ip , ip6 , arp , rarp , decnet , tcp i udp . Na primer, `ether src foo ',` arp net 128.3', `tcp port 21 '. Ako nema protok kvalifikatora, pretpostavlja se da su svi protokoli u skladu sa tipom. Na primjer, `src foo 'znači` (ip ili arp ili rarp) src foo' (izuzev što poslednje nije pravna sintaksa), `net bar 'označava` (ip ili arp ili rarp) net bar' i 'port 53' znači `(tcp ili udp) port 53 '.

[`fddi 'je zapravo pseudonim za' eter '; parser ih tretira identično na značenje "nivo veze podataka koji se koristi na određenom mrežnom interfejsu." FDDI zaglavlja sadrže Ethernet-ove izvorne i odredišne ​​adrese, a često sadrže eternet-tipove paketa, tako da možete filtrirati na ova polja FDDI baš kao kod analognih Ethernet polja. FDDI zaglavlja sadrže i druga polja, ali ih ne možete eksplicitno nazvati u izrazu filtera.

Slično tome, `tr 'je alias za' ether '; Izjave iz prethodnog paragrafa o FDDI zaglavljima primjenjuju se i na zaglavlje Token Ring.]

Pored gore navedenog, postoje i neke posebne "primitivne" ključne reči koje ne slijede šablon: gateway , broadcast , manje , veće i aritmetičke izraze. Sve su opisane u nastavku.

Složenijiji izrazi filtera se izgrađuju korišćenjem reči i , ili ne i kombinovanja primitiva. Npr. `Host foo, a ne port ftp, a ne port ftp-podaci '. Da bi sačuvali tipkanje, identične liste kvalifikatora se mogu izostaviti. Na primjer, `tcp dst port ftp ili ftp-data ili domen 'je potpuno isti kao` tcp dst port ftp ili tcp dst port ftp-data ili tcp dst port domain'.

Dozvoljeni primitivi su:

dst host host

Istina ako je polje za odredište IPv4 / v6 paketa host , što može biti adresa ili ime.

src host host

Istina ako je IPv4 / v6 izvorno polje paketa host .

host domaćin

Istina ako je ili izvor IPv4 / v6 ili odredište paketa host . Bilo koji od gore navedenih izraza domaćina može se prepuniti ključnim rečima, ip , arp , rarp ili ip6 kao u:

ip host host

što je ekvivalentno:

eter proto \ ip i host host

Ako je host ime sa više IP adresa, svaka adresa će biti proverena za utakmicu.

ether dst ehost

Istina je ako je adresa ethernet destinacije ehost . Ehost može biti ili ime iz / etc / eters ili broja (vidi eters (3N) za numerički format).

ether src ehost

Istina ako je adresa e-pošte izvor ehost .

eter host ehost

Istina ako je izvor e-pošte ili ciljna adresa ehost .

host gateway

Istina ako je paket koristio host kao gateway. Naime, izvor ethernet ili odredišna adresa bila je host, ali nijedan IP izvor niti odredište za IP nisu bili domaćini . Domaćin mora biti ime i mora se naći i pomoću mehanizama za rezoluciju host-ime-prema-IP adresi (ime datoteke hosta, DNS, NIS, itd.) I rezolucijom host-name-to-Ethernet adrese mehanizam (/ etc / ethers, itd.). (Ekvivalentni izraz je

eter host ehost i ne host host

koji se može koristiti sa imenima ili brojevima za host / ehost .) Ova sintaksa ne radi u konfiguraciji omogućenom IPv6 u ovom trenutku.

dst neto mreža

Istina ako IPv4 / v6 odredišna adresa paketa ima mrežni broj mreže . Net može biti ili ime iz / etc / mreža ili mrežnog broja (za više detalja pogledajte mreže (4) ).

src neto mreža

Istina ako IPv4 / v6 izvorna adresa paketa ima mrežni broj mreže .

neto mreza

Istina ako je izvorni IPv4 / v6 ili odredišna adresa paketa mrežni broj mreže .

net maska ​​maska ​​za masu

Istina ako se IP adresa poklapa sa mrežom sa određenom mrežnom maskom . Može biti kvalifikovan sa src ili dst . Imajte na umu da ova sintaksa nije važeća za IPv6 mrežu .

neto neto / len

Istina ako se IPv4 / v6 adresa poklapa sa mrežom sa širinom bita za mrežnu masku. Može biti kvalifikovan sa src ili dst .

dst port port

Istina ako je paket ip / tcp, ip / udp, ip6 / tcp ili ip6 / udp i ima vrijednost port porta . Luka može biti broj ili ime koje se koristi u / etc / uslugama (pogledajte tcp (4P) i udp (4P)). Ako se koristi ime, proverite broj porta i protokol. Ako se koristi broj ili dvosmisleno ime, samo je broj porta označen (npr. Dst port 513 će štampati i tcp / login i udp / koji će saobraćati, a domen porta će štampati oba tcp / domain i udp / domen prometa).

src port port

Istina ako paket ima vrijednost izvora porta porta .

port port

Istina ako je izvorni ili odredišni port paketa port . Svaki od gore navedenih izraza porta može se preporučiti ključnim riječi, tcp ili udp , kao u:

tcp src port port

koji odgovara samo tcp paketima čiji izvorni port je port .

manje dužine

Istina ako paket ima dužinu manju od ili jednaku dužini . Ovo je ekvivalentno:

len <= dužina .

veća dužina

Istina ako paket ima dužinu veću od ili jednaku dužini . Ovo je ekvivalentno:

len> = dužina .

ip proto protokol

Istina ako je paket IP paket (pogledajte ip (4P)) protokola tipa protokola . 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 takođe ključne riječi i moraju biti izbjegnuti preko backslash-a (\), koji je \\ u C-shell-u. Imajte na umu da ovaj primitivan ne lovi lanac zaglavlja protokola.

protokol protokola ip6

Istina ako je paket IPv6 paket protokola tipa protokola . Imajte na umu da ovaj primitivan ne lovi lanac zaglavlja protokola.

protochain protokol ip6

Istina ako je paket IPv6 paket i sadrži zaglavlje protokola sa protokolom tipa u svom lancu zaglavlja protokola. Na primjer,

ip6 protochain 6

odgovara bilo kojem IPv6 paketu sa TCP protokolom zaglavlja u lancu zaglavlja protokola. Paket može sadržati, na primjer, zaglavlje autentičnosti, zaglavlje rutiranja ili zaglavlje opcije "hop-by-hop", između IPv6 zaglavlja i TCP zaglavlja. BPF kod koji emitira ovaj primitiv je složen i ne može se optimizirati pomoću BPF optimizacijskog koda u tcpdump-u , tako da ovo može biti nešto sporo.

ip protochain protokol

Ekvivalentan protokolu protochain ip6 , ali ovo je za IPv4.

eter emituje

Istina ako je paket etarski prenosni paket. Ključna reč eter je neobavezna.

ip emituje

Istina ako je paket IP-paketni paket. Ona proverava i konvencije o svim nulama i svim onima koje emituju, i pregleda lokalnu masku podmreže.

eter multicast

Istina ako je paket ethernet multicast paket. Ključna reč eter je neobavezna. Ovo je skraćenica za ` ether [0] & 1! = 0 '.

ip multicast

Istina ako je paket IP multicast paket.

ip6 multicast

Istina ako je paket IPv6 multicast paket.

ether proto protokol

Istina ako je paket eter tip protokola . Protokol može biti broj ili jedno od imena ip , ip6 , arp , rarp , atalk , aarp , decnet , sca , lat , mopdl , moprc , iso , stp , ipx ili netbeui . Obratite pažnju na to da su ti identifikatori takođe ključne riječi i moraju se izbjeći pomoću pošiljaka (\).

[U slučaju FDDI (npr. " Ard fddi protocol arp ") i Token Ring (npr., Tr protocol arp ), za većinu tih protokola, identifikacija protokola dolazi iz header-a za logičku vezu (LLC) 802.2, koja obično je slojevit na vrhu FDDI ili Token Ring zaglavlja.

Kada se filtrira za većinu identifikatora protokola na FDDI ili Token Ring, tcpdump proverava samo polje identifikacije protokola LLC zaglavlja u tzv. SNAP formatu sa Identifikatorom Organizacione Jedinice (OUI) od 0x000000, za inkapsulirani Ethernet; ne proverava da li je paket u SNAP formatu sa OUI od 0x000000.

Izuzeci su iso , za koji provjerava polja DSAP (Destination Service Access Point) i SSAP (Source Service Access Point) polja LLC zaglavlja, stp i netbeui , gdje provjerava DSAP naslova LLC i atalk , gdje je provjerava paket paketa SNAP sa OUI od 0x080007 i Appletalk etype.

U slučaju Ethernet-a, tcpdump proverava polje Ethernet tipa za većinu tih protokola; izuzeci su iso , sap i netbeui , za koje provjerava okvir 802.3, a zatim provjerava LLC zaglavlje kao i za FDDI i Token Ring, atalk , gdje provjerava kako za Appletalk etype u Ethernet okviru, tako i za Paket SNAP-formata kao i za FDDI i Token Ring, aarp , gde provjerava Appletalk ARP etype ili u Ethernet okviru ili 802.2 SNAP okviri sa OUI od 0x000000, i ipx , gdje provjerava IPX etype u Ethernet ram, IPX DSAP u LLC zaglavlju, 802.3 bez enkapsulacije IP headera IPX i IPX etape u SNAP okvirima.]

decnet src host

Istina ako je izvorna adresa DECNET hosta , koja može biti adresa formulara `` 10.123 '' ili ime hosta DECNET. [Podrška za DECNET host ime je dostupna samo na Ultrix sistemima koji su konfigurisani da pokreću DECNET.]

decnet dst host

Istina ako je odredišna adresa DECNET hosta .

domaćin host domaćina

Istina ako je izvor izvorne ili DECNNET adrese domaćin .

ip , ip6 , arp , rarp , atalk , aarp , decnet , iso , stp , ipx , netbeui

Skraćenice za:

ether proto p

gde je p jedan od gore navedenih protokola.

lat , moprc , mopdl

Skraćenice za:

ether proto p

gde je p jedan od gore navedenih protokola. Imajte na umu da tcpdump trenutno ne zna kako da razmatra ove protokole.

vlan [vlan_id]

Istina ako je paket IEEE 802.1Q VLAN paket. Ako je [vlan_id] specificirano, jedino tačno je da paket ima specificiranu vlan_id . Imajte na umu da je prva ključna riječ vlanova koja se sreće u izrazu mijenja offsetove za dekodiranje za ostatak izraza pod pretpostavkom da je paket VLAN paket.

tcp , udp , icmp

Skraćenice za:

ip proto p ili ip6 proto p

gde je p jedan od gore navedenih protokola.

iso proto protokol

Istina ako je paket OSI paket protokola tipa protokola . Protokol može biti broj ili jedno od imena clnp , esis ili isis .

clnp , esis , isis

Skraćenice za:

iso proto p

gde je p jedan od gore navedenih protokola. Imajte na umu da tcpdump čini nekompletan posao razdvajanja ovih protokola.

expr relop expr

Istina ako je veza relacija, gde je relop jedan od>, <,> =, <=, = ,! =, I expr je aritmetička ekspresija sastavljena od integralnih konstanti (izraženih u standardnoj sintaksi C), normalni binarni operatori [+ , -, *, /, &, |], operatora dužine i posebnih pristupnih paketa podataka. Da biste pristupili podacima unutar paketa, koristite sljedeću sintaksu:

proto [ expr : veličina ]

Proto je jedan od etera, fddi, tr, ppp, slip, link, ip, arp, rarp, tcp, udp, icmp ili ip6 i označava sloj protokola za indeksnu operaciju. ( ether, fddi, tr, ppp, slip i link svi se odnose na sloj veze.) Imajte na umu da se tcp, udp i drugi tipovi protokola gornjeg nivoa odnose samo na IPv4, a ne na IPv6 (to će biti popravljeno u budućnosti). Izravnavanje bajtova, u odnosu na naznačeni sloj protokola, data je izričito . Veličina je opcionalna i označava broj bajtova u polju interesa; to može biti jedan, dva ili četiri, a podrazumevano je jedno. Operator dužine, označen ključem len , daje dužinu paketa.

Na primer, ` ether [0] & 1! = 0 'uhvati sve multicast saobraćaj. Izraz ` ip [0] & 0xf! = 5 'uhvati sve IP pakete sa opcijama. Izraz ` ip [6: 2] & 0x1fff = 0 'uhvati samo nefragmentirane datagrame i frag nula fragmentiranih datagrama. Ova provjera se implicitno primjenjuje na operacije tcp i udp indeksa. Na primjer, tcp [0] uvijek znači prvi bajt TCP zaglavlja i nikada ne znači prvi bajt interventnog fragmenta.

Neke smetnje i vrednosti polja mogu se izraziti kao imena a ne kao numeričke vrednosti. Na raspolaganju su slijedeća odstupanja polja zaglavlja protokola: icmptype (polje ICMP tipa), icmpcode (polje ICMP koda) i tcpflags (polje TCP zastave).

Na raspolaganju su sljedeće vrijednosti ICMP tipa polja: icmp-echoreply , icmp-unreach , icmp-sourcequench , icmp-redirect , icmp-echo , icmp-routeradvert , icmp-routersolicit , icmp-timxceed , icmp-paramprob , icmp-tstamp , icmp -tstampreply , icmp-ireq , icmp-ireqreply , icmp-maskreq , icmp-maskreply .

Na raspolaganju su sledeće vrednosti polja TCP zastavice: tcp-fin , tcp-syn , tcp-rst , tcp-push , tcp-push , tcp-ack , tcp-urg .

Primitivi se mogu kombinovati koristeći:

Zatvorena grupa primitiva i operatora (zagrade su posebne za Shell i moraju biti izbačene).

Negacija (` ! 'Ili` ne ').

Koncenacija (` && 'ili` i ').

Alternacija (` || 'ili` ili ').

Negacija ima najviši prioritet. Alternacija i koncenatacija imaju jednak prioritet i pridružio se levo na desno. Imajte na umu da su eksplicitne i tokene, a ne jukstapozicije, sada potrebne za koncenataciju.

Ako je identifikator dat bez ključne reči, pretpostavlja se najnovija ključna reč. Na primjer,

ne domaćin vs i ace

je kratak za

ne domaćin i domaćin ace

sa čime se ne treba mešati

ne (host vs ili ace)

Argumenti ekspresije mogu se prenijeti na tcpdump kao pojedinačni argument ili kao višestruke argumente, u zavisnosti od toga koji je pogodniji. Uopšteno govoreći, ako izraz sadrži Shell metacharacters, to je lakše prenijeti kao pojedinačni citirani argument. Višestruki argumenti su povezani sa razmacima pre nego što budu razrađeni.

PRIMERI

Da biste odštampali sve pakete koji dolaze ili izlaze iz zalaska sunca :

tcpdump host sundown

Da biste odštampali saobraćaj između helija i bilo vruće ili asa :

tcpdump host helios i \ (hot ili ace \)

Da biste odštampali sve IP pakete između asa i bilo kojeg hosta osim helija :

tcpdump ip host ace a ne helios

Da biste odštampali sav saobraćaj između lokalnih domaćina i domaćina u Berkeley-u:

tcpdump net ucb-ether

Da biste ispisali sve ftp saobraćaja preko internet gateway-a: (obratite pažnju na to da je izraz citiran kako bi se sprečilo da se shell (neispravno) tumači zagrade):

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

Da biste odštampali saobraćaj koji nije izvor niti je bio namenjen lokalnim domaćinima (ako se nalazite na drugu mrežu, ove stvari nikada ne bi trebalo da stignu na vašu lokalnu mrežu).

tcpdump ip a ne mrežni lokal

Za štampanje početnih i krajnjih paketa (SYN i FIN paketa) svakog TCP razgovora koji uključuje ne-lokalni host.

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

Štampanje IP paketa dužih od 576 bajtova poslatih kroz mrežni prolaz:

tcpdump 'gateway snup i ip [2: 2]> 576'

Za štampanje IP ili multicast paketa koji nisu poslati putem ethernet emitovanja ili multicast:

tcpdump 'ether [0] & 1 = 0 i ip [16]> = 224'

Da biste odštampali sve ICMP pakete koji nisu eho zahtjevi / odgovori (npr. Ne ping paketi):

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

IZLAZNI FORMAT

Izlaz tcpdump- a zavisi od protokola. Slijedi kratak opis i primjeri većine formata.

Link Level Headers

Ako je data "-e" opcija, header level link se odštampa. Na ethernetovima se štampaju izvorna i odredišna adresa, protokol i dužina paketa.

U FDDI mrežama, opcija '-e' uzrokuje tcpdump da odštampa polje 'frame control', izvornu i odredišnu adresu i dužinu paketa. Normalni paketi (poput onih koji sadrže IP datagrame) su paketi sa " async ", sa prioritetnom vrijednošću između 0 i 7, na primjer, " async4 ". pretpostavlja se da paketi sadrže paket 802.2 Logical Link Control (LLC), LLC header se štampa ako nije datagram ISO ili takozvani SNAP paket.

Na mrežama Token Ring, opcija '-e' uzrokuje tcpdump da odštampa polja kontrole pristupa i polja kontrole, izvorne i odredišne ​​adrese i dužinu paketa. Kao na FDDI mrežama, pretpostavlja se da paketi sadrže LLC paket. Bez obzira da li je opcija "-e" naznačena ili ne, izvorne informacije o usmeravanju se štampaju za izvorno usmerene pakete.

(Napomena: Sledeći opis pretpostavlja poznavanje SLIP kompresijskog algoritma opisanog u RFC-1144.)

Na SLIP linkovima se štampa indikator pravca ("I" za ulaz, "O" za odlazne), tip paketa i informacije o kompresiji. Vrsta paketa se prvo štampa. Tri tipa su ip , utcp i ctcp . Nisu odštampane dodatne informacije vezane za IP pakete. Za TCP pakete, identifikator veze se štampa sledeći tip. Ako je paket komprimovan, njegovo kodirano zaglavlje se odštampa. Posebni slučajevi se štampaju kao * S + n i * SA + n , gde je n količina kojom se promjenjuje redni broj (ili redni broj i ack). Ako to nije poseban slučaj, štampaće se nula ili više promjena. Promjenu označava U (hitni pokazivač), W (prozor), A (ack), S (broj sekvence) i I (ID paketa), zatim delta (+ n ili -n) ili nova vrijednost (= n). Na kraju, štampa se količina podataka u paketu i dužini komprimovanog glava.

Na primjer, u sljedećoj liniji je prikazan TCP paket odlaznog komprimiranja sa implicitnim identifikacijom veze; ack se promenio za 6, broj sekvence za 49, a ID paketa za 6; postoje 3 bajta podataka i 6 bajtova komprimovanog zaglavlja:

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

ARP / RARP paketi

Arp / rarp izlaz prikazuje vrstu zahteva i njegove argumente. Format je namijenjen da bude samopomoćan. Evo kratkog uzorka uzetog od početka `rlogin` od host rtsg do hosta csam :

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

Prva linija kaže da je rtsg poslao arp paket koji traži ethernet adresu internet csam-a. Csam odgovara svojom eternet adresom (u ovom primeru, ethernet adrese su u kape i internet adrese u malom slučaju).

Ovo bi izgledalo manje redundantno ako smo uradili tcpdump -n :

arp koji ima 128.3.254.6 kaže 128.3.254.68 arp odgovor 128.3.254.6 je-u 02: 07: 01: 00: 01: c4

Da smo uradili tcpdump-e , činjenica da se prvi paket emituje, a drugi je tačka-do-tačka bi bila vidljiva:

RTSG Broadcast 0806 64: arp koji ima csam reči rtsg CSAM RTSG 0806 64: arp odgovor csam je-na CSAM

Za prvi paket u kome se navodi da je izvorni izvor elektronske pošte RTSG, destinacija je ethernet broadcast adresa, polje tipa je sadržano hex 0806 (tip ETHER_ARP), a ukupna dužina je 64 bajta.

TCP paketi

(Napomena: Sledeći opis podrazumeva poznavanje TCP protokola opisanog u RFC-793. Ako niste upoznati sa protokolom, ni ovaj opis niti tcpdump vam neće biti od velike koristi.)

Opšti format tcp linije protokola je:

src> dst: zastava data-seqno ack prozor hitne opcije

Src i dst su izvorne i odredišne ​​IP adrese i portovi. Zastave su neke kombinacije S (SYN), F (FIN), P (PUSH) ili R (RST) ili jedne `. ' (bez zastavica). Data-seqno opisuje deo prostora sekvence pokrivenih podacima u ovom paketu (pogledajte primer ispod). Ack je sekvenca broj sledećih podataka koji očekuju drugi pravac na ovoj vezi. Prozor je broj bajtova prijemnog pufera koji je dostupan u drugom pravcu na ovoj vezi. Urg ukazuje da u paketu postoje "hitni" podaci. Opcije su tcp opcije koje se nalaze u uglovnim zagradama (npr. ).

Src, dst i zastave su uvijek prisutni. Ostala polja zavise od sadržaja zaglavlja TCP protokola paketa i izlaze se samo ako je to potrebno.

Evo početnog dela rlogina od host rtsg do hosta csam .

rtsg.1023> csam.login: S 768512: 768512 (0) win 4096 csam.login> rtsg.1023: S 947648: 947648 (0) ack 768513 win 4096 rtsg.1023> csam. Ulogovati se: . ack 1 win 4096 rtsg.1023> csam.login: P 1: 2 (1) ack 1 win 4096 csam.login> rtsg.1023:. ack 2 win 4096 rtsg.1023> csam.login: P 2:21 (19) ack 1 win 4096 csam.login> rtsg.1023: P 1: 2 (1) ack 21 win 4077 csam.login> rtsg.1023: P 2: 3 (1) ack 21 pobeda 4077 urg 1 csam.login> rtsg.1023: P 3: 4 (1) ack 21 win 4077 urg 1

Prva linija kaže da je tcp port 1023 na rtsg poslao paket za prijavljivanje portova na csam. S označava da je postavljena SYN zastavica. Broj redosleda paketa bio je 768512 i nije sadržavao podatke. (Oznaka je `prva: posljednja (nbytes) 'što znači' brojevi sekvence najčešće do, ali ne uključujući i poslednje što je nbytes bajtova korisničkih podataka '.) Nije bilo prave piggy-aka, dostupni prozor za prijem je bio 4096 bajtova i postoji opcija veličine max-segment-a koja zahteva mss-u od 1024 bajtova.

Csam odgovara sa sličnim paketom, osim što uključuje prašinu sa podrškom za rtsg SYN. Rtsg tada dobija csam SYN. The `. ' znači da nisu postavljene zastavice. Paket nije sadržao podatke, tako da ne postoji broj redosleda podataka. Imajte na umu da je broj sekvence aq mali broj (1). Prvi put kada tcpdump vidi tcp `conversation`, on odštampava broj sekvence iz paketa. Na narednim paketima razgovora, odštampa se razlika između rednog broja tekućeg paketa i ovog početnog broja. To znači da se brojevi redosleda nakon prvog mogu tumačiti kao relativne bajtove pozicije u toku podataka konverzacije (sa prvim bajtom podataka svaki smer je `1 '). `-S 'će prevazići ovu funkciju, uzrokujući da se originalni brojevi izlaze.

Na 6. redosledu, rtsg šalje csam 19 bajtova podataka (bajtova 2 do 20 u rtsg -> csam strani razgovora). Zastava PUSH je postavljena u paket. Na sedmoj liniji, csam kaže da su primljeni podaci poslani od rtsg do, ali ne uključujući bajt 21. Većina ovih podataka očito sedi u baferu sokova, pošto je prozor za prijem csam-a dobio manje od 19 bajtova. Csam takođe šalje jedan bajt podataka u rtsg u ovom paketu. Na 8. i 9. redosledu, csam šalje dva bita hitnih, gurne podatke u rtsg.

Ako je snimak bio dovoljno mali da tcpdump nije snimio pun TCP zaglavlje, on tumači što više zaglavlja, a zatim izveštava `` [| tcp ] '' da bi se naznačio da se ostatak ne može tumačiti. Ako zaglavlje sadrži lažnu opciju (jedna sa dužinom koja je ili premala ili iznad kraja zaglavlja), tcpdump izveštava kao `` [ loše optirati ] '' i ne interpretira dalje opcije (pošto je nemoguće reći gde počinju). Ako dužina zaglavlja ukazuje na opcije su prisutne, ali dužina IP adrese nije dovoljno duga da bi opcije bile zapravo tamo, tcpdump će to prijaviti kao `` [ lošu hdr dužinu ] ''.

Hvatanje TCP paketa sa određenim kombinacijama zastavica (SYN-ACK, URG-ACK, itd.)

Postoji 8 bita u odeljku kontrolnih bita TCP zaglavlja:

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

Pretpostavimo da želimo gledati pakete koji se koriste za uspostavljanje TCP veze. Podsjetimo da TCP koristi trosistemski protokol rukovanja kada inicijalizuje novu vezu; sekvenca veze u odnosu na kontrolne bitove TCP je

1) Pozivaoca šalje SYN

2) Primalac odgovara sa SYN, ACK

3) Pozivaoca šalje ACK

Sada smo zainteresovani za snimanje paketa koji imaju samo SYN bit set (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 tačan filter izraz za tcpdump .

Pozovite strukturu TCP zaglavlja bez opcija:

0 15 31 ----------------------------------------------- ------------------ | izvorni port | destinacijska luka | -------------------------------------------------- --------------- | broj sekvence | -------------------------------------------------- --------------- | broj potvrde | -------------------------------------------------- --------------- | HL | rsvd | C | E | U | A | P | R | S | F | veličina prozora | -------------------------------------------------- --------------- | TCP checksum | hitni pokazivač | -------------------------------------------------- ---------------

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

Počevši od broja 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 | | |

Hajde da pogledamo oktet br. 13:

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

Ovo su TCP kontrolni bitovi za koje smo zainteresovani. Mi smo brojevali bitove u ovom oktetu od 0 do 7, desno na levo, pa je PSH bit bit 3, dok je URG bit broj 5.

Podsjetimo da želimo zarobiti pakete samo sa SYN setom. Hajde da vidimo šta se dešava sa oktetom 13 ako TCP datagram stigne sa SYN bitom postavljenim u njegovom 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 |

U pogledu sekcije kontrolne bita vidimo da je postavljen samo bitni broj 1 (SYN).

Pod pretpostavkom da je oktet broj 13 8-bitni nepotpisani integer u porudžbini po bajtovima, binarna vrednost ovog okteta je

00000010

i njegovo decimalno predstavljanje je

7 6 5 4 3 2 1 0 0 * 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 postavljen samo SYN, vrijednost 13. okteta u TCP zaglavlju, kada se tumači kao 8-bitni nepotpisani cijeli broj u bajtnom redosledu mreže, mora biti tačno 2.

Ovaj odnos se može izraziti kao

tcp [13] == 2

Ovaj izraz možemo koristiti kao filter za tcpdump da bi gledali pakete koji imaju samo SYN set:

tcpdump -i xl0 tcp [13] == 2

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

Sada, pretpostavimo da trebamo zauzimati SYN pakete, ali nam nije briga da li je ACK ili neki drugi TCP kontrolni bit postavljen istovremeno. Da vidimo šta se događa sa oktetom 13 kada dolazi TCP datagram sa 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 |

Sada su bitovi 1 i 4 postavljeni u 13. oktet. Binarna vrednost okteta 13 je


00010010

što prevede na decimalno

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

Sada ne možemo samo koristiti tcp [13] == 18 u izrazu tcpdump filter, jer bi to odabrao samo one pakete koji imaju SYN-ACK skup, ali ne i one sa samo SYN setom. Zapamtite da nam nije briga da li je ACK ili bilo koji drugi kontrolni bit podešen sve dok je SYN podešen.

Da bismo postigli svoj cilj, moramo logično i binarnu vrijednost okteta 13 s nekim drugim vrijednostima za očuvanje SYN bita. Mi znamo da želimo da SYN bude postavljen u svakom slučaju, tako da ćemo logički I vrednost u 13. oktetu sa binarnom vrijednošću SYN-a:

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

Vidimo da ova operacija AND daje isti rezultat bez obzira da li je postavljen ACK ili drugi TCP kontrolni bit. Decimalna reprezentacija vrednosti AND kao i rezultat ove operacije je 2 (binarna 00000010), tako da znamo da za pakete sa SYN postavljenom sljedeći odnos mora biti istinit:

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

Ovo nas upućuje na izraz tcpdump filter

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

Imajte na umu da u izrazu koristite pojedinačne citate ili kosu sa skazom da biste sakrili i (i &) posebni znak iz ljuske.

UDP paketi

UDP format je ilustrovan ovim paketom rwho:

actinide.who> broadcast.who: udp 84

Ovo navodi da je luka koja je na domaćem aktinidu poslala udp datagram da prijavi ko je na domaćinima emitovanje , Internet broadcast address. Paket sadrži 84 bajta korisničkih podataka.

Neke UDP usluge su prepoznate (od izvornog ili odredišnog porta) i odštampane informacije o protokolu višeg nivoa. Konkretno, zahtjevi za servisom Domain Name (RFC-1034/1035) i Sun RPC pozivi (RFC-1050) za NFS.

Zahtevi UDP Ime Servera

(Napomena: Sledeći opis podrazumeva upoznavanje sa protokolom Domain Service opisanom u RFC-1035. Ako niste upoznati sa protokolom, izgledaće se da će sljedeći opis biti napisan u grčkom jeziku.)

Zahtevi servera za ime su formatirani kao

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

Host h2opolo je tražio server domena na heliosu za adresni zapis (qtype = A) povezan sa imenom ucbvax.berkeley.edu. ID upita je bio `3 '. `+ 'Označava željenu zastavu rekurzije . Dužina upita bila je 37 bajtova, ne uključujući UDP i IP protokol zaglavlja. Operacija upita je bila normalna, Query , pa je op polje ispušteno. Ako je op bilo šta drugo, biće ispisano između `3 'i` +'. Slično tome, qclass je bio normalan, C_IN i izostavljen. Svaki drugi qclass bi se štampao odmah nakon 'A'.

Nekoliko anomalija se proverava i može dovesti do dodatnih polja zatvorenih u uglastim zagradama: Ako upit sadrži odgovor, zapisnik o autoritetu ili dodatni deo zapisa, ancount , nscount ili arcount se štampaju kao "[ n a]", "[ n n ] 'ili `[ n au]' gdje je n odgovarajuće brojanje. Ako su neki bitovi odgovora postavljeni (AA, RA ili rcode) ili bilo koji od "mora biti nula" bitovi su postavljeni u bajta dva i tri, "[b2 & 3 = x ]" je odštampan, gdje je x hex vrijednost header dva i tri bajta.

UDP Name Server Responses

Odgovori servera za ime su formatirani kao

src> dst: id op rcode zastave a / n / au tip podataka klase (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 primeru, helios odgovara na upitni broj 3 iz h2opolo-a sa 3 zapisa odgovora, 3 imena servera i 7 dodatnih zapisa. Prvi odgovor je tip A (adresa), a njeni podaci su internet adresa 128.32.137.3. Ukupna veličina odgovora bila je 273 bajta, isključujući UDP i IP zaglavlja. Op (upit) i odgovorni odgovor (NoError) su izostavljeni, kao i klasa (C_IN) zapisa A.

U drugom primeru, helios odgovara na upit 2 sa kodom odgovora nepostojećeg domena (NXDomain) bez odgovora, jednog servera imena i bez autorskih zapisa. `* 'Označava da je autoritetni bit odgovora postavljen. Pošto nije bilo odgovora, nijedan tip, klasa ili podaci nisu odštampani.

Drugi znakovi znakova koji se mogu pojaviti su `- '(rekurzija dostupna, RA, nije postavljena) i` |' (skraćena poruka, TC, set). Ako odeljak "pitanje" ne sadrži tačno jedan unos, odštampa se "[ n q]".

Imajte na umu da su zahtevi za ime servera i odgovori ponajviše veliki, a podrazumevana strpljivost od 68 bajtova možda ne može dovoljno da pakuje paket za štampanje. Koristite oznaku -s da biste povećali snagu ako želite da ozbiljno ispitate saobraćaj imena servera. ` -s 128 'dobro radi za mene.

SMB / CIFS dekodiranje

tcpdump sada uključuje prilično obimno SMB / CIFS / NBT dekodiranje za podatke o UDP / 137, UDP / 138 i TCP / 139. Takođe je izvršeno i neko primitivno dekodiranje IPX i NetBEUI SMB podataka.

Podrazumevano je izvršena prilično minimalna dekodiranja, sa mnogo detaljnijim dešifrovanjem ako se koristi -v. Budite upozoreni da - sa jednim SMB paketom možete preuzeti stranicu ili više, tako da samo koristite -v ako zaista želite sve detalje o krvi.

Ako dekodirate SMB sesije koje sadrže unicode stringove, možda ćete želeti da postavite varijablu okruženja USE_UNICODE na 1. Jedno pakiranje za automatsko otkrivanje unicode žica bi bilo dobrodošlo.

Za informacije o formatima SMB paketa io tome šta sve te oblasti znače vidi www.cifs.org ili pub / samba / specs / direktorij na vašoj omiljenoj lokaciji samba.org. SMB zakrpe napisao je Andrew Tridgell (tridge@samba.org).

Zahtjevi i odgovori NFS-a

Sun NFS (Network File System) zahtjevi i odgovori se štampaju kao:

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

U prvoj liniji, host sushi šalje transakciju sa ID-om 6709 do wrl (obratite pažnju da je broj koji prati src host id ID transakcije, a ne izvorni port). Zahtev je bio 112 bajtova, isključujući UDP i IP zaglavlja. Operacija je bila readlink (čitaj simboličku vezu) na dršci datoteke ( fh ) 21,24 / 10,731657119. (Ako je jedan srećan, kao u ovom slučaju, drška datoteke može se tumačiti kao glavni, manji broj uređaja, praćeno brojem inoda i generacijskog broja.) Wrl odgovara "ok" sa sadržajem veze.

U trećoj liniji, sushi traži Wrl da potraži ime ` xcolors` u direktorijumu 9,74 / 4096,6878. Imajte na umu da štampani podaci zavise od tipa operacije. Format je namenjen da bude samopomoćan ako se pročita u vezi sa specifikacijom protokola NFS.

Ako je dat znak -v (verbose), dodatne informacije se štampaju. Na primjer:

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

(-v takođe štampa polja TTL, ID, dužinu i fragmentaciju IP naslova , koji su izostavljeni iz ovog primera.) U prvoj liniji, suši pita Wrl da pročita 8192 bajta iz datoteke 21,11 / 12,195, na bajtovom offsetu 24576. Wrl odgovara 'ok'; paket koji je prikazan na drugoj liniji je prvi fragment odgovora i stoga je dugačak samo 1472 bajta (ostali bajti će se pratiti u narednim fragmentima, ali ovi fragmenti nemaju NFS ili čak UDP zaglavlja i zato se možda neće štampati, u zavisnosti od korišćenog izraza filtera). Pošto se daje znak -v, unose se neki od atributa datoteke (koji se vraćaju pored podataka o fajlu): tip datoteke ("REG", za redovnu datoteku), režim datoteke (u oktalnom), uid i gid, i veličina datoteke.

Ako je oznaka -v dati više od jednom, štampaće se još detalja.

Imajte na umu da su zahtevi NFS-a veoma veliki, a veliki deo detalja neće biti odštampan, osim ako se povećanje snaže . Pokušajte da koristite ` -s 192 'da biste gledali NFS saobraćaj.

Paketi odgovora NFS-a ne eksplicitno identifikuju RPC operaciju. Umjesto toga, tcpdump prati "najnovije" zahtjeve i odgovara ih odgovorima pomoću ID transakcije. Ako odgovor ne prati odgovarajući zahtev, to možda neće biti parser.

Zahtjevi i odgovori AFS-a

Transarc AFS (Andrew File System) zahtjevi i odgovori se štampaju kao:

src.sport> dst.dport: rx paketni tip src.sport> dst.dport: rx paketni tip servisa pozvati poziv-naziv args src.sport> dst.dport: rx ime paketa tipa odgovora call-name argvis elvis. 7001> pike.afsfs: rx data fs preimenovati stari fid 536876964/1/1 ".newsrc.new" novi fid 536876964/1/1 ".newsrc" pike.afsfs> elvis.7001: rx data fs odgovor preimenovati

U prvoj liniji, domaćin Elvis šalje RX paket na štuka. Ovo je RX data paket za fs (fileserver) uslugu, i predstavlja početak poziva RPC-a. Poziv RPC-a je bio preimenovan, sa starim direktorijumskim ID-om od 536876964/1/1 i starim nazivom datoteke ".newsrc.new", kao i novim direktorijumskim ID-om od 536876964/1/1 i novim imenom fajla. newsrc '. Štit domaćin odgovara odgovorom RPC-a na poziv preimenovanja (koji je bio uspešan, jer je to bio paket podataka, a ne paket za prekidanje).

Generalno, svi AFS RPC-ovi se dekodiraju barem po imenu RPC poziva. Većina AFS RPC-a ima bar neke od dekodiranih argumenata (obično samo "zanimljive" argumente, za neke definicije zanimljive).

Format je namenjen samo-opisu, ali verovatno neće biti korisno osobama koje nisu upoznate sa radom AFS-a i RX-a.

Ako je dvaput data -v (verbose) zastava, štampa se paketi potvrde i dodatne informacije o zaglavlju, kao što su ID poziva RX, broj poziva, redni broj, serijski broj i oznake paketa RX.

Ako se dvaput daje oznaka -v, odštampaju se dodatne informacije, kao što su ID poziva RX, serijski broj i oznake paketa RX. MTU informacije o pregovorima takođe se štampaju od RX ack paketa.

Ako se za tri puta daje tabelu -v, odštampaju se sigurnosni indeks i servisni ID.

Kodovi grešaka su odštampani za prekid paketa, sa izuzetkom Ubik beacon paketa (zato što su abortirani paketi korišćeni za označavanje glasanja da za Ubik protokol).

Imajte na umu da su AFS zahtjevi veoma veliki i mnogi od argumenata neće biti odštampani, osim ako se povećanje snaže . Pokušajte da koristite ` -s 256 'da biste gledali AFS saobraćaj.

Paketi odgovora AFS-a ne eksplicitno identifikuju RPC operaciju. Umjesto toga, tcpdump prati "najnovije" zahtjeve i odgovara ih odgovorima koristeći broj poziva i servisni ID. Ako odgovor ne prati odgovarajući zahtev, to možda neće biti parser.

KIP Appletalk (DDP u UDP)

Appletalk DDP paketi enkapsulirani u UDP datagramima su dekapsulirani i odbačeni kao DDP paketi (tj. Sve informacije UDP zaglavlja se odbacuju). Datoteka /etc/atalk.names se koristi za prevođenje brojeva appletalk neta i čvorova na imena. Linije u ovoj datoteci imaju oblik

ime brojeva 1.254 eter 16.1 icsd-net 1.254.110 ace

Prve dve linije daju imena mrežnih aplikacija. Treća linija daje ime određenog domaćina (host se razlikuje od mreže u 3. oktetu u broju - mrežni broj mora imati dva okteta a broj domaćina mora imati tri okteta.) Broj i ime treba da budu razdvojeni po prostoru (praznine ili tabovi). Datoteka /etc/atalk.names može sadržavati prazne linije ili linije komentara (linije počinju sa `# ').

Adresa Appletalk-a se štampa u obliku:

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

(Ako /etc/atalk.names ne postoji ili ne sadrži unos za neki host / net broj apleta, adrese se štampaju u numeričkom obliku.) U prvom primeru, NBP (DDP port 2) na netu 144.1 čvor 209 šalje na ono što sluša na portu 220 neto čvor icsd 112. Druga linija je ista, osim ako je poznato puno ime izvornog čvora (`office '). Treća linija je slanje sa port 235 na neto jssmag čvor 149 za emitovanje na icsd-net NBP portu (obratite pažnju na to da je adresa (255) koja se prenosi označila mrežnim imenom bez broja domaćina - zbog toga je to dobra ideja da čuvaju imena čvorova i neto imena različita u /etc/atalk.names).

NBP (protokol za vezivanje imena) i paketi ATP (Appletalk transaction protocol) sadrže njihov sadržaj. Ostali protokoli samo zapale naziv protokola (ili broj ako se ne registruje ime za protokol) i veličina paketa.

NBP paketi su formatirani kao sljedeći primeri:

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

Prva linija je zahtev za traženje imena za laserske pisače koji su poslati net icsd host 112 i emitovani na net jssmag. Nbp id za pretragu je 190. Druga linija prikazuje odgovor za ovaj zahtev (obratite pažnju da ima isti ID) od hosta jssmag.209 rekavši da na resursu 250 ima registrovani resurs za laserski rad sa imenom "RM1140". Treći linija je još jedan odgovor na isti zahtev u kojem se navodi da host techpit ima "techpit" laserski pisač na portu 186.

Formatiranje paketa ATP-a dokazano je sledećim primerom:

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

Jssmag.209 inicira ID transakcije 12266 sa heliosom domaćina tako što traži do 8 paketa («<0-7> '). Broj hexa na kraju linije je vrijednost polja 'userdata' u zahtjevu.

Helios odgovara sa 8 512-bajtnih paketa. `: Cifra 'koja sledi ID transakcije daje broj sekvence paketa u transakciji, a broj u parensu je količina podataka u paketu, isključujući zaglavlje atp. `* 'Na paketu 7 označava da je podešen EOM bit.

Jssmag.209 zatraži da se paketi 3 i 5 ponovo prenose. Helios ih ponavlja tada jssmag.209 oslobađa transakciju. Konačno, jssmag.209 pokreće sledeći zahtev. `* 'Na zahtevu označava da XO (` tačno jednom') nije postavljen.

IP fragmentacija

Fragmentirani Internet datagramovi se štampaju kao

(frag id : size @ offset +) (frag id : size @ offset )

(Prvi oblik ukazuje na to da ima više fragmenata, a drugi pokazuje da je ovo poslednji fragment.)

Id je id fragmenta. Veličina je veličina fragmenta (u bajtovima) isključujući IP zaglavlje. Ofset je offset ovog fragmenta (u bajtovima) u originalnom datagramu.

Informacije o fragmentu izlaze za svaki fragment. Prvi fragment sadrži zaglavlje protokola višeg nivoa, a informacije o fragmentima se štampaju nakon informacija o protokolu. Fragmenti nakon prvog ne sadrže zaglavlje protokola višeg nivoa, a informacije o fragmentima se štampaju nakon izvorne i odredišne ​​adrese. Na primjer, ovdje je dio ftp-a od arizona.edu do lbl-rtsg.arpa preko CSNET veze koja izgleda da ne radi sa 576 bajt datagramovima:

arizona.ftp-podaci> rtsg.1170:. 1024: 1332 (308) ack 1 win 4096 (frag 595a: 328 @ 0 +) Arizona> rtsg: (frag 595a: 204 @ 328) rtsg.1170> arizona.ftp-data:. 1536 pobeda 2560

Ovde treba navesti nekoliko stvari: Prvo, adrese u drugoj liniji ne uključuju brojeve portova. To je zato što su informacije o TCP protokolu sve u prvom fragmentu i nemamo predstavu o broju portova ili redosleda kada štampamo kasnije fragmente. Drugo, informacije o tcp sekvenci u prvoj liniji štampane su kao da je bilo 308 bajtova korisničkih podataka kada u stvari postoje 512 bajtova (308 u prvom fragmentu i 204 u drugom). Ako tražite rupe u prostoru redosleda ili pokušavate da udjete s paketom, ovo vas može prevariti.

Paket sa IP-om ne označava zarezu sa oznakama (DF) .

Vremenska oznaka

Podrazumevano, svim izlaznim linijama prethodi vremenski znak. Vremenska oznaka je trenutno vreme u obliku

hh: mm: ss.frac

i je tačan kao i časovnik kernela. Vremenska oznaka odražava vreme kada je kernel prvi put vidio paket. Nije napravljen pokušaj da se uzme u obzir vremenski interval između kada je ethernet interfejs uklonio paket iz žice i kada je jezgro servisirao prekid novog paketa.

VIDI TAKO

saobraćaj (1C), nit (4P), bpf (4), pcap (3)

Važno: Koristite komandu čovjeka ( % čovjek ) da biste videli kako se na vašem računaru koristi komanda.