Tcpdump

tcpdump

tcpdump utdata till konsolen
Sorts trafikanalysator
Skrivet i C [1]
Operativ system Linux och Microsoft Windows
senaste versionen
Läsbara filformat PCAP [d] , Extended TCPDUMP's style capture (little-endian) [d] och Extended TCPDUMP's style capture (big-endian) [d]
Genererade filformat Utökad TCPDUMPs stilinfångning (little-endian) [d] och Utökad TCPDUMPs stilinfångning (big-endian) [d]
Licens modifierad BSD-licens [d] [3]
Hemsida tcpdump.org

tcpdump (från TCP och engelska  dump - dump, dump) är ett UNIX-  verktyg (det finns en klon för Windows ) som låter dig avlyssna och analysera nätverkstrafik som passerar genom datorn som kör detta program.

För att köra programmet behöver du superanvändarrättigheter och direkt åtkomst till enheten (det är till exempel inte möjligt att starta från Jail i FreeBSD).

Huvudsyften med tcpdump:

Beskrivning:

SYN S Flagga att använda när du begär en anslutning.
ACK . Används för att bekräfta ett inkommande paket.
FENA F Flaggan sätts när anslutningen normalt är stängd.
BRÅDSKANDE U Denna flagga behövs när du skickar nöddata - till exempel när du skickar Ctrl+ Cpå en telnet-anslutning.
TRYCK P Normalt sätts denna flagga när användardata skickas.
ÅTERSTÄLLA R Koppla bort omedelbart.
Aggregat ingen Om paketet inte innehåller någon flagga används denna platshållare.

Nycklar

nyckel- beskrivning
-a Konverterar nätverks- och sändningsadresser till domännamn.
-e Visar länklagerdata ( MAC-adress , protokoll, paketlängd). Förutom IP-adresser kommer datorernas MAC-adresser att visas.
-F fil Använd filtret i filen. Om du använder det här alternativet kommer filtret från kommandoraden att ignoreras.
-jag Indikerar vilket nätverksgränssnitt som kommer att användas för att fånga paket. Som standard - eth0, för att välja alla gränssnitt - alla. Om det inte finns något lokalt nätverk kan du använda loopback-gränssnittet lo.
-l Använd tcpdumps standardströmutgång (stdout), till exempel för att skriva till en fil: skal# tcpdump -l | tee out.log //display tcpdump operation och spara resultatet i filen out.log
-N Lägger inte till ett domäntillägg till värdnamn. Till exempel kommer tcpdump att visa 'net' istället för 'net.library.org'
-n Visar en IP-adress istället för ett värdnamn.
-nn Visar portnumret istället för det protokoll som används.
-s Ställer inte in gränssnittet för att ta emot alla paket (promiskuöst läge).
-q Visar minimal information. Vanligtvis är detta namnet på protokollet, varifrån paketet kom och var, portar och mängden data som överförs.
-r Det här alternativet tillåter tcpdump att läsa trafik från en fil om den tidigare sparats med alternativet -w.
-S Tillåter att inte bearbeta absoluta sekvensnummer (initial sekvensnummer - ISN) till relativa.
-s nummer Antalet paketbyte som tcpdump kommer att bearbeta. Om du ställer in ett stort antal visningsbyte kanske informationen inte får plats på skärmen och kan vara svår att läsa. Beroende på vilka mål du strävar efter bör du välja värdet på denna parameter. Som standard tar tcpdump de första 68 byte (minst 96 byte på SunOS), men om du vill se innehållet i hela paketet, använd 1514 byte (den maximalt tillåtna ramstorleken på ett Ethernet-nätverk).
-t Visar inte tidsstämpeln på varje rad.
-T typ Tolkning av paket av en given typ. Typer som stöds är aodv , cnfp , rpc , rtp , rtcp , snmp , tftp , vat , wb .
-tt Visar en oformaterad tidsstämpel på varje rad.
-tttt Visar tiden tillsammans med datumet.
-v Utdata detaljerad information (TTL; ID; total längd på rubriken, såväl som dess parametrar; kontrollerar kontrollsummorna för IP- och ICMP - huvuden)
-vv Resultatet av ännu mer komplett information, gäller främst NFS och SMB.
-vvv Utgången av den mest detaljerade informationen.
-w filen Sparar tcpdump-data i binärt format. Fördelarna med att använda den här metoden jämfört med den vanliga omdirigeringen till en fil är den höga skrivhastigheten och möjligheten att läsa liknande data av andra program, såsom snort, men denna fil kan inte läsas av en person. Det är möjligt att mata ut binära data till konsolen, för detta måste du använda -w -
-x Gör en lista över paketet i hexadecimal form, användbar för mer detaljerad analys av paketet. Mängden data som visas beror på alternativet -s
-xx Samma som föregående -x- alternativ , men inkluderar länklagerhuvudet
-X Matar ut paketet i ASCII- och hex-format. Användbart vid analys av en hackincident, eftersom det låter dig se vilken textinformation som överfördes under anslutningen.
-XX Samma som föregående -X -alternativ, men inkluderar länklagerhuvudet.
-c nummer tcpdump avslutas efter att ha mottagit det angivna antalet paket.
-U De insamlade paketen kommer omedelbart att läggas till en fil, annars kommer de att ackumuleras i minnet tills den tar slut

Exempel

Om tcpdump körs utan parametrar kommer den att skriva ut information om alla nätverkspaket. Med hjälp av parametern -ikan du ange nätverksgränssnittet från vilket data ska tas emot:

# tcpdump -i eth2

För att ta reda på paket som tagits emot eller skickats från en specifik värd måste du ange dess namn eller IP-adress efter nyckelordet host:

# tcpdump värdnamn på server

Följande är hur du kan ta reda på paketen som utbyts mellan namn på serverA och namn på serverB:

# tcpdump värdnamn på serverA och namn på serverB

För att endast övervaka utgående paket från en värd måste du ange följande:

# tcpdump src värdnamn på server

Endast inkommande paket:

# tcpdump dst hostnameofserver

Källport respektive destinationsport:

# tcpdump dst port 80 # tcpdump src port 22

För att spåra ett av protokollen TCP , UDP , ICMP måste dess namn anges i kommandot. Genom att använda operatorerna and( &&), or( ||) och not( !) kan du ställa in filter av vilken komplexitet som helst. Operatörsföreträde: inversion, sedan and, efter - or.

Ett exempel på ett filter som endast övervakar UDP-paket som kommer från ett externt nätverk:

# tcpdump udp och inte src net localnet

Programvaruimplementering

Programmet består av två huvuddelar: en paketinsamlingsdel (biblioteksåtkomst, libpcap (Unix) eller pcap (Windows)) och en infångad paketvisningsdel (som är modulär på källkodsnivå och det räcker med att lägga till en ny modul för att stödja ett nytt protokoll).

Paketfångningsdelen (vid uppstart) skickar "paketvalsuttrycket" (som kommer efter alla kommandoradsalternativ) direkt till paketfångningsbiblioteket, som kontrollerar uttrycket för syntax, kompilerar det (till ett internt dataformat) och sedan kopierar nätverkspaketen till programmets interna buffert, passerar genom det valda gränssnittet och uppfyller villkoren i uttrycket.

Paketmappningsdelen väljer de fångade paketen ett efter ett från bufferten som fylls av biblioteket och skriver ut dem (i läsbar form) till standardutdata rad för rad, enligt den specificerade detaljnivån (på kommandoraden).

Om utförlig utmatning av paket anges, kontrollerar programmet för varje nätverkspaket om det har en datadekrypteringsmodul, och i så fall extraherar (och visar) pakettypen i protokollet eller parametrarna som överförs i paketet av lämplig subrutin .

Cross-platform

tcpdump-programmet utvecklades ursprungligen för UNIX-liknande system, senare portades till andra system.

För Windows som för närvarande är känt:

  • tcpdump för Windows - kommersiell implementering, som en enda tcpdump.exe-fil
  • WinDump  är en implementering med öppen källkod som kräver installation av WinPcap- biblioteket (fri programvara).

Se även

Anteckningar

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

Länkar