Tcpdump - Linux Command - Unix Command

NAMA

tcpdump - mblokir lalu lintas ing jaringan

SINOPSIS

tcpdump [ -adeflnNOpqRStuvxX ] [ -c count ]

[ -C file_size ] [ -F file ]

[ -i antarmuka ] [ -m modul ] [ -r file ]

[ -s snaplen ] [ -T ketik ] [ -U user ] [ -w file ]

[ -E algo: rahasia ] [ ekspresi ]

DESCRIPTION

Tcpdump prints metu header packets ing antarmuka jaringan sing cocog karo expression boolean. Sampeyan uga bisa mbukak karo flag -w , sing nyebabake nyimpen data paket menyang file kanggo analisis sabanjure, lan / utawa karo bendha -r , sing nyebabake dibaca saka file paket sing disimpen tinimbang kanggo maca paket saka antarmuka jaringan. Ing kabeh kasus, mung paket sing cocog karo ekspresi bakal diproses dening tcpdump .

Tcpdump bakal, yen ora nganggo bendera -c , terus njupuk paket nganti diganggu dening sinyal SIGINT (kayata, kanthi ngetik karakter interrupt, biasane kontrol-C) utawa sinyal SIGTERM (biasane dibentuk karo mateni (1) printah); yen nganggo bendera -c , bakal njupuk paket nganti diganggu dening sinyal SIGINT utawa SIGTERM utawa jumlah paket sing wis ditemtokake.

Nalika tcpdump rampung ngrebut paket, bakal nglaporake asupan:

paket `` ditampa dening filter '' (makna iki gumantung marang OS sing sampeyan mlaku tcpdump , lan bisa uga cara OS dikonfigurasi - yen filter kasebut ing baris perintah, ing sawetara OS sing diarani paket apa wae sing dicocogake karo ekspresi filter, lan ing OS liyane, mung dianggep paket sing dicocogake karo ekspresi filter lan diproses dening tcpdump );

paket `` dibuwang kernel '' (iki nomer paket sing dibuang, amarga ora ana ruang buffer, dening mekanisme panrima paket ing OS ing ngendi tcpdump mlaku, yen OS nglaporake informasi kasebut ing aplikasi; yen ora, bakal kacarita minangka 0).

Ing platform sing ndhukung sinyal SIGINFO, kayata sing paling akeh BSD, bakal dilaporake nalika ditampa sinyal SIGINFO (diganti, contone, kanthi ngetik karakter `status ', biasane kontrol-T) lan bakal terus njupuk paket .

Paket maca saka antarmuka jaringan mbutuhake sampeyan duwe hak khusus:

Ing SunOS 3.x utawa 4.x karo NIT utawa BPF:

Sampeyan kudu maca akses menyang / dev / nit utawa / dev / bpf * .

Ing Solaris karo DLPI:

Sampeyan kudu duwe akses maca / nulis menyang piranti pseudo jaringan, contone / dev / le . Sanadyan sawetara versi Solaris, Nanging, iki ora cukup kanggo ngidini tcpdump dijupuk ing mode promiscuous; ing versi Solaris, sampeyan kudu root, utawa tcpdump kudu diinstal setuid kanggo root, supaya bisa ditemokake ing mode promiscuous. Elinga yen, ing antarmuka akeh (mbok menawa kabeh), yen sampeyan ora dijupuk ing mode promiscuous, sampeyan ora bakal weruh paket metu, supaya panangkepan ora rampung ing mode promiscuous mbokmenawa ora banget migunani.

Ing HP-UX karo DLPI:

Sampeyan kudu root utawa tcpdump kudu diinstal setuid kanggo root.

Ing IRIX kanthi snoop:

Sampeyan kudu root utawa tcpdump kudu diinstal setuid kanggo root.

Ing Linux:

Sampeyan kudu root utawa tcpdump kudu diinstal setuid kanggo root.

Ing Ultrix lan Digital UNIX / Tru64 UNIX:

Sembarang pangguna bisa ngrebut lalu lintas jaringan kanthi tcpdump . Nanging, ora ana pangguna (malah pangguna super) bisa nangkep ing mode promiscuous ing antarmuka kajaba panganggo super wis ngaktifake operasi modus ing antarmuka sing nggunakake pfconfig (8), lan ora ana user (malah pangguna super ) bisa nangkep lalu lintas unicast sing ditampa dening utawa dikirim dening mesin ing antarmuka kajaba panganggo super wis aktif operasi kabeh-mode ing antarmuka sing nggunakake pfconfig , supaya bisa diwenehi paket kanthi migunani ing antarmuka sing mbokmenawa mbutuhake salah sijine mode promiscuous utawa nyalin -all-mode operation, utawa loro mode operasi, bisa aktif ing antarmuka kasebut.

Ing BSD:

Sampeyan kudu maca akses menyang / dev / bpf * .

Mbukak file paket sing disimpen ora mbutuhake hak istimewa khusus.

PILIHAN

-a

Nyoba ngowahi alamat jaringan lan siaran menyang jeneng.

-c

Metu sawise nampa paket count .

-C

Sadurunge nulis paket mentah menyang file simpen, priksa manawa file saiki luwih gedhe tinimbang file_size lan, yen mangkono, nutup simpenan file saiki lan mbukak file anyar. Savefiles sawise file simpatine sing pertama bakal duwe jeneng kasebut kanthi flag -w , kanthi nomer kasebut, wiwit 2 lan terus munggah. Unit_file_size ana jutaan bita (1,000,000 bita, ora 1,048,576 bita).

-d

Bungkus kod sing cocog karo paket kasebut ing wangun sing bisa diwaca manungsa kanggo output standar lan mandheg.

-dd

Dump kode packet-matching minangka fragmen program C.

-ddd

Dump kode packet-matching minangka angka desimal (didhukung karo count).

-e

Print header level pranala ing saben baris mbucal.

-E

Gunakake algo: rahasia kanggo decrypting IPsec ESP paket. Algoritma bisa dadi des-cbc , 3des-cbc , blowfish-cbc , rc3-cbc , cast128-cbc , utawa ora ana . Default yaiku des-cbc . Kemampuan kanggo decrypt paket mung saiki yen tcpdump dikompilasi karo kriptografi aktif. rahasia teks ascii kanggo kunci rahasia ESP. Kita ora bisa njupuk nilai biner sing bisa ditrapake ing wektu iki. Opsi nganggep RFC2406 ESP, ora RFC1827 ESP. Opsi mung kanggo tujuan debugging, lan nggunakake pilihan iki kanthi saestu 'rahasia' tombol ora bakal dikendhaleni. Kanthi nduduhake kunci rahasia IPsec ing baris perintah, sampeyan bakal katon karo wong liya, liwat ps (1) lan kesempatan liyane.

-f

Nyetak alamat internet `manca 'sacara numerik tinimbang simbolis (pilihan iki dimaksudake kanggo ngrusak karusakan otak sing abot ing server yp Sun --- biasane nate salin nerjemahake nomer internet non-lokal).

-F

Gunakake file minangka input kanggo ekspresi filter. Ekspresi tambahan sing diwenehake ing baris perintah diabaikan.

-i

Deleng ing antarmuka . Yen ora ditetepake, tcpdump nelusur dhaptar antarmuka sistem kanggo antarmuka munggah, sing paling dhuwur, ora kalebu loopback. Hubungane tugel kanthi milih sing paling awal.

Ing sistem Linux kanthi kernel 2.2 utawa luwih, sawijining argumen antarmuka `` apa '' bisa digunakake kanggo njupuk paket saka kabeh antar muka. Elinga yen nangkep ing piranti apa wae ora bakal rampung ing mode promiscuous.

-l

Nggawe stdout line buffered. Migunani yen sampeyan pengin ndeleng data nalika njupuk kasebut. Dadi,
`` tcpdump -l | tee dat '' or `` tcpdump -l> dat & tail -f dat ''.

-m

Atur definisi modul SMIB MIB saka modul file. Opsi iki bisa digunakake kaping pirang-pirang kanggo ngemot modul MIB sawetara menyang tcpdump .

-n

Aja ngonversi alamat inang kanggo jeneng. Iki bisa digunakake kanggo nggoleki DNS lookingups.

-nn

Aja ngonversi protokol lan nomer port etc. kanggo jeneng salah siji.

-N

Aja nyetak kualifikasi jeneng domain jeneng inang. Misale, yen sampeyan menehi flag iki, tcpdump bakal nyithak `nic 'tinimbang` nic.ddn.mil'.

-O

Aja ngaktifake kode pilihan sing cocog karo packet. Iki mung migunani yen sampeyan nyangka bug ing optimizer.

-p

Aja nggawe antarmuka menyang mode promiscuous. Elinga yen antarmuka bisa uga ana ing mode promiscuous kanggo sawetara alesan liyane; Mula, `-p 'ora bisa digunakake minangka singkatan kanggo` ether inang {lokal-hw-addr} utawa siaran eter'.

-q

Cepet (sepi?) Output. Print informasi kurang protokol supaya garis output luwih cendhek.

-R

Anggepake paket ESP / AH kanggo didhuwurake miturut spesifikasi lawas (RFC1825 kanggo RFC1829). Yen ditemtokake, tcpdump ora bakal nyetak ulang lapangan pangreksan. Awit ora ana lapangan versi protokol ing spesifikasi ESP / AH, tcpdump ora bisa nyimpulake versi protokol ESP / AH.

-r

Maca paket saka file (sing digawe nganggo opsi -w). Input standar digunakake yen file `` - ''.

-S

Print absolut, tinimbang relatif, nomer urutan TCP.

-s

Snarf snaplen bytes data saka saben paket tinimbang standar 68 (karo SunOS's NIT, minimal bener 96). 68 byte cukup kanggo IP, ICMP, TCP lan UDP nanging bisa ngetung informasi protokol saka server jeneng lan paket NFS (ndeleng ngisor). Paket diluncurake amarga snapshot winates dituduhake ing output karo `` [| proto ] '', ing ngendi proto minangka jeneng level protokol ing pucuk sing wis ana. Elinga yen njupuk snapshot gedhe luwih loro mundhakake jumlah wektu kanggo proses paket lan, kanthi efektif, ngurangi jumlah paket buffering. Iki bisa nyebabake paket bakal ilang. Sampeyan kudu matesi snaplen menyang nomer sing paling cilik sing bakal njupuk informasi protokol sing disenengi. Ngatur snaplen kanggo 0 tegese nggunakake dawa sing dibutuhake kanggo nyekel kabeh paket.

-T

Paket peksa sing dipilih kanthi " ekspresi " bakal dingerteni jinis kasebut . Saiki dikenal minangka cnfp (Protokol Cisco NetFlow), rpc (Remote Procedure Call), rtp (Protokol Aplikasi Nyata), rtcp (protokol kontrol Real-Time Applications), snmp (Simple Network Management Protocol) ), lan wb (mbagekke Papan Putih).

-t

Aja nyetak timestamp ing saben baris mbucal.

-tt

Nyetak timestamp sing ora diformat ing saben baris mbucal.

-U

Nolak hak istimewa ROOT lan ngganti ID pangguna menyang pangguna lan ID grup kanggo klompok pangguna utama .

Wigati! Red Hat Linux kanthi otomatis nyatakake hak istimewa kanggo pangguna `` pcap '' yen ora ana sing liya.

-tapi

Print delta (ing detik) antarane baris saiki lan sadurungé ing saben baris mbucal.

-tttt

Print timestamp ing format standar sing diterusake tanggal ing saben baris mbucal.

-u

Print pegangan NFS undecoded.

-v

(Sedheng liyane) output verbose. Contone, wektu kanggo manggon, identifikasi, total dawa lan opsi ing paket IP dicithak. Uga ngijini kothak integritas paket tambahan kayata verifikasi header IP lan ICMP checksum.

-vv

Malah luwih output output. Contone, kothak tambahan dicithak saka paket NFS balesan, lan paket SMB wis di-decode.

-vvv

Malah luwih output output. Contone, telnet SB ... opsi SE dicithak kanthi lengkap. Kanthi opsi -X telnet dicithak ing hex uga.

-w

Tulis paket mentah kanggo ndhaftar tinimbang parsing lan printing kasebut. Padha bisa dicithak nganggo opsi -r. Output standar digunakake yen file `` - ''.

-x

Print saben paket (dikurangi pranala level link) ing hex. Sing luwih cilik saka bita kabeh paket utawa snaplen bakal dicithak. Elinga yen iki kabeh paket-lapisan paket, supaya kanggo lapisan link sing pad (eg Ethernet), bita bakal uga dicithak nalika paket lapisan sing luwih dhuwur luwih cendhek tinimbang padding sing dibutuhake.

-X

Nalika nyetak hex, pencet ascii uga. Mangkono yen -x uga disetel, paket kasebut dicithak ing hex / ascii. Iki gampang banget kanggo nganalisis protokol anyar. Sanajan -x ora uga disetel, sawetara bagéan sawetara paket bisa dicithak ing hex / ascii.

ekspresi

milih paket sing bakal dibuang. Yen ora ana ungkapan , kabeh paket ing internet bakal dibuang. Yen ora, mung paket sing ekspresi `bener 'bakal dibuang.

Ekspresi kasebut dumadi saka siji utawa luwih primitif. Primitives biasane kalebu id (jeneng utawa nomer) sing diawali dening siji utawa luwih kualifikasi. Ana telung macem kualifikasi:

Tipe

kualifikasi ngendika apa jenis jeneng utawa nomer id sing dimaksud. Jenis sing bisa dadi host , net lan port . Contone, `host foo ',` net 128.3', `port 20 '. Yen ora ana kualifikasi jinis, tuan rumah dianggep.

dir

kualifikasi menentukan arah transfer tertentu ke dan / atau dari id . Pandhuan bisa minangka src , dst , src utawa dst lan src lan dst . Contone, 'src foo', 'dst net 128.3', `src utawa dst port ftp-data '. Yen ora ana kualifikasi dir, src utawa dst dianggep. Kanggo lapisan link `null '(ie titik kanggo titik protokol kayata slip) kualifikasi inbound lan outbound bisa digunakake kanggo nemtokake arah sing dikarepake.

proto

kualifikasi mbatesi pertandhingan kanggo protokol tartamtu. Protot bisa: ether , fddi , tr , ip , ip6 , arp , rarp , decnet , tcp lan udp . Contone, `src src ',` arp net 128.3', `tcp port 21 '. Yen ora ana kualifikasi proto, kabeh protokol sing konsisten karo jinis kasebut dianggep. ', Nek bar' tegese `(ip or arp utawa rarp) src foo '(kajaba sing terakhir iku ora sintaksis hukum),` net bar' tegese `(ip utawa arp utawa rarp) net bar ' `(tcp utawa udp) port 53 '.

[`fddi 'bener-bener alias kanggo` eter'; parser nganggep minangka identik minangka makna "level link data sing digunakake ing antarmuka jaringan sing wis ditemtokake." "Asma FDDI ngemot sumber lan alamat tujuan kaya Ethernet, lan asring ngemot jinis paket Ethernet, saengga sampeyan bisa nyaring ing kolom FDDI iki kaya karo kolom Ethernet analog. Headers FDDI uga ngemot kolom liyane, nanging sampeyan ora bisa ngarani kanthi tegas sajrone ekspresi filter.

Kajaba iku, `tr 'minangka alias kanggo` eter'; pernyataan paragraf sadurungé babagan header FDDI uga dileksanakaké minangka header Token Ring.]

Saliyane ing ndhuwur, ana sawetara tembung kunci 'primitif' khusus sing ora ngetutake pola: gateway , siaran , kurang , luwih gedhe lan ekspresi aritmetika. Kabeh kasebut diterangake ing ngisor iki.

Ekspresi panyaring sing luwih rumit dibentuk kanthi nggunakake tembung lan , utawa lan ora kanggo nggabungake primitives. Contone, `host foo lan ora port ftp lan ora port ftp-data '. Kanggo ngetik typing, dhaptar kualifikasi sing padha bisa dilirwakaké. Misale, `tcp utawa ftp utawa ftp-data utawa domain 'persis padha karo` tcp utawa ftp utawa tcp utawa ftp-data utawa tcp utawa dst port'.

Primitif sing diijini yaiku:

dst inang host

Bener yen bidang tujuan IPv4 / v6 paket iku inang , sing bisa dadi alamat utawa jeneng.

host inang src

Bener yen kolom sumber IPv4 / v6 saka paket kasebut inang .

inang host

Bener manawa sumber utawa tujuan IPv4 / v6 utawa tujuan paket kasebut dadi tuan rumah . Saben ekspresi inang kasebut bisa ditambah karo tembung kunci, ip , arp , rarp , utawa ip6 kaya:

ip host inang

sing padha karo:

ether proto \ ip lan host inang

Yen inang iku jeneng nganggo pirang-pirang alamat IP, saben alamat bakal dicenthang kanggo match.

ether dst ehost

Bener yen alamat tujuan ethernet iku hantu . Hantu bisa uga jeneng saka / etc / ethers utawa nomer (pirsani ether (3N) kanggo format numerik).

ênggone nyedhaki

Bener yen alamat sumber ethernet iku hantu .

ether host host

Bener yen salah siji sumber ethernet utawa alamat tujuan iku hantu .

gerbang gerbang

Bener yen paket digunakake minangka host minangka gateway. Ya, sumber ethernet utawa alamat tujuan sing di- host nanging ora ana sumber IP utawa tujuan IP sing di- host . Tuan rumah kudu jeneng lan kudu ditemokake dening mekanisme resolusi host-jeneng-kanggo-IP-alamat (host file jeneng, DNS, NIS, lan liya-liyane) lan resolusi alamat-jeneng-ke-Ethernet mekanisme (/ etc / ethers, etc). (Ekspresi padha karo

Eter host host lan ora inang host

sing bisa digunakake kanthi jeneng utawa nomer kanggo inang / hantu .) Sintaks iki ora bisa digunakake ing konfigurasi aktif IPv6 ing wayahe.

dst net net

Bener yen alamat tujuan IPv4 / v6 paket kasebut duweni jaringan jaring . Net bisa uga jeneng saka / etc / networks utawa nomer jaringan (ndeleng jaringan (4) kanggo rincian).

net net src

Bener yen alamat IPv4 / v6 saka paket kasebut duweni jaringan jaring .

net net

Bener manawa ana sumber IPv4 / v6 utawa alamat tujuan paket kasebut duweni jaringan jaring .

net mask mask netmask

Bener yen alamat IP cocog karo netmask tartamtu. Bisa dadi qualified karo src utawa dst . Elinga yen sintaks iki ora bener kanggo IPv6 net .

net net / len

Bener yen alamat IPv4 / v6 cocog net karo netmask len bit lebar. Bisa dadi qualified karo src utawa dst .

dst port port

Bener yen paket iku ip / tcp, ip / udp, ip6 / tcp utawa ip6 / udp lan nduweni port port tujuan. Port bisa dadi nomer utawa jeneng sing digunakake ing / etc / services (ndeleng tcp (4P) lan udp (4P)). Yen jeneng digunakake, loro-lorone port lan protokol wis dicenthang. Yen nomer utawa jeneng ambigu digunakake, mung nomer port sing dicenthang (contone, dst port 513 bakal nyithak lalu lintas tcp / mlebu lan udp / sing kiriman, lan domain port bakal nyetak lalu lintas tcp / domain lan udp / domain).

port port src

Bener yen paket duweni port port sumber port .

port port

Bener manawa ana port sumber utawa tujuan paket kasebut minangka port . Saben ekspresi port ing ndhuwur bisa ditambahake karo tembung kunci, tcp utawa udp , kaya ing:

tcp src port port

sing cocog karo paket tcp sing port sumber port .

kurang dawa

Bener yen paket kasebut dawane kurang saka utawa meh padha karo dawa . Iki padha karo:

len <= dawa .

luwih dawa

Bener yen paket kasebut dawane luwih dawa utawa meh padha karo dawa . Iki padha karo:

len> = dawa .

protokol pr proto

Bener yen paket kasebut minangka paket IP (ndeleng ip (4P)) saka protocol protokol . Protokol bisa dadi nomer utawa siji saka jeneng icmp , icmp6 , igmp , igrp , pim , ah , esp , vrrp , udp , utawa tcp . Elinga yen pengenal tcp , udp , lan icmp uga minangka tembung kunci lan kudu lolos liwat backslash (\), yaiku \\ ing C-shell. Elinga yen primitif iki ora ngoyak chain protokol header.

protokol pripun ip6

Bener yen paket kasebut minangka paket IPv6 saka protocol protokol . Elinga yen primitif iki ora ngoyak chain protokol header.

protokol protochain ip6

Bener yen paket kasebut minangka paket IPv6, lan ngemot header protokol karo protokol jinis ing chain header protokol. Tuladhane,

ip6 protochain 6

cocog karo sembarang paket IPv6 nganggo protokol header TCP ing chain protokol header. Paket kasebut bisa ngemot, contone, header asli, header perutean, utawa header pilihan hop-hop-hop, antarane header IPv6 lan header TCP. Kode BPF sing dikirim dening primitif iki rumit lan ora bisa dioptimalake dening kode optimizer BPF ing tcpdump , supaya bisa rada alon.

protokol protochain ip

Setara karo protokol protochain ip6 , nanging iki kanggo IPv4.

ether siaran

Bener yen paket kasebut minangka paket siaran ethernet. Kata kunci eter adalah pilihan.

ip siaran

Bener yen paket kasebut minangka paket siaran IP. Iki ngecualake kabeh konvensi siaran kabeh lan kabeh, lan nggoleki subnet mask lokal.

ether multicast

Bener yen paket kasebut minangka paket ethernet multicast. Kata kunci eter adalah pilihan. Iki minangka singkatan kanggo ` eter [0] & 1! = 0 '.

ip multicast

Bener yen paket iku paket multicast IP.

ip6 multicast

Bener yen paket kasebut minangka paket multikast IPv6.

protokol èlèt ether

Bener yen paket kasebut saka protokol tipe eter. Protokol bisa dadi nomer utawa siji saka jeneng ip , ip6 , arp , rarp , atalk , aarp , decnet , sca , lat , mopdl , moprc , iso , stp , ipx , utawa netbeui . Elingi pengenal iki uga tembung kunci lan kudu bisa lolos liwat backslash (\).

[Ing kasus FDDI (eg, ' fddi protocol arp ') lan Token Ring (contone, ' tr protocol arp '), kanggo sebagian besar protokol kasebut, identifikasi protokol kasebut saka header 802.2 Logical Link Control (LLC) biasane dilapisi ing ndhuwur header FDDI utawa Token Ring.

Nalika nyaring kanggo paling pengenal protokol ing FDDI utawa Token Ring, tcpdump mung mriksa kolom protokol ID header LLC ing format SNAP kanthi Unit Pengenal Organisasi (OUI) saka 0x000000, kanggo ETPnet encapsulated; ora mriksa manawa paket kasebut ana ing SNAP format karo OUI saka 0x000000.

Pangecualian iso , sing ngetokake DSAP (Titik Akses Layanan Tujuan) lan SSAP (Titik Akses Layanan Titik) saka header LLC, stp lan netbeui , ngendi mriksa DSAP header LLC, lan atalk , ngendi ngecek paket SNAP-format karo OUI saka 0x080007 lan Appletalk etype.

Ing kasus Ethernet, tcpdump ngecek kolom Tipe Ethernet kanggo sebagian besar protokol kasebut; pengecualian kasebut iso , sap , lan netbeui , sing ngecek pigura 802.3 lan banjur ngecek header LLC kaya apa sing dienggo kanggo FDDI lan Token Ring, atalk , sing ngecek loro kanggo Appletalk etype ing bingkai Ethernet lan kanggo Paket SNAP format kayata kanggo FDDI lan Token Ring, aarp , ing ngendi ngecek Appletalk ARP etype kasebut ing salah sawijining bingkai Ethernet utawa bingkai SNAP 802.2 kanthi OUI saka 0x000000, lan ipx , ing ngendi iku ngecek IPX etype ing pigura Ethernet, IPX DSAP ing header LLC, ing 802.3 karo ora enkapsulasi header LLC IPX, lan IPX etype ing pigura SNAP.]

host decnet src

Leres manawa alamat sumber DECNET dadi tuan rumah , sing bisa dadi alamat formulir `` 10.123 '', utawa jeneng host DECNET. [Dhukungan jeneng host DECNET mung kasedhiya ing sistem Ultrix sing diatur kanggo mbukak DECNET.]

decnet dst inang

Bener yen alamat tujuan DECNET dadi inang .

host inang decnet

Bener yen salah siji sumber DECNET utawa alamat tujuan sing di- host .

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

Cekakan kanggo:

ether proto p

ngendi p minangka salah sawijining protokol ing ndhuwur.

lat , moprc , mopdl

Cekakan kanggo:

ether proto p

ngendi p minangka salah sawijining protokol ing ndhuwur. Elinga yen tcpdump durung ngerti carane ngurai protokol iki.

vlan [vlan_id]

Bener yen paket kasebut minangka paket VLAN IEEE 802.1Q. Yen [vlan_id] kasebut , mung bener yaiku paket kasebut duwe vlan_id sing ditemtokake. Elinga yen kunci vlan kapisan sing ditemokake ing ekspresi ngganti decoding offsets kanggo sisa ekspresi ing asumsi yen paket kasebut minangka paket VLAN.

tcp , udp , icmp

Cekakan kanggo:

ip proto p utawa ip6 proto p

ngendi p minangka salah sawijining protokol ing ndhuwur.

iso protokol proto

Bener yen paket kasebut minangka protokol Tipe protokol OSI. Protokol bisa dadi nomer utawa siji saka jeneng clnp , esis , utawa isis .

clnp , esis , isis

Cekakan kanggo:

iso proto p

ngendi p minangka salah sawijining protokol ing ndhuwur. Elinga yen tcpdump ora nglakoni tugas mbatalake protokol kasebut.

expr relop expr

Bener yen hubungan kasebut, ing ngendi relop minangka salah siji saka, <,> =, <=, =,! =, Lan expr minangka ekspresi aritmetika sing kasusun saka konstanta integer (ditulis ing sintaks standar C), operator biner biasa [ , -, *, /, &,]], operator panjang, lan aksesor data data khusus. Kanggo ngakses data ing sajrone paket, gunakake sintaks iki:

proto [ expr : size ]

Proto yaiku salah sawijining ether, fddi, tr, ppp, slip, link, ip, arp, rarp, tcp, udp, icmp utawa ip6 , lan nuduhake lapisan protokol kanggo operasi indeks. ( Ether, fddi, tr, ppp, slip lan pranala kabeh ngrujuk marang lapisan link.) Elinga yen tcp, udp lan tipe protokol lapisan ndhuwur mung ditrapake ing IPv4, ora IPv6 (iki bakal diatasi ing mangsa ngarep). Byte ngimbang, relatif marang lapisan protokol sing dituduhake, diwenehi dening expr . Ukuran iku opsional lan nuduhake nomer byte ing bidang kapentingan; bisa dadi siji, loro, utawa papat, lan minangka standar. Operator dawa, sing dituduhake dening tembung kunci, menehi dawa paket.

Contone, ` ether [0] & 1! = 0 'nangkep kabeh lalu lintas multicast. Ekspresi ` ip [0] & 0xf! = 5 'nangkap kabeh paket IP kanthi opsi. Ekspresi ` ip [6: 2] & 0x1fff = 0 'mung narik datagrams tanpa fragmentasi lan pecahan nol datagrams terfragmentasi. Cek iki sacara implisit diterapake ing operasi indeks tcp lan udp . Contone, tcp [0] tansah tegese byte pertama header TCP, lan ora ateges byte pertama fragmen intervensi.

Sapérangan nilai offsets lan kolom bisa ditulis minangka jeneng tinimbang minangka angka numerik. Protokol header header ing ngisor iki kasedhiya: icmptype (kolom Tipe ICMP), kode icmpcode (kolom kode ICMP), lan tcpflags (kolom bendera TCP).

Nilai kolom jenis ICMP ing ngisor iki kasedhiya: icmp-echoreply , icmp-unreach , icmp-sourcequench , icmp-redirect , icmp-echo , icmp-routeradvert , icmp-routersolicit , icmp-timxceed , icmp-paramprob , icmp-tstamp , icmp -tempak , icmp-ireq , icmp-ireqreply , icmp-maskreq , icmp-maskreply .

Nilai kolom bendera TCP ngisor iki kasedhiya: tcp-fin , tcp-syn , tcp-rst , tcp-push , tcp-push , tcp-ack , tcp-urg .

Primitif bisa digabung nganggo:

Klompok primitif lan operator primitif (kurung khusus kanggo Shell lan kudu bisa lolos).

Negation (` ! 'Utawa` ora ').

Concatenation (` && ' utawa` lan ').

Ganti alternatif (` || 'utawa` utawa ').

Negation nduwe prioritas paling dhuwur. Ganti alternatif lan concatenation duwe prioritas sing padha lan asosiasi kiwa menyang tengen. Elinga yen eksplisit lan token, ora juxtaposition, saiki dibutuhake kanggo concatenation.

Yen pengenal diwenehi tanpa tembung kunci, kunci paling anyar sing dianggep. Tuladhane,

ora dadi tuan rumah vs lan ace

cendhak kanggo

ora dadi tuan rumah vs lan tuan rumah ace

sing ora bisa disepelekake

ora (inang vs utawa ace)

Argumentasi ekspresi bisa dilewati kanggo tcpdump minangka salah siji argumen utawa argumen kaping pirang-pirang, sing luwih trep. Umumé, yèn ekspresi kasebut ngandhut aksara Metacharacters, luwih gampang kanggo ngliwati minangka argumen sing dipetik. Multiple arguments digabungake karo spasi sadurunge parsed.

EXAMPLES

Kanggo nyithak kabeh paket sing teka ing utawa metu saka srengenge :

tcpdump inang sundown

Kanggo nyetak lalu lintas antarane helios lan salah siji panas utawa ace :

tcpdump hosts helios and \ (hot or ace \)

Kanggo nyithak kabeh paket IP antarane ace lan host apa wae kajaba helios :

tcpdump ip host ace lan ora helios

Kanggo nyithak kabeh lalu lintas antarane sarwa dumadi lokal lan sarwa dumadi ing Berkeley:

tcpdump net ucb-ether

Kanggo nyithak kabeh lalu lintas ftp liwat snip gateway internet: (dicatet yen ekspresi dikutip kanggo nyegah cangkang saka (mis-) napsirake kurung):

tcpdump 'gapura snup lan (port ftp utawa ftp-data)'

Kanggo nyithak lalu lintas sanalika ora disedhiyakake utawa ora ditemtokake kanggo sarwa lokal (manawa sampeyan minangka gateway menyang siji net liyane, barang kasebut ora tau digawe ing net lokal).

tcpdump ip lan ora net localnet

Kanggo nyithak paket wiwitan lan pungkasan (paket SYN lan FIN) saben obrolan TCP sing ngetutake host non-lokal.

tcp-syn 'tcp [tcpflags] & (tcp-syn | tcp-fin)! = 0 lan ora netepake netnet lokalnet '

Kanggo nyetak paket IP luwih saka 576 byte sing dikirimake liwat gapura gapura:

tcpdump 'gapura snup lan ip [2: 2]> 576'

Kanggo nyithak paket IP utawa multicast sing ora dikirim liwat siaran ethernet utawa multicast:

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

Kanggo nyithak kabeh paket ICMP sing ora nyuarakke panjalukan / balesan (ie, ora ping paket):

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

OUTPUT FORMAT

Output saka tcpdump iku gumantung saka protokol. Ing ngisor iki menehi katrangan singkat lan conto paling akeh format.

Link Level Headers

Yen opsi '-e' diwenehi, header level pranala kasebut dicithak. Ing etheret, alamat lan alamat tujuan, protokol, lan dawa paket dicithak.

Ing jaringan FDDI, opsi '-e' nyebabake tcpdump kanggo nyetak kolom `kontrol frame ', alamat sumber lan tujuan, lan dawa paket. (Kontrol bidang 'frame' ngatur interpretasi sisa paket) Paket normal (kayata sing ngemot IP datagrams) iku paket async, kanthi nilai prioritas antara 0 lan 7, contone, ` async4 '. paket dianggep ngemot paket 802.2 Logical Link Control (LLC); header LLC dicithak yen ora datagram ISO utawa paket SNAP sing disebut.

Ing jaringan Token Ring, opsi '-e' nyebabake tcpdump kanggo nyetak kolom `kontrol akses 'lan` kontrol frame', alamat sumber lan tujuan, lan dawa paket. Minangka ing jaringan FDDI, paket dianggep ngemot paket LLC. Utawa apa opsi '-e' kasebut utawa ora, informasi nuntun sumber dicithak kanggo paket sing diunggah.

(NB: Deskripsi ngisor iki nompo mirip karo algoritma kompresi SLIP sing dijelasake ing RFC-1144.)

Ing pranala SLIP, indikator arah (`` Aku '' kanggo inbound, `'O' 'kanggo outbound), jinis paket, lan informasi komprèsi dicithak. Tipe paket dicithak dhisik. Telung jinis yaiku ip , utcp , lan ctcp . Ora ana informasi link sing luwih lanjut dicithak kanggo paket ip . Kanggo paket TCP, pengenal sambungan dicithak miturut jinis kasebut. Yen paket dikompress, header sing dikodekan dicithak. Kasus-kasus khusus dicithak minangka * S + n lan * SA + n , ing ngendi n yaiku jumlah sing nomer urut (utawa nomer urutan lan ack) wis diganti. Yen ora kasus khusus, nol utawa owah-owahan liyane dicithak. Owah-owahan dituduhake dening U (pointer penting), W (jendhela), A (ack), S (nomer urutan), lan aku (ID paket), diikuti karo delta (+ n utawa -n) (= n). Akhire, jumlah data ing paket lan dawa header sing dikompress dicithak.

Contone, baris ing ngisor iki nuduhake paket TCP outbound sing dikompres, kanthi pengenal sambungan tersembunyi; ack wis diganti dening 6, nomer urut kanthi 49, lan ID paket kanthi 6; ana 3 byte data lan 6 bytes header sing dikuwat:

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

Paket ARP / RARP

Arp / rarp output nuduhake jinis panyuwunan lan argumen. Format kasebut dimaksudaké minangka panjelasan poto. Punika sampel cendhak sing dijupuk saka wiwitan rlogin saka inang host kanggo host csam :

arp sing-wis ngandhani csam ars reply-csam ing CSAM

Ing baris pisanan ngandika yen rtsg ngirimake paket arp nyuwun alamat ethernet saka host internet csam. Tanggapan Csam kanthi alamat ethernet (ing conto iki, alamat ethernet ana ing huruf kapital lan alamat internet ing ngisor kasus).

Iki bakal katon kurang redundant yen kita wis rampung tcpdump -n :

arp sing-wis 128.3.254.6 kirim 128.3.254.68 arp reply 128.3.254.6 yaiku-at 02:07: 01: 00: 01: c4

Yen kita wis rampung tcpdump -e , kasunyatan yen paket pertama disiarake lan sing liya minangka point-to-point bakal katon:

RTSG Broadcast 0806 64: arp who-have csam tell rtsg CSAM RTSG 0806 64: arp reply csam is-at CSAM

Kanggo paket pisanan iki, alamat alamat ethernet yaiku RTSG, panggonan iku alamat siaran ethernet, kolom jenis hex 0806 (ketik ETHER_ARP) lan dawa total 64 byte.

Paket TCP

(NB: Deskripsi ngisor iki nompo akrab karo protokol TCP sing diterangake ing RFC-793. Yen sampeyan ora akrab karo protokol, sanadyan gambaran utawa tcpdump iki luwih akeh digunakake kanggo sampeyan.)

Format umum baris protokol TCP yaiku:

src> dst: panji data-seqno ack window urgent options

Src lan dst yaiku alamat IP lan pelabuhan alamat lan tujuane. Bendera ana sawetara kombinasi S (SYN), F (FIN), P (PUSH) utawa R (RST) utawa siji. (ora ana bendera). Data-seqno nggambarake bagean saka urutan ruang sing diwatesi dening data ing paket kasebut (pirsani tuladha ing ngisor iki). Ack minangka urutan nomer data sabanjure ngira arah liya ing sambungan iki. Jendhela yaiku jumlah bita nampa spasi buffer sing ana ing arah liya ing sambungan iki. Urg nuduhake ana data 'urgent' ing paket kasebut. Opsi opsi tcp disegel ing kurung siku (contone, ).

Src, dst lan panji tansah ana. Kothak liyane gumantung ing isi header protokol tcp paket lan mung output yen cocok.

Punika bagean pambuka rlogin saka inang rtsg kanggo tuan rumah 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. mlebu:. 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 (ack 21 win 4077 csam.login> rtsg.1023: P 2: 3 (1) ack 21 menang 4077 urg 1 csam.login> rtsg.1023: P 3: 4 (1) ack 21 menang 4077 urg 1

Baris kapisan nyebutake yen port TCP 1023 on rtsg ngirim paket menyang port login ing csam. S nuduhake manawa bendera SYN disetel. Nomer urutan paket yaiku 768512 lan ora ana data. (Prastawa iki pisanan: pungkasan (nbytes) sing artine nomer urut urutan nganti nganti ora kalebu pungkasan sing ana bolak-ont tombol data pengguna.) Ora ana piggy-backed, jendhela nampa sing ana 4096 byte lan ana opsi max-segment-ukuran njaluk mss saka 1024 bytes.

Balesan Csam karo paket sing padha kajaba klebu piggy-backed ack kanggo rtsg's SYN. Rtsg banjur SYN. Ing `. ' tegese ora ana bendera. Paket ora ana data supaya ora ana nomer urutan data. Elinga yen nomer urutan ack minangka integer cilik (1). Pisanan tcpdump weruh tcp `obrolan ', iku prints nomer urut saka paket. Ing paket sakteruse saka obrolan, beda antarane nomer urutan paket saiki lan nomer urut dhisikan iki dicithak. Iki tegese nomer urut sawise bisa diinterpretasikake minangka posisi byte relatif ing data stream obrolan (kanthi data wiwitan saben arah minangka `1 '). `-S 'bakal ngganti fitur iki, nyebabake urutan urutan asli dadi output.

Ing baris kaping 6, rtsg ngirimake csam 19 byte data (byte 2 nganti 20 ing rtsg -> csam sisih obrolan). Bendera PUSH disetel ing paket kasebut. Ing baris ka-7, csam ngandharake data sing dikirim dening rtsg nganti ora kalebu byte 21. Sebagian besar data iki ketoke lungguh ing soket soket amarga jendela panampa csam wis diwenehi 19 byte luwih cilik. Csam uga ngirim data byte menyang rtsg ing paket iki. Ing baris 8 lan 9, csam ngirim rong bita urgen, ndorong data menyang rtsg.

Yen snapshot cukup cilik yen tcpdump ora bisa njupuk header TCP, bisa napsirake akeh header kaya bisa laporan kasebut `` [| tcp ] '' kanggo nélakaké sisa ora bisa diartikaké. Yen header ngandhut pilihan salah sijine (siji karo dawa sing cilik banget utawa ngluwihi mburi header), tcpdump nglaporake minangka `'[ bad opt ]' 'lan ora nggambarake opsi liya (amarga ora mungkin kanggo diwenehi ngendi padha miwiti). Yen dawa header nuduhake opsine saiki nanging datagram IP dawa ora cukup suwe kanggo opsi kanggo bener ana, tcpdump nglaporake minangka `` [ bad hdr length ] ''.

Njupuk paket TCP kanthi kombinasi gendera (SYN-ACK, URG-ACK, lan liya-liyane)

Ana 8 bit ing bagean bit kontrol saka header TCP:

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

Ayo kita nganggep yen kita pengin nonton paket sing digunakake kanggo mbangun sambungan TCP. Elinga yen TCP migunakake protokol salaman 3 wayah nalika nginisakake sambungan anyar; urutan sambungan kasebut babagan bit kontrol TCP yaiku

1) Pengirim ngirim SYN

2) Penerima nanggapi karo SYN, ACK

3) Caller ngirim ACK

Saiki kita lagi kepengin nyekel paket sing mung set SYN (Langkah 1). Elinga yen kita ora pengin paket saka langkah 2 (SYN-ACK), mung SYN awal sing kosong. Apa sing kita perlu ekspresi filter sing bener kanggo tcpdump .

Baleni struktur header TCP tanpa opsi:

0 15 31 ----------------------------------------------- ------------------ | port sumber | tujuan pelabuhan | -------------------------------------------------- --------------- | nomer urut | -------------------------------------------------- --------------- | nomer pangakuan | -------------------------------------------------- --------------- | HL | rsvd | C | E | U | A | P | R | S | F | ukuran jendhela | -------------------------------------------------- --------------- | TCP checksum | urgent pointer | -------------------------------------------------- ---------------

Panjunan TCP biasane nyekel 20 octets data, kajaba opsi sing ana. Baris kapisan grafik ngandhut okta 0 - 3, baris kapindho nuduhake octets 4 - 7 liyane.

Wiwit dikira dadi 0, bit kontrol TCP sing ana ing octet 13:

0 7 | 15 | 23 | 31 ---------------- | --------------- | --------------- | ---------------- | HL | rsvd | C | E | U | A | P | R | S | F | ukuran jendhela | ---------------- | --------------- | --------------- | - --------------- | Deleng uga 13th octet | Deleng uga Deleng uga

Ayo ndeleng kanthi cetha ing octet no. 13:

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

Iki minangka bit kontrol TCP kita kepengin. Kita wis nomer bit ing octet iki saka 0 kanggo 7, tengen ngiwa, supaya PSH bit dicokot nomer 3, nalika bit URG nomer 5.

Elinga yen kita pengin dijupuk paket mung karo set SYN. Ayo ndeleng apa sing kelakon ing octet 13 yen datagram TCP teka karo set SYN ing header sawijining:

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

Nggoleki bagean bit kontrol, kita bakal nemokake yen angka 1 bit (SYN) mung disetel.

Anggap angka octet 13 minangka integer unsigned 8-bit ing urutan byte jaringan, nilai binar saka octet iki

00000010

lan representasi desimal kasebut

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

Kita meh rampung, amarga saiki kita ngerti yen mung SYN wis disetel, nilai octet kaping 13 ing header TCP, nalika diinterpretasi minangka integer unsigned 8-bit ing urutan byte jaringan, kudu persis 2.

Hubungan iki bisa dituduhake minangka

tcp [13] == 2

Kita bisa nggunakake ekspresi iki minangka panyaring kanggo tcpdump kanggo nonton paket sing mung nganggo SYN:

tcpdump -i xl0 tcp [13] == 2

Ekspresi ngandika "ayo octet ke-13 saka datagram TCP duweni angka desimal 2", yaiku apa sing kita karepake.

Saiki, ayo padha nganggep yen kita kudu nyekel paket SYN, nanging kita ora peduli manawa ACK utawa bit kontrol TCP liya disetel bebarengan. Ayo ndeleng apa sing kelakon ing oktet 13 yen datagram TCP karo SYN-ACK bakal teka:

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

Saiki bit 1 lan 4 disetel ing octet kaping 13. Nilai binar saka octet 13 punika


00010010

sing dadi desimal

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

Saiki kita ora bisa mung nganggo 'tcp [13] == 18' ing ekspresi filter tcpdump , amarga bakal milih mung paket sing duwe SYN-ACK, nanging ora mung karo SYN. Elinga yen aku ora peduli yen ACK utawa bit kontrol liyane wis disetel anggere SYN wis disetel.

Kanggo entuk goal kita, kita kudu logis lan nilai binar saka octet 13 karo sawetara nilai liyane kanggo ngreksa SYN. Kita ngerti yen kita pengin SYN disetel ing kasus, supaya kita bakal logis lan nilai ing oktet kaping 13 karo nilai binar saka SYN:

00010010 SYN-ACK 00000010 SYN DAN 00000010 (kita pengin SYN) Lan 00000010 (kita pengin SYN) -------- -------- = 00000010 = 00000010

Kita sumurup, yen operasi AND iki ngluwari asil sing padha tanpa mangerteni apa ACK utawa liyane kontrol TCP dicokot. Perwakilan desimal dari nilai AND serta hasil dari operasi ini adalah 2 (binary 00000010), jadi kita tahu bahwa untuk paket dengan SYN menetapkan hubungan berikut harus berlaku:

((nilai octet 13) lan (2)) == (2)

Iki nuduhake kita menyang ekspresi filter tcpdump

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

Elinga yen sampeyan kudu nggunakake tanda kutip tunggal utawa backslash ing ekspresi kanggo ndhelikake karakter khusus ('&') saka cangkang.

Paket UDP

Format UDP digambarake dening paket iki:

actinide.who> broadcast.who: udp 84

Iki nyariosaken bilih port ingkang ing host actinide ngirim datagram udp menyang port sing ing hosting siaran , alamat siaran Internet. Paket iki ana 84 bita data pangguna.

Sawetara layanan UDP diakoni (saka nomer port sumber utawa tujuan) lan informasi protokol tingkat sing luwih dhuwur dicithak. Secara khusus, panjaluk layanan Domain Name (RFC-1034/1035) lan panggilan Sun RPC (RFC-1050) kanggo NFS.

Panyuwunan Jeneng UDP Server

(NB: Deskripsi ngisor iki ngakoni akrab karo protokol Domain Service sing diterangake ing RFC-1035. Yen sampeyan ora kenal protokol, keterangan ing ngisor iki bakal katon ditulis ing basa Yunani.)

Panjalukan jeneng server diformat minangka

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

Host h2opolo takon server domain ing helios kanggo rekaman alamat (qtype = A) sing digandhengake karo ucbvax.berkeley.edu. Id pitakonan yaiku `3 '. Ing `+ 'nuduhake rekursi bendha sing dikarepake wis disetel. Dawa query ana 37 byte, ora kalebu header UDP lan protokol IP. Operasi query ana sing normal, Query , supaya kolom op ora diijolake. Yen op wis samesthine, mesthi wis dicithak antarane `3 'lan` +'. Kajaba iku, qclass iku normal, C_IN , lan ilang . Sembarang qclass liyane bakal wis dicithak sanalika sawise `A '.

Anomali sawetara dicekak lan bakal mlebu kolom tambahan sing dilebokake ing kurungan kothak: Yen sawijining pitakonan ngandhut jawaban, cathetan panguwasa utawa bagean cathetan tambahan, angka , nscount utawa arca dicithak minangka `[ n a] ',` n ] 'utawa `[ n au]' n ing n yaiku count sing cocog. Yen ana bit respon sing disetel (AA, RA utawa rcode) utawa bit sing 'kudu nol' diset ing bates loro lan telu, `[b2 & 3 = x ] 'dicithak, ing ngendi x minangka nilai heksane bita header loro lan telu.

UDP Name Server Responses

Tanggepan server jeneng diformat minangka

src> dst: id op rcode flags a / n / au kelas data tipe (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)

Ing conto pisanan, helios nanggapi pitakonan id 3 saka h2opolo kanthi 3 cathetan jawaban, 3 cathetan server jeneng lan 7 cathetan tambahan. Cathetan jawaban pisanan yaiku Tipe A (alamat) lan data kasebut alamat internet 128.32.137.3. Ukuran total respon ana 273 bytes, ora kalebu header UDP lan IP. Kode op (Query) lan kode respon (NoError) diabaikan, kaya kelas (C_IN) saka rekaman A.

Ing conto liyane, helios nanggapi pitakonan 2 karo kode respon saka domain sing ora ana (NXDomain) tanpa jawaban, siji server jeneng lan ora ana cathetan panguwasa. `` 'Nuduhake yen bit jawaban kuoso wis disetel. Awit ora ana jawaban, ora ana jinis, kelas utawa data dicithak.

Karakter gendera liya sing uga ditampilake yaiku `- '(recursion sing kasedhiya, RA, ora disetel) lan` |' (pesen dipotong, TC, disetel). Yen bagean `pitakonan 'ora ngandhut persis siji entri,` [ n q]' dicithak.

Elinga yen panjaluk server lan tanggepan cenderung gedhe lan snaplen standar 68 byte ora bisa njupuk cukup paket kanggo dicithak. Gunakake bendera s kanggo ningkatake snaplen yen sampeyan kudu nggoleki lalu lintas jeneng server kanthi serius. ` 128 'wis kerja keras kanggo aku.

Dekoding SMB / CIFS

tcpdump saiki kalebu decoding SMB / CIFS / NBT sing cukup ekstensif kanggo data UDP / 137, UDP / 138 lan TCP / 139. Sawetara dekoding primitif data IPX lan NetBEUI SMB uga rampung.

Secara default decode nyedhaki paling minimal wis rampung, kanthi decode luwih rinci rampung yen -v digunakake. Dadi sing dielingake yen mawa paket SMB siji bisa njupuk kaca utawa luwih, supaya mung nganggo -v yen sampeyan pengin kabeh rincian sing ora dikepengini.

Yen ana dekoding SMB sing ngemot string unicode, sampeyan uga pengin nyetel variabel lingkungan USE_UNICODE dadi 1. Patch kanggo ndeteksi otomatis unicode srings bakal diwenehi.

Kanggo informasi babagan format paket SMB lan kabeh kolom tegese ndeleng www.cifs.org utawa direktori / samba / spek / direktori ing situs samba.org sing paling disenengi. Tatanan SMB ditulis dening Andrew Tridgell (tridge@samba.org).

Panyuwunan lan Balesan NFS

Sun NFS (Sistem File Network) panjalukan lan balesan dicithak kaya:

src.xid> dst.nfs: len op args src.nfs> dst.xid: reply stat len ​​op results sushi.6709> wrl.nfs: 112 readlink fh 21,24 / 10.73165 wrl.nfs> sushi.6709: reply ok 40 readlink "../var" sushi.201b> wrl.nfs: 144 lookup fh 9,74 / 4096.6878 "xcolors" wrl.nfs> sushi.201b: reply ok 128 lookup fh 9,74 / 4134.3150

Ing baris kapisan, inang sushi ngirim transaksi karo id 6709 kanggo wrl (cathet yen angka ing ngisor iki src src iku id transaksi, ora port sumber). Panjaluk kasebut 112 byte, ora kalebu header UDP lan IP. Operasi yaiku readlink (maca link simbolis) ing pegangan file ( fh ) 21,24 / 10.731657119. (Yen ana sing duwe untung, kayata ing kasus iki, gagang berkas bisa diinterpretasikake minangka nomer, nomer nomer perangkat cilik, diiringi nomer inode lan nomer generasi.) Wrl nanggepi `ok 'kanthi isi link.

Ing baris kaping telu, sushi nyuwun wrl kanggo nggoleki jeneng ` xcolors 'ing file direktori 9,74 / 4096.6878. Elinga yen data sing dicithak gumantung ing jinis operasi. Format kasebut dimaksudake dadi panjelasan poto yen diwaca bareng karo protokol NFS.

Yen flag -v (verbose) diwenehi, informasi tambahan dicithak. Tuladhane:

sushi.1372a> wrl.nfs: 148 read fh 21,11 / 12.195 8192 bytes @ 24576 wrl.nfs> sushi.1372a: reply ok 1472 read REG 100664 id 417/0 sz 29388

(-v uga nyithak header IP TTL, ID, dawa, lan fragmentasi, sing wis diabaikan saka conto iki.) Ing baris pisanan, sushi nyuwun wrl kanggo maca 8192 bytes saka file 21,11 / 12.195, ing byte offset 24576. Wrl babagan 'ok'; paket kasebut ditampilake ing baris kapindho yaiku pecahan pisanan balesan, lan kanthi mangkono mung 1472 bita dawa (bita liyane bakal ngetutake ing fragmen sabanjure, nanging fragmen iki ora duwe NFS utawa malah header UDP lan dadi ora bisa dicithak, gumantung ekspresi filter sing digunakake). Amarga bendera -v diwenehi, sawetara atribut berkas (sing dikantheni saliyane data file) dicithak: jinis file (`` REG '', kanggo file biasa), mode file (ing octal), ing uid lan gid, lan ukuran berkas.

Yen bendera -v diwenehi luwih saka sapisan, luwih rinci dicithak.

Elinga yen panjaluk NFS gedhe banget lan akeh detail sing ora bakal dicithak kajaba snaplen tambah. Coba gunakake ` -s 192 'kanggo nonton lalu lintas NFS.

Paket NFS reply ora kanthi tegas ngenali operasi RPC. Nanging, tcpdump nglacak panjaluk `'anyar' ', lan cocog karo pitakon nganggo ID transaksi kasebut. Yen jawaban ora cocog karo panjaluk sing cocog, sampeyan ora bisa parsable.

Panyuwunan AFS lan Balesan

Transarc AFS (Andrew File System) panjalukan lan balesan dicithak minangka:

src.sport> dst.dport: rx packet-type src.sport> dst.dport: rx paket-call service call-name args src.sport> dst.dport: rx paket-type service reply call-name args elvis. 7001> pike.afsfs: rx data fs call rename old fid 536876964/1/1 ".newsrc.new" new fid 536876964/1/1 ".newsrc" pike.afsfs> elvis.7001: rx data fs reply rename

Ing baris pisanan, host elvis ngirim paket RX menyang pike. Iki minangka paket data RX kanggo layanan fs (fileserver), lan minangka wiwitan pangguna RPC. Panggilan RPC yaiku jeneng panganggo, karo id file direktori lawas saka 536876964/1/1 lan jeneng file lawas `.newsrc.new ', lan id file direktori anyar saka 536876964/1/1 lan jeneng file anyar`. newsrc '. Pike inang nanggapi karo jawaban RPC kanggo jeneng pangganti (sing sukses, amarga iku paket data lan ora paket abort).

Umumé, sedaya AFS RPCs dibusak paling ora kanthi jeneng panggilan RPC. Paling AFS RPCs duwe sethithik sawetara argumen sing di-decoded (umum mung argumen `menarik ', kanggo sawetara definisi sing menarik).

Format kasebut dimaksudkan kanggo nggambarake dhewe, nanging mbokmenawa ora bisa migunani kanggo wong sing ora kenal karo pakaryan AFS lan RX.

Yen flag -v (verbose) diwenehi kaping pindho, paket pengantar lan informasi header tambahan dicithak, kayata ID pangguna RX, nomer telpon, nomer urut, nomer seri, lan bendera paket RX.

Yen bendha -v diwenehi kaping pindho, informasi tambahan dicithak, kayata ID pangguna RX, nomer seri, lan bendera paket RX. Informasi negosiasi MTU uga dicithak saka paket RX.

Yen flag -v diwenehi kaping telu, indeks keamanan lan id layanan dicithak.

Kode kesalahan dicithak kanggo paket abort, kajaba paket beacon Ubik (amarga paket abort digunakake kanggo nandakake voting ya kanggo protokol Ubik).

Elinga yen panjaluk AFS gedhe banget lan akeh argumen ora bakal dicithak kajaba snaplen tambah. Coba nggunakake ` -s 256 'kanggo nonton lalu lintas AFS.

Paket balesan AFS ora kanthi jelas ngenali operasi RPC. Nanging, tcpdump nglacak panjaluk `'anyar' ', lan cocog karo balesan nggunakake nomer telpon lan layanan ID. Yen jawaban ora cocog karo panjaluk sing cocog, sampeyan ora bisa parsable.

KIP Appletalk (DDP in UDP)

Paket DDP Appletalk sing dikuncalke ing UDP datagrams dikurangi lan dibuang minangka paket DDP (ie, kabeh informasi header UDP dibuang). File /etc/atalk.names digunakake kanggo nerjemahake appletalk net and node numbers kanggo jeneng. Garis ing berkas iki duwe wujud

jeneng nomer 1.254 èt 16.1 icsd-net 1.254.110 ace

Loro baris pisanan menehi jeneng-jeneng appletalk jaringan. Garis ketiga menehi jeneng host tartamtu (inang dibedakake saka jaring kanthi octet kaping telu ing nomer - nomer net kudu duwe loro octet lan nomer inang kudu duwe telung witjaksono.) Nomer lan jeneng kudu dipisahake dening whitespace (kosong utawa tab). File /etc/atalk.names bisa ngemot garis kosong utawa garis komentar (garis sing diawali karo `# ').

Alamat Appletalk dicithak ing formulir:

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

(Yen /etc/atalk.names ora ana utawa ora ngemot entri kanggo sawetara host / net nomer appletalk, alamat dicithak ing wangun numerik.) Contone, NBP (port DDP 2) ing net 144.1 simpul 209 dikirim menyang kabeh sing ngrungokake ing port 220 saka net icsd node 112. Jalur kapindho iku padha kajaba jeneng lengkap saka sumber simpul dikenal (`kantor '). Baris kaping telu yaiku kirim saka port 235 ing net jssmag node 149 kanggo disiyarake ing port NBP net icsd-net (catet yen alamat siaran (255) dituduhake dening jeneng net lan ora ana nomer inang - mulane ya apik supaya jeneng simpul lan jeneng net béda ing /etc/atalk.names).

NBP (protokol mbagekake jeneng) lan paket (ATP) protokol Transaksi Appletalk duwe interpretasi. Protokol liya mung mbucal jeneng protokol (utawa nomer yen ora jeneng didhaptar kanggo protokol) lan ukuran paket.

Paket NBP diformat kaya conto ing ngisor iki:

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

Baris kapisan yaiku panyuwunan jeneng kanggo panulis laser sing dikirim dening net host 112 lan siaran ing jssmag net. ID nbp kanggo goleki iku 190. Baris kapindho nuduhake balesan kanggo panjaluk iki (cathet yen wis id sing padha) saka inang jssmag.209 sing ngandhani duwe sumber narator laser sing dijenengi "RM1140" sing didaftar ing port 250. Katelu baris reply liyane kanggo panjaluk padha ngandika host techpit wis laserwriter "techpit" kadhaptar ing port 186.

Format paket ATP dituduhake dening conto ing ngisor iki:

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: (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 ngetokake transaksi id 12266 kanthi helios kanthi njaluk nganti 8 paket (`<0-7> '). Nomer hex ing mburi baris yaiku nilai saka field `userdata 'ing panjalukan.

Helios nanggapi kanthi 8 paket 512-bait. `` Digit 'sawise id transaksi menehi nomer urutan paket ing transaksi lan jumlah ing parens minangka jumlah data ing paket, ora kalebu header atp. `` 'Ing paket 7 nuduhake yen bit EOM wis disetel.

Jssmag.209 banjur njaluk sing paket 3 & 5 dikirim maneh. Helios nerusake maneh banjur jssmag.209 ngetokake transaksi kasebut. Wekasane, jssmag.209 miwiti panjaluk sabanjure. `` 'Ing panyuwunan kasebut nuduhake yen XO (`sakperuse sepisan' ' ora ditemtokake.

IP Fragmentation

Datagrams Internet fragmented dicithak minangka

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

(Wangun pisanan nuduhake ana pecahan sing luwih akeh. Angka liya nuduhake iki pecahan pungkasan.)

Id iku id fragmen. Ukuran yaiku ukuran fragment (ing bita) ora kalebu header IP. Offset yaiku fragmen iki (ing bita) ing datagram asli.

Informasi fragmen punika output kanggo saben fragmen. Potongan pisanan ngemot header protokol tingkat sing luwih dhuwur lan info sing dicetak dicetak sawise info protokol. Pecah sawise pisanan ora ngemot header protokol tingkat sing luwih dhuwur lan info bab dicithak sawise alamat lan alamat tujuan. Contone, yaiku bagean saka ftp saka arizona.edu kanggo lbl-rtsg.arpa liwat sambungan CSNET sing ora katon kanggo nangani 576 bytes datagrams:

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

Ana pirang-pirang perkara sing diwenehi tandha ing kene: dhisik, alamat ing baris 2 ora kalebu nomer port. Iki amarga informasi protokol TCP kabeh ana ing fragmen kapisan lan kita ora ngerti apa port utawa nomer urut nalika kita nyetak fragmen sing luwih anyar. Kapindho, informasi urutan tcp ing baris kapisan dicithak kaya ana 308 bita data pangguna nalika, ing kenyataane, ana 512 bita (308 ing pecahan kapisan lan 204 ing bageyan angka kapindho). Yen sampeyan lagi nggoleki bolongan ing urutan urutane utawa nyoba nggoleki acks karo paket, iki bisa ngapusi sampeyan.

A paket mawa IP ora flag flag sing ditandhani karo trailing (DF) .

Timestamps

Secara default, kabeh garis output bakal diwiwiti kanthi wektu. Timestamp iku jam wektu sing saiki ing wangun

hh: mm: ss.frac

lan minangka akurat minangka jam kernel. Timestamp nggambarake wektu kernel pertama weruh paket kasebut. Ora ana upaya digawe kanggo nyathet sithik wektu nalika antarmuka ethernet mbusak paket kasebut saka kawat lan nalika kernel nglayani 'paket anyar' ngganggu.

DELOKEN SISAN

lalu lintas (1C), nit (4P), bpf (4), pcap (3)

Penting: Gunakake perintah wong ( % man ) kanggo ndeleng carane printah sing digunakake ing komputer sampeyan.