Tcpdump - Linux Command - Unix Command

NAAM

tcpdump - dump verkeer op 'n netwerk

SINOPSIS

tcpdump [ -adeflnNOpqRStuvxX ] [ -c count ]

[ -C file_size ] [ -F file ]

[ -i koppelvlak ] [ -m module ] [ -r lêer ]

[ -s snaplen ] [ -T tipe ] [ -U gebruiker ] [ -w lêer ]

[ -E algo: geheime ] [ uitdrukking ]

BESKRYWING

Tcpdump druk die hoofde van pakkies uit op 'n netwerkkoppelvlak wat ooreenstem met die Boole- uitdrukking . Dit kan ook met die -w vlag uitgevoer word, wat veroorsaak dat dit die pakketdata na 'n lêer stoor vir latere analise, en / of met die -r vlag wat veroorsaak dat dit uit 'n gestoor pakkie lêer lees, eerder as om pakkies te lees van 'n netwerk koppelvlak. In alle gevalle sal slegs pakkies wat ooreenstem met uitdrukking , verwerk word deur tcpdump .

Tcpdump sal, indien nie met die -c- vlag uitgevoer word, voortgaan met die vaslegging van pakkies totdat dit deur 'n SIGINT-sein onderbreek word (byvoorbeeld deur u onderbrekingsteken te tik, tipies beheer-C) of 'n SIGTERM-sein (1) bevel); As dit met die -c- vlag loop, sal dit pakkies vang totdat dit deur 'n SIGINT- of SIGTERM-sein onderbreek word of die gespesifiseerde aantal pakkies verwerk is.

Wanneer tcpdump klaar is met die vaslegging van pakkies, sal dit tellings van:

pakkette `` ontvang deur filter '' (die betekenis hiervan hang af van die bedryfstelsel waarop u tcpdump uitvoer , en moontlik op die manier waarop die bedryfstelsel ingestel is - indien 'n filter op die opdraglyn gespesifiseer is, op sommige OSes dit tel pakkies, ongeag of hulle deur die filteruitdrukking ooreenstem, en op ander OSes tel dit slegs pakkies wat ooreenstem met die filteruitdrukking en verwerk is deur tcpdump );

Pakkette word deur kernel laat val (dit is die aantal pakkies wat weens 'n gebrek aan bufferruimte deur die pakkie-inskakelmeganisme in die bedryfstelsel waarop tcpdump loop, laat val as die OS die inligting aan programme versend; indien nie, sal dit gerapporteer word as 0).

Op platforms wat die SIGINFO-sein ondersteun, soos die meeste BSD'e, sal dit daardie tellings rapporteer wanneer dit 'n SIGINFO-sein ontvang (byvoorbeeld, deur jou `` status''-karakter, tipies beheer-T) te tik en sal pakkette voortgaan .

Leespakkette vanaf 'n netwerkkoppelvlak kan vereis dat u spesiale voorregte het:

Onder SunOS 3.x of 4.x met NIT of BPF:

U moet lees toegang hê na / dev / nit of / dev / bpf * .

Onder Solaris met DLPI:

U moet lees / skryf toegang hê tot die netwerk pseudo-toestel, bv. / Dev / le . Op ten minste sommige weergawes van Solaris is dit egter nie voldoende om tcpdump in die losbandige modus te laat vaar nie. Op daardie weergawes van Solaris moet jy wortel wees, of tcpdump moet setuid in die wortel geïnstalleer word, om in die promiskuuste modus vas te lê. Let op dat, op baie (miskien alle) koppelvlakke, as jy nie in promiskuuse modus vang nie, sal jy geen uitgaande pakkies sien nie, dus kan 'n opname wat nie in die losbandige modus gedoen word nie, nie baie nuttig wees nie.

Onder HP-UX met DLPI:

U moet wortel wees of tcpdump moet setuid aan root installeer.

Onder IRIX met snoop:

U moet wortel wees of tcpdump moet setuid aan root installeer.

Onder Linux:

U moet wortel wees of tcpdump moet setuid aan root installeer.

Onder Ultrix en Digital UNIX / Tru64 UNIX:

Enige gebruiker kan netwerkverkeer met tcpdump vang. Geen gebruiker (nie eens die supergebruiker nie) kan op 'n koppelvlak in promiskuustoestand opneem, tensy die supergebruiker op die koppelvlak op die koppelvlak gebruik gemaak het deur pfconfig (8) te gebruik, en geen gebruiker (nie eens die supergebruiker nie ) kan unicast verkeer ontvang deur of gestuur word deur die masjien op 'n koppelvlak, tensy die super-gebruiker kopie-alles-modus operasie op die koppelvlak gebruik deur pfconfig te gebruik , so nuttige pakkie-opname op 'n koppelvlak vereis waarskynlik dat dit ook promiskuus of afskrif -alle-modus-operasie, of albei maniere van operasie, word aangeskakel op die koppelvlak.

Onder BSD:

U moet lees toegang hê na / dev / bpf * .

Om 'n geredepakte pakkie te lees, vereis nie spesiale voorregte nie.

OPTIONS

-a

Poging om die netwerk om te skakel en om adresse na name uit te saai.

-c

Afrit nadat jy telpakkette ontvang het.

-C

Voordat jy 'n rou pakkie na 'n savefile skryf, maak seker of die lêer tans groter is as file_size en sluit indien wel die huidige savefile en maak 'n nuwe een oop. Slaan lêers na die eerste savefile sal die naam wat gespesifiseer is met die -w vlag, met 'n nommer daarna, begin om 2 en opwaarts gaan. Die eenhede van file_size is miljoene grepe (1.000.000 grepe, nie 1.048.576 grepe nie).

d

Dompel die saamgestelde pakket ooreenstemende kode in 'n mens leesbare vorm na die standaard uitvoer en stop.

-dd

Dump pakkie-ooreenstemmende kode as 'n C- programfragment.

-ddd

Dump pakkie-ooreenstemmende kode as desimale getalle (voorafgegaan met 'n telling).

-e

Druk die skakelvlakkop op elke dumplyn.

-E

Gebruik algo: geheime vir die dekripsie van IPsec ESP pakkette. Algoritmes kan descbc , 3des-cbc , blowfish-cbc , rc3-cbc , cast128-cbc , of none wees . Die standaard is des-cbc . Die vermoë om pakkies te dekripteer is slegs teenwoordig as tcpdump saamgestel is met kriptografie aangeskakel. Geheim die ASCII-teks vir ESP geheime sleutel. Ons kan op hierdie oomblik nie arbitrêre binêre waarde aanvaar nie. Die opsie aanvaar RFC2406 ESP, nie RFC1827 ESP nie. Die opsie is slegs vir ontfouting, en die gebruik van hierdie opsie met 'n werklike `geheime 'sleutel word ontmoedig. Deur IPsec geheime sleutel op die opdraglyn te gee, maak u dit vir ander sigbaar, via ps (1) en ander geleenthede.

f

Druk 'buitelandse' internetadresse numeries eerder as simbolies (hierdie opsie is bedoel om ernstige breinskade in Sun se ypserver te kry. Dit hang gewoonlik van nie-plaaslike internetnommers).

-F

Gebruik die lêer as invoer vir die filter uitdrukking. 'N Bykomende uitdrukking wat op die opdraglyn gegee word, word geïgnoreer.

-i

Luister op koppelvlak . As ongespesifiseerde, soek tcpdump die stelselkoppelvlaklys vir die laagste genommerde, gekonfigureerde koppelvlak (uitgesluit loop terug). Bande word gebreek deur die vroegste wedstryd te kies.

Op Linux-stelsels met 2.2 of later pitte, kan 'n koppelvlakargument van `` enige '' gebruik word om pakkies van alle koppelvlakke te vang. Let daarop dat vangste op die `` enige''-toestel nie in promiskuuse modus gedoen sal word nie.

-l

Maak stdout-lyn gebuffer. Nuttig as jy die data wil sien terwyl jy dit vasvang. bv,
`` tcpdump -l | tee dat '' of `` tcpdump -l> dat & stert -f dat ''.

-m

Laai SMI MIB module definisies van lêer module . Hierdie opsie kan verskeie kere gebruik word om verskeie MIB-modules in tcpdump te laai.

-n

Moenie gasheeradresse omskep na name nie. Dit kan gebruik word om DNS-soektogte te voorkom.

-nn

Moet nie protokol- en poortnommers, ens. Omskep nie.

-N

Moenie die domeinnaam kwalifikasie van gasheer name druk nie. Byvoorbeeld, as u hierdie vlag gee, sal tcpdump `` nic '' in plaas van `` nic.ddn.mil '' druk.

-O

Moenie die pakket-matching kode optimaliseerder hardloop nie. Dit is slegs nuttig as u 'n fout in die optimaliseerder vermoed.

p

Moenie die koppelvlak in promiskuuse modus plaas nie. Let op dat die koppelvlak om 'n ander rede in die losbandige modus kan wees; Daarom kan `-p 'nie gebruik word as 'n afkorting vir 'n eter-gasheer (plaaslike-hw-addr) of etersending nie.

-q

Vinnige (stil?) Uitset. Druk minder protokolinligting af sodat uitsetlyne korter is.

-R

Aanvaar dat ESP / AH pakkette gebaseer is op ou spesifikasie (RFC1825 tot RFC1829). Indien gespesifiseer, sal tcpdump nie herhaling voorkomingsveld druk nie. Aangesien daar geen protokol weergawe veld in ESP / AH spesifikasie is nie, kan tcpdump nie die weergawe van ESP / AH protokol aflei nie.

r

Lees pakkies van lêer (wat geskep is met die -w opsie). Standaard insette word gebruik as lêer `` - '' is.

-S

Druk absolute, eerder as relatiewe, TCP volgorde nommers.

s

Snarf snaplen grepe van data van elke pakkie eerder as die standaard van 68 (met SunOS se NIT, die minimum is eintlik 96). 68 grepe is geskik vir IP, ICMP, TCP en UDP, maar kan protokolinligting van naam bediener en NFS pakkette afskakel (sien hieronder). Pakkette afgeknip as gevolg van 'n beperkte momentopname word in die uitset aangedui met `` [[ proto ] '', waar proto die naam van die protokolvlak is waarop die afkorting plaasgevind het. Let daarop dat die neem van groter foto's beide die hoeveelheid tyd wat dit neem om pakkies te verwerk, verhoog en effektief die hoeveelheid pakketbuffering verminder. Dit kan veroorsaak dat pakkies verlore raak. Jy moet die snaplen beperk tot die kleinste nommer wat die protokolinligting sal bevat wat jy belangstel. Om snaplen tot 0 te stel, gebruik die vereiste lengte om volledige pakkies te vang.

-T

Kragpakkette gekies deur " uitdrukking " om die gespesifiseerde tipe te interpreteer. Tans bekende tipes is cnfp (Cisco NetFlow-protokol), rpc (Remote Procedure Call), rtp (protokol vir real-time toepassings), rtcp (kontrolesprotokol vir real-time programme), snmp (Simple Network Management Protocol) ), en wb (verspreide wit raad).

t

Moenie ' n tydstempel op elke dumplyn druk nie.

-tt

Druk 'n onformateerde tydstempel op elke stortlyn.

-U

Druppel wortel voorregte en verander gebruiker ID na gebruiker en groep ID na die primêre groep van die gebruiker .

Let op! Red Hat Linux val outomaties die voorregte om '`patch' 'te gebruik as niks anders gespesifiseer word nie.

-ttt

Druk 'n delta (in mikro-sekondes) tussen huidige en vorige reëls op elke dumplyn.

-tttt

Druk 'n tydstempel in die verstekformaat voort met datum op elke dumplyn.

-U

Druk ongecodeerde NFS-handvatsels.

v

(Bietjie meer) verbose uitset. Byvoorbeeld, die tyd om te lewe, identifikasie, totale lengte en opsies in 'n IP-pakket word gedruk. Bied ook bykomende pakkette-integriteitstoetse in, soos die verifikasie van die IP en ICMP koptekensum.

vv

Nog meer verbose uitset. Bykomende velde word byvoorbeeld van NFS-antwoordpakkette gedruk, en SMB-pakkies is ten volle gedekodeer.

-vvv

Nog meer verbose uitset. Byvoorbeeld, Telnet SB ... SE opsies is ten volle gedruk. Met -X telnet opsies word ook in heks gedruk.

w

Skryf die rou pakkies na lêer eerder as om te ontleed en uit te druk. Hulle kan later met die -r opsie gedruk word. Standaard uitvoer word gebruik as die lêer `` - '' is.

-x

Druk elke pakkie (minus die skakelvlakkop) in heks. Die kleiner van die hele pakkie of snaplen grepe sal gedruk word. Let daarop dat dit die hele skakellaagpakket is, dus vir die skakellae wat die pad (bv. Ethernet), sal die polsbytes ook gedruk word wanneer die hoërlaagpakket korter is as die vereiste vulling.

-X

By die druk van heks, druk ASCI ook. Dus as -x ook gestel word, word die pakkie in hex / ascii gedruk. Dit is baie handig om nuwe protokolle te ontleed. Selfs as -x nie ook ingestel is nie, kan sommige dele van sommige pakkies in hex / ascii gedruk word.

uitdrukking

kies watter pakkies sal gedumpeer word. As geen uitdrukking gegee word nie, sal alle pakkies op die internet gedump word. Andersins sal slegs pakkies waarvoor die uitdrukking 'waar' is, dump word.

Die uitdrukking bestaan ​​uit een of meer primitiewe. Primitiewe bestaan ​​gewoonlik uit 'n ID (naam of nommer) voorafgegaan deur een of meer kwalifiseerders. Daar is drie verskillende soorte kwalifikasies:

tipe

kwalifiseerders sê watter soort ding die id naam of nommer na verwys. Moontlike tipes is gasheer , net en hawe . Byvoorbeeld, 'host foo', 'net 128.3', 'poort 20'. As daar geen tipe kwalifikasie is nie, word die gasheer aanvaar.

dir

kwalifiseerders spesifiseer 'n bepaalde oordrag rigting na en / of van ID . Moontlike aanwysings is src , dst , src of dst en src en dst . Bv., 'Src foo', `dst net 128.3 ',' src of dst port ftp-data '. As daar geen dir kwalifiseerder is nie, word src of dst aanvaar. Vir 'nul' skakellae (dws punt-punt-protokolle soos strokie) kan die inkomende en uitgaande kwalifiseerders gebruik word om 'n verlangde rigting te spesifiseer.

proto

kwalifiseerders beperk die wedstryd tot 'n spesifieke protokol. Moontlike protos is: eter , fddi , tr , ip , ip6 , arp , rarp , decnet , tcp en udp . Bv., 'Ether src foo', 'arp net 128.3', `tcp poort 21 '. As daar geen proto-kwalifikasie is nie, word alle protokolle in ooreenstemming met die tipe aanvaar. Bv. 'Src foo' beteken `(ip of arp of rarp) src foo '(behalwe laasgenoemde is nie 'n wettige sintaksis nie),' netbalk 'beteken` (ip of arp of rarp) netbalk' en 'poort 53' `(tcp of udp) poort 53 '.

[`fddi 'is eintlik 'n alias vir` eter'; die parser behandel hulle identies as `` die data-skakelvlak wat op die gespesifiseerde netwerkkoppelvlak gebruik word. '' FDDI-hoofde bevat Ethernet-agtige bron- en bestemmingsadresse, en bevat dikwels Ethernet-agtige pakkettipes, sodat jy op hierdie FDDI-velde kan filter net soos met die analoge Ethernet velde. FDDI-hoofde bevat ook ander velde, maar u kan dit nie eksplisiet noem in 'n filter uitdrukking nie.

Net so is `tr ''n alias vir` `eter' '; die vorige paragraaf se stellings oor FDDI-hoofde is ook van toepassing op Token Ring-hoofde.]

Benewens bogenoemde is daar 'n paar spesiale "primitiewe" sleutelwoorde wat nie die patroon volg nie: gateway , uitsending , minder , groter en rekenkundige uitdrukkings. Al hierdie is hieronder beskryf.

Meer komplekse filter uitdrukkings word opgebou deur gebruik te maak van die woorde en , of om nie primitiewe te kombineer nie. Bv., 'Host foo' en nie poort ftp en nie poort ftp-data 'nie. Om tik te stoor, kan identiese kwalifiseringslyste weggelaat word. Byvoorbeeld, `tcp dst port ftp of ftp-data of domain 'is presies dieselfde as` tcp dst port ftp of tcp dst port ftp-data of tcp dst port domain'.

Toelaatbare primitiewe is:

dst gasheer gasheer

Waar of die IPv4 / v6 bestemmingsveld van die pakkie gasheer is , wat 'n adres of 'n naam mag wees.

src gasheer gasheer

Waar of die IPv4 / v6 bron veld van die pakkie gasheer is .

gasheer gasheer

Waar of die IPv4 / v6 bron of bestemming van die pakkie gasheer is . Enige van die bogenoemde gasheeruitdrukkings kan opgestel word met die sleutelwoorde, ip , arp , rarp of ip6 soos in:

ip gasheer gasheer

wat gelykstaande is aan:

eter proto \ ip en gasheer gasheer

As gasheer 'n naam met verskeie IP-adresse is, sal elke adres nagegaan word vir 'n wedstryd.

ether dst ehost

Waar as die Ethernet-bestemmingsadres ehost is . Ehost kan óf 'n naam wees van / etc / ethers of 'n nommer (sien eters (3N) vir numeriese formaat).

ether src ehost

Waar as die Ethernet-bron adres ehost is .

eter gasheer ehost

Waar of die Ethernet-bron of bestemmingsadres ehost is .

gateway gasheer

Waar as die pakkie gasheer as 'n poort gebruik. Dws die Ethernet-bron of bestemmingsadres was gasheer, maar nie die IP-bron of die IP-bestemming was gasheer nie . Die gasheer moet 'n naam wees en moet gevind word deur die masjien se hostnaam-tot-IP-adres-resolusiemeganismes (hostnaam lêer, DNS, NIS, ens.) En deur die masjien se hostnaam-na-Ethernet-adres resolusie meganisme (/ ens / eters, ens.). ('N Ekwivalente uitdrukking is

eter gasheer ehost en nie gasheer gasheer

wat gebruik kan word met name of nommers vir gasheer / ehost .) Hierdie sintaksis werk tans nie in die IPv6-geaktiveerde konfigurasie nie.

dst netto netto

Waar as die IPv4 / v6 bestemmingsadres van die pakkie 'n netwerknommer van net het . Net kan óf 'n naam wees van / etc / netwerke of 'n netwerknommer (sien netwerke (4) vir besonderhede).

src net net

Waar of die IPv4 / v6-bronadres van die pakkie 'n netwerknommer van net het .

netto netto

Waar of die IPv4 / v6 bron of bestemmingsadres van die pakkie 'n netwerknommer van net het .

netto netmasker netmasker

Waar as die IP-adres net by die spesifieke netmasker pas . Kan gekwalifiseer word met src of dst . Let daarop dat hierdie sintaksis nie geldig is vir IPv6- net nie .

netto netto / len

Waar as die IPv4 / v6-adres net met 'n netmasker ooreenstem, is die bits wyd. Kan gekwalifiseer word met src of dst .

dst poort poort

Waar as die pakket ip / tcp, ip / udp, ip6 / tcp of ip6 / udp is en 'n bestemmingspoortwaarde van poort het . Die poort kan 'n nommer of 'n naam wees wat in / etc / services gebruik word (sien tcp (4P) en udp (4P)). As 'n naam gebruik word, word beide die poortnommer en protokol nagegaan. As 'n nommer of dubbelsinnige naam gebruik word, word slegs die poortnommer nagegaan (bv. Dst port 513 sal beide tcp / login verkeer en udp / wie verkeer, en poort domein druk beide tcp / domein en udp / domein verkeer).

src poort poort

Waar as die pakkie 'n bron hawe waarde van hawe het .

hawe hawe

Waar of die bron of bestemmingspoort van die pakkie hawe is . Enige van die bogenoemde poortuitdrukkings kan opgestel word met die sleutelwoorde, tcp of udp , soos in:

tcp src poort poort

wat net tcp pakkies pas waarvan die bronpoort poort is.

minder lengte

Waar as die pakkie 'n lengte van minder as of gelyk aan lengte het . Dit is gelykstaande aan:

len <= lengte .

groter lengte

Waar as die pakkie langer as of gelyk aan lengte het . Dit is gelykstaande aan:

len> = lengte .

ip protokol

Waar as die pakket 'n IP pakket is (sien ip (4P)) van protokol tipe protokol . Protokol kan 'n getal of een van die name icmp , icmp6 , igmp , igrp , pim , ah , esp , vrrp , udp of tcp wees . Let daarop dat die identifiseerders tcp , udp en icmp ook sleutelwoorde is en moet ontsnap word deur terugslag (\), wat \\ in die C-dop is. Let daarop dat hierdie primitiewe nie die protokolhoofketting agtervolg nie.

ip6 protokol protokol

Waar as die pakkie 'n IPv6-pakket protokol tipe protokol is . Let daarop dat hierdie primitiewe nie die protokolhoofketting agtervolg nie.

ip6 protochain protokol

Waar as die pakket 'n IPv6-pakket is, en bevat protokolkopie met tipe protokol in die protokolkopteketting. Byvoorbeeld,

ip6 protokol 6

pas by enige IPv6-pakkie met die TCP-protokolkop in die protokolkopketting. Die pakkie kan byvoorbeeld 'n verifikasiekop, roeteeropskrif of hop-by-hop opsiekop bevat, tussen IPv6-koptekst en TCP-koptekst. Die BPF-kode wat deur hierdie primitiewe uitgestraal is, is kompleks en kan nie deur BPF optimizer kode in tcpdump geoptimaliseer word nie, dus dit kan ietwat stadig wees.

ip protokolle protokol

Ekwivalent aan ip6 protochain protokol , maar dit is vir IPv4.

eter uitsending

Waar as die pakkie 'n Ethernet-uitsendingpakket is. Die eter navraag is opsioneel.

ip uitsending

Waar as die pakkie 'n IP-uitsendingpakket is. Dit kontroleer vir beide die all-zeroes en all-ones uitsending konvensies, en kyk na die plaaslike subnet masker.

eter multicast

Waar as die pakkie 'n ethernet multicast pakket is. Die eter navraag is opsioneel. Dit is kortliks vir ` eter [0] & 1! = 0 '.

ip multicast

Waar as die pakkie 'n IP multicast-pakkie is.

ip6 multicast

Waar as die pakkie 'n IPv6 multicast pakket is.

eter protokol protokol

Waar as die pakkie van eter tipe protokol is . Protokol kan 'n getal of een van die name ip , ip6 , arp , rarp , atalk , aarp , decnet , sca , lat , mopdl , moprc , iso , stp , ipx of netbeui wees . Let daarop dat hierdie identifiseerders ook sleutelwoorde is en moet ontsnap word deur middel van terugslag (\).

[In die geval van FDDI (bv. ' Fddi protokol arp ') en Token Ring (bv. ` Tr protokol arp '), kom die protokolidentifisering vir die meeste van die protokolle af van die 802.2 Logical Link Control (LLC) header wat word gewoonlik gelaagd bo-op die FDDI- of Token Ring-kop.

Wanneer u vir die meeste protokol identifiseeraars op FDDI of Token Ring filter, tcpdump slegs die protokol ID-veld van 'n LLC-header in sogenaamde SNAP-formaat met 'n Organisasie-eenheididentifikator (OUI) van 0x000000, vir ingekapselde Ethernet, kontroleer. Dit kyk nie of die pakkie in SNAP-formaat is met 'n OUI van 0x000000 nie.

Die uitsonderings is ISO , waarvoor dit die DSAP (Bestemming Diens Toegangspunt) en SSAP (Brondiens Toegangspunt) velde van die LLC-header, stp en netbeui kontroleer, waar dit die DSAP van die LLC- kopvel en Atalk kontroleer , waar dit tjeks vir 'n SNAP-formaatpakket met 'n OUI van 0x080007 en die Appletalk-etipe.

In die geval van Ethernet, tcpdump kontroleer die Ethernet tipe veld vir die meeste van die protokolle; Die uitsonderings is iso , sap en netbeui , waarvoor dit 'n 802.3-raam kontroleer en dan die LLC-header kontroleer soos dit vir FDDI en Token Ring, atalk , waar dit beide vir die Appletalk-etipe in 'n Ethernet-raam en vir 'n SNAP- formaatpakket soos dit vir FDDI en Token Ring, aarp , waar dit vir die Appletalk ARP-etipe in 'n Ethernet-raam of 'n 802.2 SNAP-raam kontroleer met 'n OUI van 0x000000, en ipx , waar dit vir die IPX-etipe kontroleer 'n Ethernet-raam, die IPX DSAP in die LLC-header, die 802.3 met geen inkopie van LLC-koptekste van IPX en die IPX-etipe in 'n SNAP-raam.]

decnet src host

Waar of die DECNET-bronadres gasheer is , wat 'n adres van die vorm '' 10.123 '' of 'n DECNET-gasheernaam kan wees. [Die ondersteuning van die bedienernaam van DECNET is slegs beskikbaar op Ultrix-stelsels wat ingestel is om DECNET uit te voer.]

decnet dst host

Waar as die bestemmingsadres van die DECNET gasheer is .

decnet host host

Waar of óf die DECNET bron of bestemmingsadres gasheer is .

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

Afkortings vir:

eter proto p

waar p een van die bogenoemde protokolle is.

lat , moprc , mopdl

Afkortings vir:

eter proto p

waar p een van die bogenoemde protokolle is. Let daarop dat tcpdump tans nie weet hoe om hierdie protokolle te ontleed nie.

vlan [vlan_id]

Waar as die pakkie 'n IEEE 802.1Q VLAN-pakkie is. As [vlan_id] gespesifiseer is, is slegs waar die pakkie het die gespesifiseerde vlan_id . Let daarop dat die eerste vlan navraag wat in uitdrukking voorkom , die dekoderende verrekeningsveranderings vir die res van die uitdrukking verander op die veronderstelling dat die pakkie 'n VLAN-pakkie is.

tcp , udp , icmp

Afkortings vir:

ip proto p of ip6 proto p

waar p een van die bogenoemde protokolle is.

iso protokol

Waar as die pakkie 'n OSI-pakket protokol tipe protokol is . Protokol kan 'n nommer of een van die name clnp , esis of isis wees .

clnp , esis , isis

Afkortings vir:

iso proto p

waar p een van die bogenoemde protokolle is. Let daarop dat tcpdump 'n onvolledige taak het om hierdie protokolle te ontleed.

expr relop expr

Waar is die relasie, waar relop is een van>, <,> =, <=, =,! = En expr is 'n rekenkundige uitdrukking wat bestaan ​​uit heelgetalkonstantes (uitgedruk in standaard C-sintaks), die normale binêre operatore [+ , -, *, /, &, |], 'n lengte operateur, en spesiale pakket data accessors. Om toegang tot data binne die pakkie te verkry, gebruik die volgende sintaksis:

proto [ ekspr : grootte ]

Proto is een van eter, fddi, tr, ppp, glip, skakel, ip, arp, rarp, tcp, udp, icmp of ip6 , en dui die protokollaag vir die indeksoperasie aan. ( eter, fddi, tr, ppp, strokie en skakel verwys almal na die skakellaag .) Let daarop dat tcp, udp en ander boonste protokolsoorte slegs van toepassing is op IPv4, nie IPv6 nie. Dit sal in die toekoms vasgestel word. Die byteverstelling, relatief tot die aangeduide protokollaag, word gegee deur expr . Grootte is opsioneel en dui die aantal bytes in die veld van belangstelling aan; dit kan óf een, twee of vier wees, en eenmalig. Die lengte operateur, aangedui met die sleutelwoord len , gee die lengte van die pakkie.

Byvoorbeeld, ` ether [0] & 1! = 0 'vang al die multicast-verkeer. Die uitdrukking ` ip [0] & 0xf! = 5 'vang alle IP-pakkies met opsies. Die uitdrukking ` ip [6: 2] & 0x1fff = 0 'vang slegs ongebrokeerde datagramme en frag zero van gefragmenteerde datagramme. Hierdie tjek is implisiet toegepas op die tcp en udp indeks bedrywighede. Byvoorbeeld, tcp [0] beteken altyd die eerste byte van die TCP- kop , en beteken nooit die eerste byte van 'n tussenliggende fragment nie.

Sommige afwykings en veldwaardes kan uitgedruk word as name eerder as as numeriese waardes. Die volgende protokol header veld offsets is beskikbaar: icmptype (ICMP tipe veld), icmpcode (ICMP kode veld), en tcpflags (TCP vlaggies veld).

Die volgende veldwaardes van die ICMP-tipe is beskikbaar: 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 .

Die volgende TCP vlaggerveldwaardes is beskikbaar: tcp-fin , tcp-syn , tcp-rst , tcp-push , tcp-push , tcp-ack , tcp-urg .

Primitiewe kan gekombineer word met:

'N Verharde groep primitives en operateurs (hakies is spesiaal vir die Shell en moet ontsnap word).

Negasie (` ! 'Of` nie ').

Samevoeging (` && 'of` en ').

Wissel (' || ' of ' of ').

Negasie het die hoogste voorrang. Wisselwerking en saamvoeging het gelyke voorrang en assosieer links na regs. Let daarop dat eksplisiete en tokens, nie saamgevoeg nie, nou benodig word vir saamvoeging.

As 'n identifiseerder sonder 'n navraag gegee word, word die mees onlangse sleutelwoord aanvaar. Byvoorbeeld,

nie gasheer vs en ace nie

is kort voor

nie gasheer vs en gasheer ess nie

wat nie verwar moet word nie

nie (gasheer vs of ace)

Uitdrukkingsargumente kan oorgedra word as 'n enkele argument of as veelvoudige argumente, wat ookal geriefliker is. Oor die algemeen, as die uitdrukking Shell-meta karakters bevat, is dit makliker om dit as 'n enkele aangehaalde argument te gee. Veelvuldige argumente word saamgesmelt met spasies voordat dit ontleed word.

VOORBEELDE

Om alle pakkies wat by sononder aankom, te druk:

tcpdump gasheer sonsondergang

Om verkeer tussen helios en warm of aas te druk :

tcpdump host helios en \ (hot or ace \)

Om alle IP pakkette tussen ace en enige gasheer behalwe helios uit te druk :

tcpdump ip host ace en nie helios

Om alle verkeer tussen plaaslike gasheer en gasheer op Berkeley te druk:

tcpdump net ucb-eter

Om alle ftp-verkeer deur die internet gateway snup te druk : (let op dat die uitdrukking aangehaal word om te verhoed dat die dop die hakies vertolk).

tcpdump 'gateway snup en (poort ftp of ftp-data)'

Om verkeer te druk wat nie afkomstig is van of bestem is vir plaaslike leërskare nie (as jy na 'n ander net poort, moet dit nooit op jou plaaslike netwerk wees nie).

tcpdump ip en nie net localnet nie

Om die begin- en eindpakkette (die SYN- en FIN-pakkies) van elke TCP-gesprek wat 'n nie-plaaslike gasheer behels, te druk.

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

Om IP-pakkies langer as 576 grepe te druk wat deur gateway snup gestuur word:

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

Om IP-uitsending of multicast-pakkies te druk wat nie via Ethernet-uitsending of Multicast gestuur is nie :

tcpdump 'eter [0] & 1 = 0 en ip [16]> = 224'

Om alle ICMP-pakkies wat nie echo-versoeke / antwoorde (dws nie-pakkies) nie te druk nie:

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

UITVOERFORMATIE

Die uitvoer van tcpdump is protokol afhanklik. Die volgende gee 'n kort beskrywing en voorbeelde van die meeste formate.

Skakel Vlak Headers

As die '-e'-opsie gegee word, word die koppelvlakopskrif uitgewerk. Op ethernets word die adresse van die bron en bestemming, protokol en pakketlengte gedruk.

Op FDDI-netwerke veroorsaak die '-e'-opsie tcpdump om die' raambeheer'-veld, die bron- en bestemmingsadresse en die pakketlengte te druk. (Die 'raambeheer'-veld bepaal die interpretasie van die res van die pakket. Normale pakkies (soos dié wat IP-datagramme bevat) is async-pakkies, met 'n prioriteitswaarde tussen 0 en 7, byvoorbeeld ` async4 '. Daar word veronderstel dat pakkies 'n 802.2 Logical Link Control (LLC) pakket bevat, die LLC-header word gedruk as dit nie ' n ISO-datagram of 'n sogenaamde SNAP-pakket is nie.

Op Token Ring-netwerke veroorsaak die '-e'-opsie tcpdump om die' toegangsbeheer 'en' raambeheer'-velde, die bron- en bestemmingsadresse en die pakketlengte te druk. Soos op FDDI-netwerke word veronderstel dat pakkies 'n LLC-pakkie bevat. Ongeag of die '-e'-opsie gespesifiseer is of nie, word die bron-routeringinligting gedruk vir brongebruikte pakkies.

(NB: Die volgende beskrywing aanvaar vertroudheid met die SLIP-kompressie-algoritme wat in RFC-1144 beskryf word.)

Op SLIP skakels word 'n rigtingaanwyser (`` I '' vir inkomende '`O' 'vir uitgaande], pakketipe en kompressie-inligting uitgedruk. Die pakketipe word eerste gedruk. Die drie tipes is ip , utcp en ctcp . Geen verdere skakelinligting word vir ip- pakkies gedruk nie. Vir TCP-pakkies word die konneksie-identifiseerder volgens die tipe gedruk. As die pakkie saamgepers word, word die gekodeerde kopskrif uitgedruk. Die spesiale gevalle word uitgedruk as * S + n en * SA + n , waar n die hoeveelheid is waarmee die volgnummer (of volgnummer en ack) verander het. As dit nie 'n spesiale geval is nie, word nul of meer veranderings gedruk. 'N Verandering word aangedui deur U (dringende wyser), W (venster), A (ack), S (volgorde nommer) en I (pakkie ID), gevolg deur 'n delta (+ n of -n) of 'n nuwe waarde (= n). Ten slotte word die hoeveelheid data in die pakkie en saamgeperste koplengte gedruk.

Byvoorbeeld, die volgende reël toon 'n uitgaande saamgeperste TCP pakket, met 'n implisiete verbindings identifiseerder; die ack het verander met 6, die rygetal met 49, en die pakkie ID met 6; daar is 3 grepe data en 6 grepe gekomprimeerde koptekst:

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

ARP / RARP Packets

Arp / rarp uitvoer toon die tipe versoek en sy argumente. Die formaat is bedoel om selfverduidelikend te wees. Hier is 'n kort voorbeeld van die begin van 'n `rlogin 'van host rtsg om csam te host:

Arp wie het Csam vertel RTSG Arp antwoord csam is-by CSAM

Die eerste reël sê dat rtsg 'n arp-pakkie gestuur het wat gevra het vir die Ethernet-adres van die internet-gasheer Csam. Csam antwoord met sy Ethernet-adres (in hierdie voorbeeld is Ethernet-adresse in pette en internetadresse in kleinletters).

Dit sou minder oortollig lyk as ons tcpdump gedoen het -n :

arp wie het 128.3.254.6 vertel 128.3.254.68 arp antwoord 128.3.254.6 is-om 02: 07: 01: 00: 01: c4

As ons tcpdump -e gedoen het , sal die feit dat die eerste pakkie uitgesaai word en die tweede punt-tot-punt is, sigbaar wees:

RTSG Broadcast 0806 64: arp wie het csam vertel rtsg CSAM RTSG 0806 64: arp antwoord csam is-by CSAM

Vir die eerste pakkie sê dit die Ethernet-bronadres is RTSG, die bestemming is die Ethernet-uitsendingsadres. Die tipe veld bevat Hex 0806 (Type ETHER_ARP) en die totale lengte is 64 grepe.

TCP Pakkette

(NB: Die volgende beskrywing aanvaar vertroudheid met die TCP-protokol wat in RFC-793 beskryf word. As u nie vertroud is met die protokol nie, sal hierdie beskrywing of tcpdump u nie veel gebruik nie.)

Die algemene formaat van 'n tcp-protokollyn is:

src> dst: flags data-seqno ack venster dringende opsies

Src en dst is die bron en bestemming IP adresse en poorte. Vlae is 'n kombinasie van S (SYN), F (FIN), P (PUSH) of R (RST) of 'n enkele `. ' (geen vlae). Data-seqno beskryf die gedeelte van die volgorde spasie wat deur die data in hierdie pakkie gedek word (sien voorbeeld hieronder). Ack is die volgnummer van die volgende data verwag die ander rigting op hierdie verbinding. Venster is die aantal grepe ontvang bufferruimte beskikbaar die ander rigting op hierdie verbinding. Urg dui daarop dat daar dringende data in die pakkie is. Opsies is tcp opsies ingesluit in hoekhakies (bv. ).

Src, dst en vlae is altyd teenwoordig. Die ander velde is afhanklik van die inhoud van die pakkie se tcp-protokolkopie en word slegs uitgestuur indien toepaslik.

Hier is die opening gedeelte van 'n rlogin van host rtsg om csam te host.

rtsg.1023> csam.login: S 768512: 768512 (0) oorwinning 4096 csam.login> rtsg.1023: S 947648: 947648 (0) ack 768513 oorwinning 4096 rtsg.1023> csam. teken aan: . ack 1 wen 4096 rtsg.1023> csam.login: P 1: 2 (1) ack 1 wen 4096 csam.login> rtsg.1023 :. ack 2 wen 4096 rtsg.1023> csam.login: P 2:21 (19) ack 1 wen 4096 csam.login> rtsg.1023: P 1: 2 (1) ack 21 wen 4077 csam.login> rtsg.1023: P 2: 3 (1) ack 21 wen 4077 urg 1 csam.login> rtsg.1023: P 3: 4 (1) ack 21 wen 4077 urg 1

Die eerste reël sê dat tcp-poort 1023 op rtsg 'n pakkie na hawe- aanmelding op csam gestuur het. Die S dui aan dat die SYN- vlag gestel is. Die pakketnommer is 768512 en bevat geen data nie. (Die notasie is 'eerste: laaste (nbytes)' wat beteken 'volgorde nommers eerste tot maar nie laaste insluitend nbytes grepe van gebruikers data'.) Daar was geen piggy-backed ack, die beskikbare ontvang venster was 4096 grepe en Daar was 'n maksimum-segment-grootte opsie wat 'n mss van 1024 grepe aanvra.

Csam antwoord met 'n soortgelyke pakkie, behalwe dit bevat 'n piggy-backed ack vir rtsg se SYN. Rtsg acks dan csam se SYN. Die `. ' beteken geen vlae is ingestel nie. Die pakkie bevat geen data nie, dus daar is geen data volgorde nommer nie. Let daarop dat die ack volgnummer is 'n klein heelgetal (1). Die eerste keer dat 'n tcpdump 'n gesprek kry, druk dit die volgnommer uit die pakkie. Op die daaropvolgende pakkies van die gesprek word die verskil tussen die huidige pakkie se volgnommer en hierdie aanvanklike rygetal gedruk. Dit beteken dat volgorde nommers na die eerste kan interpreteer word as relatiewe byte posisies in die gesprek se datastroom (met die eerste data byte elke rigting is `1 '). `-S 'sal hierdie kenmerk ignoreer, wat veroorsaak dat die oorspronklike volgordenommers uitgestuur word.

Op die 6de lyn stuur rtsg csam 19 grepe data (grepe 2 tot 20 in die rtsg -> csam-kant van die gesprek). Die PUSH-vlag word in die pakkie gesit. Op die 7de lyn sê csam dat dit data ontvang het wat deur rtsg gestuur is, maar nie byte 21. Die meeste van hierdie data blykbaar in die sokbuffer sit, want csam se ontvangsvenster het 19 grepe kleiner gekry. Csam stuur ook een byte data na rtsg in hierdie pakkie. Op die 8ste en 9de reëls stuur csam twee grepe van dringende, stoot data na rtsg.

As die momentopname klein genoeg was dat tcpdump die volle TCP-kop nie gevang het nie, interpreteer dit soveel van die kop soos dit kan en dan verslae `` [| tcp ] '' om aan te dui dat die res nie kon geïnterpreteer word nie. As die kop 'n valse opsie bevat (een met 'n lengte wat te klein of verby die einde van die kop is), word dit as `` [ bad opt ] '' aangegee , en interpreteer geen verdere opsies nie (aangesien dit onmoontlik is om te vertel waar hulle begin). As die koplengte aandui dat opsies teenwoordig is, maar die IP-datagramlengte nie lank genoeg is om die opsies eintlik daar te wees nie, word tcpdump dit as `` [ slegte hdr lengte ] '' genoem.

Vang TCP-pakkies met spesifieke vlagkombinasies (SYN-ACK, URG-ACK, ens.)

Daar is 8 bisse in die beheerbits-gedeelte van die TCP-kop:

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

Kom ons neem aan dat ons pakkies wil sien wat gebruik word om 'n TCP-verbinding te vestig. Onthou dat TCP 'n 3-rigting handdrukprotokol gebruik wanneer dit 'n nuwe verbinding initialiseer; die verbindingsvolgorde met betrekking tot die TCP beheerbisse is

1) Beller stuur SYN

2) Ontvanger reageer met SYN, ACK

3) Oproeper stuur ACK

Nou is ons geïnteresseerd in die vaslegging van pakkies wat slegs die SYN-bietjie stel (Stap 1) bevat. Let daarop dat ons nie pakkette van stap 2 (SYN-ACK) wil hê nie, net 'n eenvoudige aanvanklike SYN. Wat ons nodig het, is 'n korrekte filter uitdrukking vir tcpdump .

Onthou die struktuur van 'n TCP-kopkop sonder opsies:

0 15 31 ----------------------------------------------- ------------------ | bron poort | bestemming hawe | -------------------------------------------------- --------------- | volgnummer | -------------------------------------------------- --------------- | erkenningsnommer | -------------------------------------------------- --------------- | HL | rsvd | C | E | U | A | P | R | S | F | venster grootte | -------------------------------------------------- --------------- | TCP checksum | dringende wyser | -------------------------------------------------- ---------------

'N TCP-kop bevat gewoonlik 20 oktate data, tensy opsies teenwoordig is. Die eerste reël van die grafiek bevat oktete 0 - 3, die tweede lyn toon oktete 4 - 7 ens.

Begin om met 0 te tel, die toepaslike TCP-beheerbisse is in Oktober 13:

0 7 | 15 | 23 | 31 ---------------- | --------------- | --------------- | ---------------- | HL | rsvd | C | E | U | A | P | R | S | F | venster grootte | ---------------- | --------------- | --------------- | - --------------- | | 13de octet | | |

Kom ons kyk na octet no. 13:

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

Hierdie is die TCP-beheerbits waarna ons belangstel. Ons het die bisse in hierdie oktet van 0 tot 7, regs na links genommer. Die PSH-bietjie is bietjie nommer 3, terwyl die URG-bietjie nommer 5 is.

Onthou dat ons pakkies wil vang met slegs SYN-stel. Kom ons kyk wat gebeur met octet 13 as 'n TCP datagram arriveer met die SYN-bietjie wat in sy koptekst is:

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

As ons na die kontroles-afdeling kyk, sien ons dat slegs bietjie nommer 1 (SYN) ingestel is.

Gestel dat oktet nommer 13 'n 8-bis ongetekende heelgetal is in die netwerk-byte-bestelling, is die binêre waarde van hierdie oktet

00000010

en sy desimale voorstelling is

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

Ons is amper klaar, want nou weet ons dat as slegs SYN ingestel is, die waarde van die 13de oktet in die TCP-kopskrif, as dit geïnterpreteer word as 'n 8-bis ongetekende heelgetal in netwerkbyte-bestelling, presies 2 moet wees.

Hierdie verhouding kan uitgedruk word as

tcp [13] == 2

Ons kan hierdie uitdrukking as die filter vir tcpdump gebruik om pakkies te sien wat slegs SYN stel:

tcpdump -i xl0 tcp [13] == 2

Die uitdrukking sê "laat die 13de oktet van 'n TCP datagram die desimale waarde 2 hê", wat presies is wat ons wil hê.

Kom ons neem aan dat ons SYN-pakkies moet vang, maar ons gee nie om of ACK of enige ander TCP-beheerbietjie gelyktydig ingestel is nie. Kom ons kyk wat gebeur met octet 13 wanneer 'n TCP datagram met SYN-ACK stel aankom:

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

Nou is bisse 1 en 4 in die 13de oktet. Die binêre waarde van oktet 13 is


00010010

wat vertaal na desimale

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

Nou kan ons nie net 'tcp [13] == 18' in die tcpdump filter uitdrukking gebruik nie, want dit sal net die pakkies kies wat SYN-ACK stel, maar nie dié met slegs SYN-stel nie. Onthou dat ons nie omgee as ACK of enige ander beheerbits ingestel is solank SYN ingestel is nie.

Om ons doel te bereik, moet ons logies EN die binêre waarde van oktet 13 met enige ander waarde hê om die SYN-bis te behou. Ons weet dat ons in elk geval SYN wil stel, so ons sal logies EN die waarde in die 13de oktet met die binêre waarde van 'n SYN:

00010010 SYN-ACK 00000010 SYN EN 00000010 (ons wil SYN) EN 00000010 (ons wil SYN) -------- -------- = 00000010 = 00000010

Ons sien dat hierdie EN-operasie dieselfde resultaat lewer, ongeag of ACK of 'n ander TCP-beheerbietjie ingestel is. Die desimale voorstelling van die EN-waarde sowel as die resultaat van hierdie operasie is 2 (binêr 00000010), dus ons weet dat vir pakkies met SYN-stel die volgende verhouding waar moet bly:

((waarde van oktet 13) EN (2)) == (2)

Dit dui ons op die tcpdump filter uitdrukking

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

Let daarop dat jy enkele aanhalingstekens of 'n terugslag in die uitdrukking moet gebruik om die AND ('&') spesiale karakter van die dop weg te steek.

UDP Packets

UDP-formaat word geïllustreer deur hierdie rwho-pakkie:

actinide.who> broadcast.who: udp 84

Dit sê dat die hawe wat op die gasheer actinide 'n UDP-datagram gestuur het na die hawe wat op gasheeruitsending, die internetuitsendingsadres, gestuur is. Die pakkie bevat 84 grepe gebruikers data.

Sommige UDP-dienste word herken (vanaf die bron- of bestemmingspoortnommer) en die hoërvlak-protokolinligting gedruk. In die besonder, Domeinnaam diensversoeke (RFC-1034/1035) en Sun RPC oproepe (RFC-1050) na NFS.

UDP Naam bediener Versoeke

(NB: Die volgende beskrywing aanvaar vertroudheid met die Domeindiensprotokol wat in RFC-1035 beskryf word. As u nie vertroud is met die protokol nie, sal die volgende beskrywing in Grieks geskryf word.)

Naam bediener versoeke is geformateer as

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

Gasheer h2opolo het die domein bediener op helios gevra vir 'n adresrekord (qtype = A) wat met die naam ucbvax.berkeley.edu geassosieer word. Die navraag-ID was `3 '. Die `+ 'dui aan dat die herhaalde gewenste vlag gestel is. Die navraaglengte was 37 grepe, nie die UDP- en IP-protokolopskrifte nie. Die navraagoperasie was die normale een, navraag , so die op-veld is weggelaat. As die op iets anders was, sou dit tussen die `3 'en die` +' gedruk wees. Net so was die qclass die normale een, C_IN , en weggelaat. Enige ander qclass sou onmiddellik na die `A 'gedruk wees.

'N Paar anomalieë word nagegaan en kan lei tot ekstra velde wat in vierkantige hakies ingesluit is. As 'n navraag 'n antwoord bevat, word gesagrekords of addisionele rekordsafdeling, ancount , nscount of arcount gedruk as' [ n a] ', `[ n n ] 'of `[ n au]' waar n die toepaslike telling is. As enige van die reaksiebisse ingestel is (AA, RA of rcode) of enige van die `moet nul 'is, word die bytes twee en drie ingestel.` [B2 & 3 = x ]' word gedruk, waar x die hex waarde van kop en bytes twee en drie.

UDP Name Server Responses

Naam bediener antwoorde is geformateer as

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

In die eerste voorbeeld reageer helios op navraag ID 3 van h2opolo met 3 antwoord rekords, 3 naam bediener rekords en 7 addisionele rekords. Die eerste antwoord rekord is tipe A (adres) en sy data is internetadres 128.32.137.3. Die totale grootte van die reaksie was 273 grepe, uitgesluit UDP en IP hoofde. Die op (navraag) en reaksie kode (NoError) is weggelaat, net soos die klas (C_IN) van die A-rekord.

In die tweede voorbeeld reageer helios op navraag 2 met 'n reaksie kode van nie-bestaande domein (NXDomain) sonder antwoorde, een naam bediener en geen gesagrekords nie. Die `* 'dui aan dat die gesaghebbende antwoordbietjie gestel is. Aangesien daar geen antwoorde was nie, is geen tipe, klas of data gedruk nie.

Ander vlagkarakters wat dalk voorkom, is `- '(rekursie beskikbaar, RA, nie ingestel nie) en` |' (afgeknotte boodskap, TC, stel). As die `vraag'-afdeling nie presies een item bevat nie, word` [ n q] 'gedruk.

Let daarop dat versoeke en navrae van die naam bediener geneig is om groot te wees, en die standaardkopie van 68 grepe mag nie genoeg van die pakkie afdruk om af te druk nie. Gebruik die -s vlag om die snaplen te verhoog as jy die naam bediener verkeer ernstig moet ondersoek. ` s 128 'het goed vir my gewerk.

SMB / CIFS-dekodering

tcpdump bevat nou redelik uitgebreide SMB / CIFS / NBT-dekodering vir data op UDP / 137, UDP / 138 en TCP / 139. Sommige primitiewe dekodering van IPX- en NetBEUI SMB-data word ook gedoen.

By verstek word 'n redelike minimale dekodeer gedoen, met 'n baie meer gedetailleerde dekodeer gedoen as -v gebruik word. Wees gewaarsku dat met 'n enkele SMB-pakkie 'n bladsy of meer kan gebruik, dus gebruik net -v as jy regtig al die gierige besonderhede wil hê.

As u SMB-sessies wat unicode-stringe dekodeer, kan u die omgewing veranderlike USE_UNICODE instel na 1. 'n Patch om unicode srings outomaties op te spoor, sal welkom wees.

Vir inligting oor SMB-pakketformate en wat alle teëls beteken, sien www.cifs.org of die kroeg / samba / specs / gids op jou gunsteling samba.org spieël site. Die SMB-kolle is geskryf deur Andrew Tridgell (tridge@samba.org).

NFS Versoeke en Antwoorde

Sun NFS (Network File System) versoeke en antwoorde word gedruk as:

src.xid> dst.nfs: len op args src.nfs> dst.xid: antwoord statlen op resultate sushi.6709> wrl.nfs: 112 readlink fh 21,24 / 10.73165 wrl.nfs> sushi.6709: antwoord ok 40 leeslink "../var" sushi.201b> wrl.nfs: 144 lookup fh 9,74 / 4096.6878 "xcolors" wrl.nfs> sushi.201b: antwoord ok 128 opsoek fh 9,74 / 4134.3150

In die eerste reël stuur gasheer sushi 'n transaksie met ID 6709 na wrl (let daarop dat die nommer wat die src-gasheer volg, 'n transaksie-ID is, nie die bronpoort nie). Die versoek was 112 grepe, uitgesluit die UDP en IP hoofde. Die operasie was 'n leeslink (lees simboliese skakel) op lêer hanteer ( fh ) 21,24 / 10,731657119. (As 'n mens gelukkig is, soos in hierdie geval, kan die lêerhantering geïnterpreteer word as 'n belangrike, klein toestel nommerpaar , gevolg deur die inode nommer en generasie nommer.) Wrl antwoord 'ok' met die inhoud van die skakel.

In die derde reël vra sushi om die naam ` xcolors 'in die gidslêer 9,74 / 4096.6878 te soek. Let daarop dat die gedrukte data afhang van die operasie tipe. Die formaat is bedoel om selfverduidelikend te wees as dit saam met 'n NFS protokol spesie gelees word.

As die -v (verbose) vlag gegee word, word addisionele inligting gedruk. Byvoorbeeld:

sushi.1372a> wrl.nfs: 148 lees fh 21,11 / 12,195 8192 bytes @ 24576 wrl.nfs> sushi.1372a: antwoord ok 1472 lees REG 100664 ids 417/0 sz 29388

(-v druk ook die TTL-, ID-, lengte- en fragmenteringsvelde van die IP-kop af, wat uit hierdie voorbeeld weggelaat is.) In die eerste reël vra sushi wrl om 8192 bytes van lêer 21,11 / 12.195 te lees, by byte offset 24576. Wrl antwoord 'ok'; Die pakket wat op die tweede lyn getoon word, is die eerste fragment van die antwoord en dus slegs 1472 bytes lank. Die ander grepe sal in die volgende fragmente volg, maar hierdie fragmente het nie NFS of selfs UDP kop nie en kan dus nie gedruk word nie, afhangende van die filter uitdrukking wat gebruik word). Omdat die -v vlag gegee word, word sommige van die lêer eienskappe (wat teruggestuur word bykomend tot die lêer data) gedruk: die lêer tipe (`'REG' ', vir gereelde lêer), die lêer af (in oktaal), die uid en gid, en die lêer grootte.

As die -v-vlag meer as een keer gegee word, word selfs meer besonderhede gedruk.

Let daarop dat NFS versoeke is baie groot en baie van die besonderhede sal nie gedruk word nie, tensy die snaplen verhoog word. Probeer ' s 192 ' gebruik om NFS-verkeer te kyk.

NFS-antwoordpakkette identifiseer nie die RPC-operasie eksplisiet nie. In plaas daarvan hou tcpdump die rekords van `` onlangse '' op, en pas hulle by die antwoorde met die transaksie-ID. As 'n antwoord nie die ooreenstemmende versoek nou volg nie, kan dit nie ontleenbaar wees nie.

AFS Versoeke en Antwoorde

Transarc AFS (Andrew File System) versoeke en antwoorde word gedruk as:

src.sport> dst.dport: rx-pakket-tipe src.sport> dst.dport: rx-pakket-tipe diensoproep-oproep-naam args src.sport> dst.dport: rx pakket-tipe diens antwoord oproepnaam args elvis. 7001> pike.afsfs: rx data fs skakel hernoem ou fid 536876964/1/1 ".newsrc.new" nuwe fid 536876964/1/1 ".newsrc" pike.afsfs> elvis.7001: rx data fs antwoord hernoem

In die eerste reël stuur gasheer Elvis 'n RX-pakkie na snoek. Dit was 'n RX-datapakket vir die fs (fileserver) diens en is die begin van 'n RPC-oproep. Die RPC-oproep was 'n hernoem, met die ou lêer-ID van 536876964/1/1 en 'n ou lêernaam van `.newsrc.new 'en 'n nuwe lêer ID van 536876964/1/1 en 'n nuwe lêernaam van`. newsrc. Die gasheerdiere reageer met 'n RPC-antwoord op die hernoemoproep (wat suksesvol was, want dit was 'n datapakket en nie 'n abortepakket nie).

Oor die algemeen word alle AFS RPC's ten minste deur RPC-oproepnaam afgekodeer. Die meeste AFS RPC's het ten minste sommige van die argumente gedekodeer (gewoonlik net die `interessante 'argumente, vir 'n definisie van interessante).

Die formaat is bedoel om selfbeskrywend te wees, maar dit sal waarskynlik nie nuttig wees vir mense wat nie vertroud is met die werking van AFS en RX nie.

As die -v (verbose) vlag twee keer gegee word, word erkenningspakkette en bykomende hoofinligting gedruk, soos die RX-oproep-ID, oproepnommer, volgordenommer, reeksnommer en die RX-pakkievlae.

As die -v-vlag twee keer gegee word, word addisionele inligting gedruk, soos die RX-oproep-ID, reeksnommer en die RX-pakkievlae. Die MTU-onderhandelingsinligting word ook van RX ack-pakkies gedruk.

As die -v-vlag drie keer gegee word, word die sekuriteitsindeks en diens-ID gedruk.

Fout kodes word gedruk vir afkortingpakkette, met die uitsondering van Ubik bakenpakkette (omdat afvallige pakkies gebruik word om 'n ja-stem vir die Ubik-protokol te noem).

Let daarop dat AFS-versoeke baie groot is en baie van die argumente sal nie gedruk word tensy die snaplen verhoog word nie. Probeer ' ss 256 ' gebruik om AFS-verkeer te sien.

AFS-antwoordpakkette identifiseer nie die RPC-operasie eksplisiet nie. In plaas daarvan hou tcpdump die rekords van `` onlangse '' op, en pas hulle by die antwoorde met die oproepnommer en diens-ID. As 'n antwoord nie die ooreenstemmende versoek nou volg nie, kan dit nie ontleenbaar wees nie.

KIP Appletalk (DDP in UDP)

Appletalk DDP-pakkies wat in UDP-datagramme ingekapsel word, word de-encapsulated en dumped as DDP-pakkies (dws al die UDP-header-inligting word weggegooi). Die lêer /etc/atalk.names word gebruik om appletalk net en node nommers na name te vertaal. Lyne in hierdie lêer het die vorm

nommer naam 1.254 eter 16.1 icsd-net 1.254.110 ace

Die eerste twee lyne gee die name van appletalk netwerke. Die derde lyn gee die naam van 'n bepaalde gasheer ('n gasheer word onderskei van 'n net deur die 3de oktet in die getal - 'n netto getal moet twee oktette hê en 'n gasheernommer moet drie oktete hê.) Die nommer en naam moet geskei word deur witruimte (spasies of tabs). Die lêer /etc/atalk.names kan leë lyne of kommentaar lyne bevat (lyne wat met 'n `# 'begin).

Appletalk-adresse word in die vorm gedruk:

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

(As die /etc/atalk.names nie bestaan ​​of 'n inskrywing bevat vir 'n appletalk-gasheer / netto-nommer nie, word adresse in numeriese vorm gedruk.) In die eerste voorbeeld, NBP (DDP-poort 2) op net 144.1 nodus 209 stuur na alles wat luister op poort 220 van net icsd node 112. Die tweede lyn is dieselfde, behalwe die volle naam van die bronnoot is bekend (`kantoor '). Die derde lyn is 'n stuur vanaf hawe 235 op net jssmag knooppunt 149 om op die icsd-net NBP-poort uit te saai (let op dat die uitsaaiadres (255) aangedui word met 'n netto naam sonder gasheernommer - daarom is dit 'n goeie idee. nodusname en netname in /etc/atalk.names onderskei).

NBP (naam bindend protokol) en ATP (Appletalk transaksie protokol) pakkette het hul inhoud geïnterpreteer. Ander protokolle dump net die protokol naam (of nommer indien geen naam vir die protokol geregistreer is nie) en pakkie grootte.

NBP-pakkies word soos volg geformateer:

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

Die eerste reël is 'n navraagverzoek vir laserskrywers wat deur net icsd-gasheer 112 gestuur word en op netjssmag uitgesaai word. Die nbp-ID vir die opzoeking is 190. Die tweede reël toon 'n antwoord vir hierdie versoek (let op dat dit dieselfde identifikasie het) van gasheer jssmag.209 en sê dat dit 'n laserskrywer hulpbron met die naam "RM1140" geregistreer het op poort 250. Die derde lyn is nog 'n antwoord op dieselfde versoek, sê gasheer tegnologie het 'n laserskrywer se "techpit" geregistreer op hawe 186.

ATP pakketformatering word getoon deur die volgende voorbeeld:

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: atp- resp 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 begin transaksie id 12266 met host helios deur die versoeking van tot 8 pakkies (die `<0-7> '). Die hex-nommer aan die einde van die reël is die waarde van die 'userdata'-veld in die versoek.

Helios reageer met 8 512-byte pakkies. Die `: syfer 'na die transaksie-ID gee die pakketnommer in die transaksie en die getal in parings is die hoeveelheid data in die pakkie, uitgesluit die ATP-kop. Die '*' op pakkie 7 dui aan dat die EOM-bietjie ingestel is.

Jssmag.209 versoek dan dat pakkies 3 & 5 weer oorgedra word. Helios stuur hulle dan weer jssmag.209 stel die transaksie vry. Uiteindelik begin jssmag.209 die volgende versoek. Die `* 'op die versoek dui daarop dat XO (` presies een keer') nie ingestel is nie .

IP-fragmentering

Gefragmenteerde internet-datagramme word gedruk as

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

(Die eerste vorm dui aan dat daar meer fragmente is. Die tweede dui aan dat dit die laaste fragment is.)

Id is die fragment id. Grootte is die fragment grootte (in grepe) uitgesluit die IP kop. Offset is hierdie versameling se offset (in grepe) in die oorspronklike datagram.

Die fragment inligting is uitset vir elke fragment. Die eerste fragment bevat die hoofvlak protokolkopie en die frag-inligting word na die protokolinligting gedruk. Fragmente na die eerste bevat nie 'n hoër vlak protokolkopie nie en die frag-inligting word na die bron- en bestemmingsadresse gedruk. Byvoorbeeld, hier is deel van 'n ftp van arizona.edu na lbl-rtsg.arpa oor 'n CSNET-konneksie wat nie 576 byte-datagramme sal hanteer nie:

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

Daar is 'n paar dinge om hier kennis te neem: Eerstens, adresse in die 2de lyn sluit nie hafnommers in nie. Dit is omdat die TCP-protokolinligting alles in die eerste fragment is en ons het geen idee wat die poort- of rygetalle is wanneer ons die latere fragmente druk nie. Tweedens word die tcp-volgordeinligting in die eerste reël gedruk asof daar 308 grepe gebruikersdata is wanneer daar eintlik 512 bytes is (308 in die eerste frag en 204 in die tweede). As jy op soek is na gate in die volgordespasie of probeer om bye te pas met pakkies, kan dit jou mislei.

'N Pakket met die IP- adres, nie fragment- vlag, is gemerk met 'n trailing (DF) .

tyd tempel

By verstek word alle uitvoerlyne voorafgegaan deur 'n tydstempel. Die tydstempel is die huidige klok tyd in die vorm

hh: mm: ss.frac

en is so akkuraat soos die kern se horlosie. Die tydstempel weerspieël die tyd wat die kern die pakkie eerste gesien het. Geen poging word aangewend om rekening te hou met die tydsverloop tussen wanneer die Ethernet-koppelvlak die pakkie van die draad verwyder het nie en wanneer die kern die nuwe pakkie onderbreek.

SIEN OOK

verkeer (1C), nit (4P), bpf (4), PCAP (3)

Belangrik: Gebruik die man opdrag ( % man ) om te sien hoe 'n opdrag op u rekenaar gebruik word.