tcpdump | |
---|---|
| |
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. |
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 |
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 eth2For 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å serverDet 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åserverBFor kun at overvåge udgående pakker fra en vært, skal du angive følgende:
# tcpdump src værtsnavn på serverKun indgående pakker:
# tcpdump dst hostnameofserverKildeport og destinationsport henholdsvis:
# tcpdump dst port 80 # tcpdump src port 22For 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 localnetProgrammet 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 .
tcpdump-programmet blev oprindeligt udviklet til UNIX-lignende systemer, senere porteret til andre systemer.
For Windows kendt i øjeblikket:
Unix-kommandoer | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|