I denna handledning kommer vi att se hur man arbetar med tcpdump. Det är ett opensource -verktyg för kommandoraden, det är van vid övervaka nätverket, kan vi förstå det som en analysator av paket som passerar genom nätverket där du kör programmet. Den används i Unix -miljöer, även om det finns en variant för Windows som heter WinDump. En handledning om EtherApe kan vara av intresse för dig, vilket är ett verktyg för att se statusen för vårt nätverk grafiskt.
I handledningen kommer vi att arbeta från Linux, specifikt i Ubuntu 16.04, för att verktyget ska fungera behöver vi köra det med höga privilegier, förutom vissa alternativ, vilket kommer att vara nödvändigt.
Vi kan använda tcpdump för olika uppgif.webpter, till exempel felsökning av våra nätverksapplikationer, läsning av data som skickas mellan användare över nätverket där vi är, etc. Vi kommer att sätta dess syntax nedan:
tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX #] [-B storlek] [-c count] [-C file_size] [-E något: hemligt] [-F fil] [-G sekunder] [-i gränssnitt] [-j tstamptype] [- M hemlig] [--tal] [-Q in | ut | inout] [-r-fil] [-s snaplen] [--tid-stämpel-precision precision] [--immediate-mode] [-T-typ] [ --version] [-V fil] [-w fil] [-W filantal] [-y datalinktyp] [-z kommando] [-Z användare] [uttryck]Detta verktyg har ett stort antal parametrar som vi kan använda, här kommer vi att se några.
Några tcpdump -parametrar
- -TILL: Skriv ut paketen i ASCII -kod.
- -x: Skriv ut paketen i hexadecimala.
- -D: Visar tillgängliga gränssnitt.
- -c nummer: Det stänger programmet när det angivna antalet paket har fångats.
- -i gränssnitt: Programmet lyssnar på det angivna gränssnittet.
- -Jag: Sätter gränssnittet i övervakningsläge.
- -s: Det sätter inte gränssnittet i promiskuöst läge.
- -f -fil: Utdata lagras i filen som vi anger.
- -h: Visar hjälp för dess användning.
Om vi vill se alla tillgängliga parametrar använder vi i Linux:
man tcpdumpAtt använda detta kommando är mer komplett än den hjälp som parametern erbjuder -h eller --hjälp, som bara skulle visa oss följande:
Vi kommer att se 10 exempel för att komma igång med detta kraftfulla verktyg.
NoteraI nästan alla exempel kommer du att se att sudo används före tcpdump, som sagt tidigare, det är nödvändigt att starta det med höga privilegier, om du använder terminalen som root är det inte nödvändigt att lägga något framför tcpdump. Om du vill stoppa inspelningen kan du kombinera nycklarna:
CTRL + C
Exempel 1
Det enklaste exemplet med parametern -TILL. För detta utför vi:
tcpdump -A
Låt oss se ett exempel med lite mer innehåll.
Exempel 2
Nu kommer vi att filtrera efter värd och lägga till det generösa läget med parametern -v:
sudo tcpdump -värd 192.168.66.130 -vNedan är en bild med ovanstående kommando:
För bilden har jag gjort en ping från en annan maskin, så att vi kan se ICMP. Låt oss gå vidare till det tredje exemplet.
Exempel 3
I det här exemplet ska vi titta på paketen från samma värd, bara den här gången paketen som har att göra med port 80:
sudo tcpdump -värd 192.168.66.130 och port 80 -vOm vi tittar på fångsten kommer vi att se något som liknar följande:
Du kan se hur enkelt det här verktyget är att hantera, låt oss gå vidare.
Exempel 4
Vi kommer att använda exempel 3 och vi kommer att ändra det, vi vill filtrera paketen med ursprung 192.168.66.130 som går till port 80:
sudo tcpdump src -värd 192.168.66.130 och dst -port 80 -vVi ser att vi har använt villkoret och, så att de två villkoren är uppfyllda, kan vi också använda eller, om vi vill att endast en av dem ska vara uppfyllda. Om vi tittar på skärmdumparna ser vi en POST -begäran.
Vi går vidare till det femte exemplet.
Exempel 5
Vi kommer att fånga paket som indikerar ett gränssnitt:
sudo tcpdump -i ens33NoteraDitt gränssnitt är förmodligen eth0, du kan se det med ifconfig -kommandot, men också med -D -parametern för tcpdump kommer det att fungera för oss, vi kommer att se det i följande exempel.
Nedan kan du se en bild av fångsten.
Låt oss gå till nästa.
Exempel 6
I det här exemplet är det enda vi ska göra att visa tillgängliga gränssnitt, för detta kör vi:
tcpdump -DI det här fallet är det inte nödvändigt att vara root.
Låt oss fortsätta.
Exempel 7
Vi vill fånga 3 paket som är avsedda för port 1987 och när detta inträffar, stoppa programmet:
sudo tcpdump -c 3 dst port 1987Vi kan se i följande bild att endast 3 paket fångas:
Låt oss se några fler exempel.
Exempel 8
När vi är intresserade av att få alla tcp -trafikpaket som inte går till en viss port, till exempel port 80, kommer vi att utföra följande:
sudo tcpdump inte port 80 och tcpUtdata är liknande, så i detta exempel är ingen inspelning inställd. Låt oss gå till det näst sista exemplet.
Exempel 9
Vi kommer att fånga 2 paket med ett specifikt gränssnitt, och vi kommer att visa dem i hexadecimalt format, för detta måste vi köra:
sudo tcpdump -i ens33 -x -c 2Nedan kan du se utdata:
Låt oss gå vidare till det sista exemplet på handledningen.
Exempel 10
I det här exemplet kommer vi att spara fångsten i en fil för att titta på den senare. Capture är begränsat till 3 paket och ett gränssnitt är specificerat, så vi kommer att utföra:
sudo tcpdump -w test.pcap -i ens33 -c 3Låt oss se en skärmdump:
Om vi vill läsa den filen nu måste vi köra:
tcpdump -r test.pcapVi kan se det på följande bild:
Handledningen om tcpdump har kommit så här långt, den har många möjligheter och många alternativ, så för att lära dig hur du hanterar det här verktyget bra är det bäst att träna och upptäcka alla dess funktioner lite efter lite. Du kanske också är intresserad av att läsa något om netcat -verktyget, så här är en länk till en handledning med exempel:
Hur man använder netcat
Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng