I denne tutorial vil vi se hvordan man arbejder med tcpdump. Det er et opensource -værktøj til kommandolinje, det er vant til overvåge netværket, kan vi forstå det som en analysator af pakker, der passerer gennem netværket, hvor du udfører programmet. Det bruges i Unix -miljøer, selvom der er en variant til Windows kaldet WinDump. En tutorial om EtherApe kan være af interesse for dig, hvilket er et værktøj til grafisk at se status for vores netværk.
I selvstudiet vil vi arbejde fra Linux, specifikt i Ubuntu 16.04, for at værktøjet kan fungere, vi har brug for at køre det med høje privilegier, bortset fra visse muligheder, som vil være nødvendige.
Vi kan bruge tcpdump til forskellige opgaver, såsom fejlretning af vores netværksapplikationer, læsning af de data, der sendes mellem brugere over det netværk, vi er i osv. Vi vil sætte sin syntaks nedenfor:
tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX #] [-B størrelse] [-c count] [-C file_size] [-E noget: hemmeligt] [-F fil] [-G sekunder] [-i interface] [-j tstamptype] [- M hemmelighed] [--nummer] [-Q ind | ud | ind] [-r fil] [-s snaplen] [--tidstempel-præcision] [--immediate-mode] [-T type] [ --version] [-V fil] [-w fil] [-W filantal] [-y datalinktype] [-z kommando] [-Z bruger] [udtryk]Dette værktøj har et stort antal parametre, som vi kan bruge, her vil vi se nogle.
Nogle tcpdump parametre
- -TIL: Udskriv pakkerne i ASCII -kode.
- -x: Udskriv pakkerne i hexadecimal.
- -D: Viser tilgængelige grænseflader.
- -c nummer: Det lukker programmet, når det angivne antal pakker er fanget.
- -jeg interface: Programmet lytter på den angivne grænseflade.
- -JEG: Sætter grænsefladen i skærmtilstand.
- -s: Det sætter ikke grænsefladen i promiskuøs tilstand.
- -f fil: Output gemmes i den fil, vi angiver.
- -h: Viser hjælp til dens brug.
Hvis vi vil se alle de tilgængelige parametre, bruger vi i Linux:
mand tcpdumpBrug af denne kommando er mere komplet end den hjælp, der tilbydes af parameteren -h eller --Hjælp, som kun ville vise os følgende:
Vi kommer til at se 10 eksempler for at komme i gang i dette kraftfulde værktøj.
BemærkI næsten alle eksemplerne vil du se, at sudo bruges før tcpdump, som sagt før, det er nødvendigt at starte det med høje privilegier, hvis du bruger terminalen som root, er det ikke nødvendigt at sætte noget foran tcpdump. Hvis du vil stoppe optagelsen, kan du kombinere tasterne:
CTRL + C
Eksempel 1
Det enkleste eksempel ved hjælp af parameteren -TIL. Til dette udfører vi:
tcpdump -A
Lad os se et eksempel med noget mere indhold.
Eksempel 2
Nu skal vi filtrere efter vært, og tilføje den verbose tilstand med parameteren -v:
sudo tcpdump -vært 192.168.66.130 -vNedenfor er et billede ved hjælp af ovenstående kommando:
Til billedet har jeg lavet en ping fra en anden maskine, så vi kan se ICMP. Lad os gå videre til det tredje eksempel.
Eksempel 3
I dette eksempel vil vi se på pakkerne fra den samme vært, kun denne gang de pakker, der har at gøre med port 80:
sudo tcpdump -vært 192.168.66.130 og port 80 -vHvis vi ser på optagelsen, vil vi se noget, der ligner følgende:
Du kan se, hvor let dette værktøj er at håndtere, lad os gå videre.
Eksempel 4
Vi kommer til at bruge eksempel 3, og vi vil ændre det, vi vil filtrere pakkerne med oprindelse 192.168.66.130, der går til port 80:
sudo tcpdump src vært 192.168.66.130 og dst port 80 -vVi ser, at vi har brugt betinget, og så de to betingelser er opfyldt, kan vi også bruge eller, hvis vi kun vil have en af dem opfyldt. Hvis vi ser på skærmbillederne, ser vi en POST -anmodning.
Vi går videre til det femte eksempel.
Eksempel 5
Vi vil fange pakker, der angiver en grænseflade:
sudo tcpdump -i ens33BemærkDin grænseflade er sandsynligvis eth0, du kan se den med ifconfig -kommandoen, men også med -D -parameteren tcpdump vil den fungere for os, vi vil se den i følgende eksempel.
Nedenfor kan du se et billede af optagelsen.
Lad os gå til den næste.
Eksempel 6
I dette eksempel er det eneste, vi skal gøre, at vise de tilgængelige grænseflader, for dette udfører vi:
tcpdump -DI dette tilfælde er det ikke nødvendigt at være root.
Lad os fortsætte.
Eksempel 7
Vi ønsker at fange 3 pakker, der er bestemt til port 1987, og når dette sker, skal du stoppe programmet:
sudo tcpdump -c 3 dst port 1987Vi kan se på følgende billede, at der kun er fanget 3 pakker:
Lad os se et par eksempler mere.
Eksempel 8
Når vi er interesserede i at få alle tcp -trafikpakker, der ikke går til en bestemt port, for eksempel port 80, vil vi udføre følgende:
sudo tcpdump ikke port 80 og tcpOutputtet er ens, så i dette eksempel er der ingen opsætning indstillet. Lad os gå til det næstsidste eksempel.
Eksempel 9
Vi kommer til at fange 2 pakker af en bestemt grænseflade, og vi vil vise dem i hexadecimalt format, for dette skal vi udføre:
sudo tcpdump -i ens33 -x -c 2Nedenfor kan du se output:
Lad os gå videre til det sidste eksempel på selvstudiet.
Eksempel 10
I dette eksempel vil vi gemme optagelsen i en fil for at se på den senere. Capture er begrænset til 3 pakker, og en grænseflade er angivet, så vi vil udføre:
sudo tcpdump -w test.pcap -i ens33 -c 3Lad os se et skærmbillede:
Hvis vi vil læse den fil nu, skal vi udføre:
tcpdump -r test.pcapVi kan se det på følgende billede:
Tutorial på tcpdump er kommet så langt, det har mange muligheder og mange muligheder, så for at lære at håndtere dette værktøj godt, er det bedst at øve sig og opdage alle dets funktioner lidt efter lidt. Du kan også være interesseret i at læse noget om netcat -værktøjet, så her er et link til en tutorial med eksempler:
Sådan bruges netcat
Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt