Tcpdump

tcpdump

tcpdump output til konsol
Type trafikanalysator
Skrevet i C [1]
Operativ system Linux og Microsoft Windows
nyeste version
Læsbare filformater PCAP [d] , Extended TCPDUMP's style capture (little-endian) [d] og Extended TCPDUMP's style capture (big-endian) [d]
Genererede filformater Extended TCPDUMP's style capture (little-endian) [d] og Extended TCPDUMP's style capture (big-endian) [d]
Licens ændret BSD-licens [d] [3]
Internet side tcpdump.org

tcpdump (fra TCP og engelsk  dump - dump, dump) er et UNIX  -værktøj (der er en klon til Windows ), som giver dig mulighed for at opsnappe og analysere netværkstrafik, der går gennem computeren, der kører dette program.

For at udføre programmet skal du have superbrugerrettigheder og direkte adgang til enheden (f.eks. er det ikke muligt at starte fra Jail i FreeBSD).

Hovedformål med tcpdump:

Beskrivelse:

SYN S Flag for at bruge, når du anmoder om en forbindelse.
ACK . Bruges ved bekræftelse af en indgående pakke.
FIN F Flaget indstilles, når forbindelsen normalt er lukket.
PRESSERENDE U Dette flag er nødvendigt ved afsendelse af nøddata - for eksempel ved afsendelse af Ctrl+ Cpå en telnet-forbindelse.
SKUBBE P Typisk indstilles dette flag, når der sendes brugerdata.
NULSTIL R Afbryd forbindelsen med det samme.
Samlet ingen Hvis pakken ikke indeholder noget flag, bruges denne pladsholder.

Taster

nøgle beskrivelse
-en Konverterer netværks- og broadcast-adresser til domænenavne.
-e Viser linklagsdata ( MAC-adresse , protokol, pakkelængde). Ud over IP-adresser vil MAC-adresserne på computere blive vist.
-F fil Brug filteret i filen. Hvis du bruger denne mulighed, vil filteret fra kommandolinjen blive ignoreret.
-jeg Angiver, hvilken netværksgrænseflade der vil blive brugt til at fange pakker. Som standard - eth0, for at vælge alle grænseflader - enhver. Hvis der ikke er noget lokalt netværk, kan du bruge loopback-grænsefladen lo.
-l Brug tcpdumps standard stream output (stdout), for eksempel til at skrive til en fil: shell# tcpdump -l | tee out.log //display tcpdump operation og gem resultatet i filen out.log
-N Tilføjer ikke en domæneudvidelse til værtsnavne. For eksempel vil tcpdump vise 'net' i stedet for 'net.library.org'
-n Viser en IP-adresse i stedet for et værtsnavn.
-nn Viser portnummeret i stedet for den protokol, den bruger.
-s Indstiller ikke grænsefladen til at modtage alle pakker (promiskuøs tilstand).
-q Viser minimal information. Normalt er dette navnet på protokollen, hvor pakken kom fra og hvor, porte og mængden af ​​overførte data.
-r Denne indstilling tillader tcpdump at læse trafik fra en fil, hvis den tidligere blev gemt med -w-indstillingen.
-S Tillader ikke at behandle absolutte sekvensnumre (initial sekvensnummer - ISN) til relative.
-s nummer Antallet af pakkebytes, som tcpdump vil behandle. Hvis du indstiller et stort antal skærmbytes, kan oplysningerne muligvis ikke passe på skærmen og kan være svære at læse. Afhængigt af hvilke mål du forfølger, bør du vælge værdien af ​​denne parameter. Som standard griber tcpdump de første 68 bytes (minimum 96 bytes på SunOS), men hvis du vil se indholdet af hele pakken, skal du bruge 1514 bytes (den maksimalt tilladte rammestørrelse på et Ethernet-netværk).
-t Viser ikke tidsstemplet på hver linje.
-T type Fortolkning af pakker af en given type. Understøttede typer er aodv , cnfp , rpc , rtp , rtcp , snmp , tftp , vat , wb .
-tt Viser et uformateret tidsstempel på hver linje.
-tttt Viser tidspunktet sammen med datoen.
-v Output detaljerede oplysninger (TTL; ID; total længde af headeren, såvel som dens parametre; kontrollerer kontrolsummerne for IP og ICMP headers)
-vv Outputtet af endnu mere fuldstændig information vedrører primært NFS og SMB.
-vvv Outputtet af den mest detaljerede information.
-w fil Gemmer tcpdump-data i binært format. Fordelene ved at bruge denne metode sammenlignet med den sædvanlige omdirigering til en fil er den høje skrivehastighed og evnen til at læse lignende data af andre programmer, såsom snort, men denne fil kan ikke læses af en person. Det er muligt at udlæse binære data til konsollen, til dette skal du bruge -w -
-x Opretter en liste over pakken i hexadecimal, nyttig til mere detaljeret analyse af pakken. Mængden af ​​viste data afhænger af indstillingen -s
-xx Samme som den forrige -x- indstilling , men inkluderer linklagets overskrift
-X Udsender pakken i ASCII- og hex-format. Nyttigt i tilfælde af analyse af en hackinghændelse, da det giver dig mulighed for at se, hvilken tekstinformation der blev transmitteret under forbindelsen.
-XX Samme som den forrige -X -indstilling , men inkluderer link-lags-headeren.
-c nummer tcpdump afsluttes efter at have modtaget det angivne antal pakker.
-U De indsamlede pakker vil straks blive tilføjet til en fil, ellers vil de blive akkumuleret i hukommelsen, indtil den slutter

Eksempler

Hvis tcpdump køres uden parametre, udskriver den information om alle netværkspakker. Ved hjælp af parameteren -ikan du angive netværksgrænsefladen, hvorfra data skal modtages:

# tcpdump -i eth2

For at finde ud af pakker modtaget eller sendt fra en bestemt vært, skal du angive dens navn eller IP-adresse efter nøgleordet host:

# tcpdump værtsnavn på server

Det følgende er, hvordan du kan finde ud af om pakkerne, der udveksles mellem navn på server A og navn på server B:

# tcpdump værtsnavn påserverA og navn påserverB

For kun at overvåge udgående pakker fra en vært, skal du angive følgende:

# tcpdump src værtsnavn på server

Kun indgående pakker:

# tcpdump dst hostnameofserver

Kildeport og destinationsport henholdsvis:

# tcpdump dst port 80 # tcpdump src port 22

For at spore en af ​​protokollerne TCP , UDP , ICMP , skal dens navn angives i kommandoen. Ved at bruge operatorerne and( &&), or( ||) og not( !) kan du indstille filtre af enhver kompleksitet. Operatør forrang: inversion, derefter and, efter - or.

Et eksempel på et filter, der kun overvåger UDP-pakker, der kommer fra et eksternt netværk:

# tcpdump udp og ikke src net localnet

Softwareimplementering

Programmet består af to hoveddele: en pakkeopsamlingsdel (biblioteksadgang, libpcap (Unix) eller pcap (Windows)) og en opfanget pakkevisningsdel (som er modulopbygget på kildekodeniveau, og det er nok at tilføje et nyt modul for at understøtte en ny protokol).

Pakkefangstdelen (ved opstart) sender "pakkevalgsudtrykket" (som kommer efter alle kommandolinjeindstillinger) direkte til pakkefangstbiblioteket, som tjekker udtrykket for syntaks, kompilerer det (i et internt dataformat) og derefter kopierer netværkspakkerne ind i programmets interne buffer, passerer gennem den valgte grænseflade og opfylder betingelserne i udtrykket.

Pakketilknytningsdelen udvælger de opfangede pakker én efter én fra bufferen fyldt af biblioteket og udskriver dem (i menneskelig læsbar form) til standardoutput linje for linje, i henhold til det specificerede detaljeringsniveau (på kommandolinjen).

Hvis der er specificeret udførligt output af pakker, kontrollerer programmet for hver netværkspakke, om det har et datadekrypteringsmodul, og i så fald udtrækker (og viser) pakketypen i protokollen eller parametrene transmitteret i pakken af ​​den relevante underrutine .

Cross-platform

tcpdump-programmet blev oprindeligt udviklet til UNIX-lignende systemer, senere porteret til andre systemer.

For Windows kendt i øjeblikket:

  • tcpdump til Windows - kommerciel implementering, som en enkelt tcpdump.exe-fil
  • WinDump  er en open source-implementering, der kræver installation af WinPcap- biblioteket (gratis software).

Se også

Noter

  1. tcpdump Open Source-projektet på Open Hub: Languages-side - 2006.
  2. Udgivelse 4.99.1 - 2021.
  3. https://github.com/the-tcpdump-group/tcpdump/blob/master/LICENSE

Links