Wireshark-applikasjonstrafikk. Wireshark: Trafikkanalyse for Linux og Windows. Viktige funksjoner i Wireshark

Wireshark: hvordan bruke?

Hei venner! I denne artikkelen vil jeg prøve å forklare og fortelle deg om de mest nødvendige tingene du bør vite når du bruker Wireshark på Linux, og viser en analyse av tre typer nettverkstrafikk. Denne opplæringen gjelder også for Wireshark for å fungere under Windows.

Hvis du er ny på informasjonssikkerhet, og du forstår veldig godt hva en sniffer (trafikkanalysator) er, anbefaler jeg deg å lese artikkelen, og først da lese denne artikkelen om hvordan du bruker Wireshark.

Veldig populær og ekstremt dyktig nettverksprotokollanalysator Gerald Combs utviklet Wireshark i juni 2006 da Combs ga nytt navn til Ethereal-nettverksverktøyet han også opprettet fordi han byttet jobb og ikke lenger kunne bruke det gamle navnet. I dag bruker de fleste Wireshark, og Ethereal er historie.

Wireshark: den beste snifferen

Du spør kanskje hvordan Wireshark skiller seg fra andre nettverksanalysatorer – bortsett fra å være gratis – og hvorfor begynner vi ikke bare å markedsføre tcpdump for pakkefangst?

Den største fordelen med Wireshark er at det er en grafisk applikasjon. Det er veldig nyttig å samle inn data og inspisere nettverkstrafikk i brukergrensesnittet, siden det lar deg håndtere komplekse nettverksdata.

Hvordan bruker jeg Wireshark?

For at en nybegynner skal forstå Wireshark, må han forstå nettverkstrafikk. I så fall er formålet med denne artikkelen å lære deg det grunnleggende om TCP/IP, slik at du kan trekke de riktige konklusjonene fra nettverkstrafikken du analyserer.


TCP-pakke og IP-pakkeformat.

Hvis du kjører Wireshark som en vanlig bruker, vil du ikke kunne bruke nettverksgrensesnittene til å samle inn data på grunn av standard Unix-filtillatelser som er tilgjengelige i nettverksgrensesnittene. Det er mer praktisk å kjøre Wireshark som root (sudo wireshark) når du samler inn data og som en vanlig bruker for dataanalyse.

Alternativt kan du samle nettverksdata ved å bruke tcpdump-kommandolinjeverktøyet som root og deretter analysere det ved hjelp av Wireshark. Vær oppmerksom på at innsamling av data med Wireshark på et tungt belastet nettverk kan gjøre datamaskinen din tregere, eller enda verre, hindre deg i å samle inn nødvendige data, fordi Wireshark krever flere systemressurser enn kommandolinjeverktøyet. I slike tilfeller er den smarteste løsningen for å samle nettverkstrafikkdata å bruke tcpdump.

Ta opp nettverksdata med Wireshark

Den enkleste måten å begynne å fange nettverkspakkedata på er å velge grensesnittet du vil ha etter å ha startet Wireshark og klikke på Start. Wireshark vil vise nettverksdata på skjermen din basert på nettverkstrafikken din. Merk: mer enn ett grensesnitt kan velges. Hvis du ikke kan noe om TCP, IP eller andre protokoller, kan resultatet være vanskelig å lese og forstå.

For å slutte å fange data, velg Capture> Stopp fra menyen. Alternativt kan du klikke på det fjerde ikonet fra venstre, med en rød firkant (dette er en forkortelse for "Stop capturing live data") i hovedverktøylinjen (merk at dens nøyaktige plassering avhenger av versjonen av Wireshark du har). Denne knappen kan bare trykkes mens du samler inn nettverksdata.

Når du bruker den beskrevne fangstmetoden, kan du ikke endre standard fangstalternativer konfigurert i Wireshark. Du kan se og endre Capture Options ved å velge Capture> Options fra menyen. Her kan du velge nettverksgrensesnittet(e), se IP-adressen din, bruke datainnsamlingsfiltre, bytte nettverkskort for å motta alle nettverkspakker og lagre de innsamlede dataene i én eller flere filer. Du kan til og med fortelle den om å slutte å fange pakker når den når et visst antall nettverkspakker, eller et bestemt tidspunkt eller en viss mengde data (i byte).

Som standard lagrer ikke Wireshark innsamlede data, men du kan alltid lagre dem senere. Det antas at det er best å først lagre og deretter undersøke nettverkspakkene, med mindre du har en spesiell grunn til å gjøre noe annet.

Wireshark lar deg lese og analysere allerede innsamlede nettverksdata fra en lang rekke filformater, inkludert tcpdump, libpcap, Suns snoop, HPs nettl, K12 tekstfiler og mer. Kort sagt kan Wireshark lese nesten alle formater av innsamlede nettverksdata. På samme måte lar Wireshark deg lagre innsamlede data i forskjellige formater. Du kan til og med bruke Wireshark til å konvertere en fil fra ett format til et annet.

Du kan også eksportere en eksisterende fil som en ren tekstfil fra Fil-menyen. Dette alternativet er hovedsakelig beregnet på å behandle nettverksdata manuelt eller legge dem inn i et annet program.

En mulighet er gitt for å skrive ut pakkene dine. Jeg har aldri brukt det i det virkelige liv, men for pedagogiske formål kan det være veldig nyttig å skrive ut pakkene og deres fullstendige innhold.

Wireshark-skjermfiltre

Hvis fangstfiltre brukes under fangst av nettverksdata, vurderer ikke Wireshark nettverkstrafikk som ikke samsvarer med filteret; mens visningsfiltre brukes etter datafangst og "skjul" nettverkstrafikk uten å fjerne den. Du kan alltid slå av Display-filteret og få de skjulte dataene tilbake.

I utgangspunktet anses visningsfiltre som mer nyttige og allsidige enn datainnsamlingsfiltre fordi du knapt vet på forhånd hvilken informasjon du vil samle inn eller bestemme deg for å studere. Men å bruke filtre når du fanger data sparer deg for tid og diskplass, som er hovedårsaken til å bruke filtre.

Wireshark fremhever det syntaktisk korrekte filteret med en lysegrønn bakgrunn. Hvis syntaksen inneholder feil, blir bakgrunnen rosa.

Visningsfiltre støtter sammenligningsoperatorer og boolske operatorer. Vis filter http.response.code


Tre pakker (SYN, SYN + ACK og ACK) treveis TCP-tilkobling

404 && ip.addr == 192.168.1.1 viser trafikk som enten går fra IP-adressen 192.168.1.1 eller går til IP-adressen 192.168.1.1, som også har en 404 (Ikke funnet) HTTP-svarkode i seg. Filteret! Boo1p &&! Ip &&! Aggr ekskluderer BOOTP-, IP- og ARP-trafikk fra resultatet. Filter eth.addr == 01: 23: 45: 67: 89: ab && tcp.port == 25 viser trafikk som går fra eller til nettverksenheten med MAC-adresse 01: 23: 45: 67: 89: ab som bruker TCP-port nummer 25 på inngående og utgående tilkoblinger.

Husk at visningsfiltre ikke løser problemer på magisk vis. Dette er ekstremt nyttige verktøy når de brukes riktig, men du må fortsatt tolke resultatene, finne problemet og tenke på riktig løsning selv.

Fortsettelse av artikkelen på neste side. For å gå til neste side, klikk på knapp 2, som er plassert under knappene på sosiale nettverk.

Introduksjon

Når man undersøker nettverksinteraksjoner på nivå med individuelle pakker, datagrammer, segmenter og meldinger på applikasjonsnivå, er det ofte nødvendig å løse problemer med trafikkfiltrering. Essensen av å bruke filtre er å finne og fremheve grupper, så vel som individuelle overføringsenheter som er av interesse for videre analyse. Denne funksjonaliteten er ekstremt nyttig i verktøy designet for å fange opp og studere nettverkstrafikk (sniffer), og hjelper en systemadministrator eller med å finne en del nyttig informasjon i de intensive informasjonsstrømmene i moderne nettverk.

Åpen kildekode-multiplattformen diskutert i denne artikkelen Wireshark protokollanalysator inkluderer to filterundersystemer: trafikkavlytting (fangstfiltre) og display (visningsfiltre). Som du vet, er det første delsystemet basert på Pcap (Packet Capture) bibliotekregelspråk. Spesielt "rensing" av trafikk under innsamlingen reduserer antallet avlyttede pakker, og sparer dermed plass i minnet eller på harddisken. Når det gjelder skjermfiltrene, er de, som er en innebygd Wireshark-funksjon, designet for å "tilpasse" allerede avlyttet trafikk i programmets grafiske grensesnitt.


Om filterspråk

Evnen til å avskjære trafikk for overvåkings- og feilsøkingsformål er tilstede i nettverksstabelen til ethvert operativsystem. Det utføres ved hjelp av det såkalte Packet Filter, som er en del av systemkjernen og mottar mottatte/sendte pakker fra nettverkskortdriveren. De mest kjente pakkefiltrene for Unix-lignende operativsystemer er BPF (Berkeley Packet Filter) og LSF (Linux Socket Filter).

Så, et utvalg av trafikk i henhold til de angitte kriteriene i BPF implementert i form av et spesielt kasusorientert primitivt maskinspråk, som pakkefilteret faktisk fungerer som tolk for. Programmer på dette språket kan trekke ut fragmenter fra pakker, sammenligne de mottatte dataene med gitte verdier, sjekke individuelle biter, utføre aritmetiske operasjoner og deretter godta eller forkaste pakker avhengig av resultatene av alle disse testene. "Lavnivå"-tilnærmingen er nyttig for programmerere som utvikler biblioteker med nettverksfunksjoner og ulike verktøy.

Vanlige brukere har en tendens til å bruke filterspråk på "høyt nivå". Et typisk applikasjonsspråk som brukes i en sniffer for å beskrive trafikkregler gjør at man kan konstruere uttrykksprimitiver basert på individuelle meldingsfelt i forskjellige protokoller. I dette tilfellet kan forholdet mellom feltverdien og en viss verdi (lik, større, mindre), sammenfallet av verdien med malen, eller ganske enkelt tilstedeværelsen av feltet i meldingen fungere som et kriterium. Primitiver kan kombineres til et komplekst uttrykk ved å bruke logiske funksjoner ("og", "eller", "ikke", etc.).

I åpen kildekode-verden er de facto-standarden for et filterspråk syntaksen som brukes i Pcap-biblioteket. Det er grunnlaget ikke bare for Wireshark, men også for andre åpen kildekode-verktøy, som for eksempel tcpdump-konsoll-snifferen, velkjent i Unix-verdenen. Faktisk er Pcap og tcpdump et felles prosjekt. Det populære Snort-inntrengningsdeteksjonssystemet bruker også Pcap-formatet for å definere trafikkfiltreringsregler i pakkefangstmodus.


Grunnleggende om Pcap-filter

Så, filteret inkluderer en eller flere primitiver... En primitiv består vanligvis av et objekt (nummer eller navn) og en eller flere spesifikasjoner som definerer protokollen (ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp, udp), retning (src, dst , hvilken som helst og etc.) og objekttypen (vert, nett, port osv.). For å avskjære pakker der den utgående IP-adressen er 192.168.56.102, bør du for eksempel bruke et filter som dette:

Ip src vert 192.168.56.102

Eller for å registrere ARP-trafikk som involverer verter på 192.168.56.0-nettverket:

Arp netto 192.168.56

Ofte brukte kvalifiseringer er tabellert (valgfrie komponenter er merket -, alternativ - |, objekter -< >). En fullstendig liste finner du i Pcap-dokumentasjonen (på Linux, tilgjengelig i brukermanualen med kommandoen man pcap-filter).

For å kombinere flere primitiver til ett uttrykk, brukes logiske funksjoner: "og" (angitt med nøkkelordet og eller &&), "eller" (eller eller ||), "ikke" (ikke eller!). For å avskjære trafikk av SSH-protokollen for verten 192.168.56.102 for eksempel, er følgende konstruksjon egnet:

Tcp-port 22 og vert 192.168.56.102

Bruk parenteser for svært komplekse uttrykk. For eksempel:

Net 192.168.56.0/24 og (tcp-port 21 eller tcp-port 22)

Ubegrenset Pcap-filtre

For de som er vant til å leve etter sine egne regler, gir Pcap-biblioteket tilfeldig tilgang til innholdet i nettverkspakker, ved å bruke den fulle kraften til OS-pakkefilteret. Dette gjøres ved å bruke en ganske enkel syntaks:

Proto [exp: størrelse]

hvor protoparameteren er en av protokollene som støttes av Wireshark; exp er forskyvningen i byte fra starten av laget spesifisert i proto, og størrelse er antall byte som skal hentes.

Tatt i betraktning at i primitiver er det mulig å bruke sammenligningsoperasjoner i notasjonen til programmeringsspråket C (>, =,

Eksemplet har imidlertid bare metodologisk betydning, siden denne protokollen lett filtreres av standard icmp-regelen.

Men å velge HTTP-forespørsler laget med GET-metoden fra trafikk på farten er ikke en så lett oppgave for Pcap. Og løsningen foreslått i dokumentasjonen hevder å være original:

Port 80 og tcp [((tcp & 0xf0) >> 2): 4] = 0x47455420

Dette filteret sjekker for byte "G", "E", "T" og "" (hex-verdier 47, 45, 54 og 20) umiddelbart etter TCP-overskriften, hvis lengde beregnes av uttrykket " tcp & 0xf0) >> 2".

Som du kan se fra det siste eksemplet, i tillegg til sammenligningsoperasjoner, er binære operatorer C (+, -, *, /, &, |,>) også tilgjengelige for brukeren direkte i primitivene.


Om visningsfiltre

Hvis vi snakker om forskjellene vise filtre fra Pcap-filtre, så i tillegg til formatet for skrivespesifikasjoner (protokollfeltene ser ut som. lik, le - mindre enn eller lik) og binære operatorer (og, eller, xor, ikke), samt støtte for understrenger.

Å hente delstrenger i felt ligner på å trekke ut vilkårlige byte fra en pakke i Pcap-filtre, men det har en mer fleksibel syntaks. For eksempel vil et uttrykk som dette sjekke de første 4 bytene i det opprinnelige MAC-adressefeltet til en Ethernet-ramme (tilsvarende):

Eth.src [: 4] == 00: 1d: 72: 01

Forskjellen mellom filtrene er selvfølgelig at Pcap-regler brukes når trafikk avskjæres; i det grafiske grensesnittet konfigureres de i dialogboksen "Capture options" (det er forresten mulig å huske ofte brukte uttrykk). Visningsfiltre fungerer med pakker som ligger i listen over hovedprogramvinduet:

Wiresharks innebygde filtreringsundersystem er mye mer brukervennlig. Spesielt er det ikke nødvendig å huske detaljene i meldingsformatet (forskyvninger, feltstørrelser osv.). Det nødvendige meldingsfeltet for denne protokollen kan enkelt finnes i Filter Expression-vinduet, og du kan også velge en betingelse og en forhåndsdefinert verdi fra listen for dette feltet, eller spesifisere din egen. For noen av de mange protokollene som støttes av Wireshark, kan du konfigurere et skjermfilter på denne enkle måten.

Et nesten akademisk eksempel på å bestemme når et bufferoverløp av TCP-segmenter bestemmes ved å bruke følgende kartleggingsregel er veldig avslørende:

Tcp.window_size == 0 && tcp.flags.reset! = 1

Konklusjon

Wireshark-protokollanalysatoren har et kraftig pakkefiltreringssystem, som gjør det mulig å lage komplekse regler ved hjelp av logiske funksjoner og binære operatorer. Fangetidsfiltre er standard og vil være kjent for brukere som har brukt Pcap-baserte nettverksverktøy som tcpdump. Reglene for visning av pakker er enkle å lære og bruke, takket være egenskapene til det grafiske grensesnittet til det aktuelle programmet. Generelt lar funksjonaliteten til Wireshark-filtreringssystemet deg dra nytte av lavnivå-pakkefilteret ganske effektivt.

Bare et stort antall forskjellige filtre. Og det er en enorm mengde dokumentasjon på disse filtrene, som ikke er så lett å forstå. Jeg har samlet de mest interessante og mest brukte Wireshark-filtrene for meg. For nybegynnere kan dette være litt av en guide til Wireshark-filtre, et utgangspunkt for å utforske. Også her i kommentarene inviterer jeg deg til å dele vanlige filtre som du ofte bruker, samt interessante funn - jeg vil legge dem til denne listen.

Husk at Wireshark har visningsfiltre og fangstfiltre. Her tar jeg for meg visningsfiltre, som legges inn i hovedprogramvinduet i det øvre feltet rett under menyen og ikonene til hovedfunksjonene.

For å forstå betydningen av filtre og nøyaktig hva de viser, må du forstå hvordan nettverket fungerer. For å bli kjent med prinsippene for nettverket og protokollene, anbefales det å studere syklusen om driften av datanettverk, den første artikkelen i syklusen "" (resten av forberedelsesprosessen).

Noen av filtrene her er skrevet i generelle termer, og noen er gitt som spesifikke eksempler. Husk at du uansett kan erstatte dataene dine, for eksempel endre portnummeret til det du er interessert i, og også gjøre det samme med IP-adressen, MAC-adressen, tidsverdien osv.

Wireshark-filteroperatører

Filtre kan ha forskjellige betydninger, for eksempel streng, heksadesimal eller tall.

Hvis det søkes etter et unøyaktig samsvar (bedre egnet for ikke-numeriske verdier), så bruk inneholder... For å vise TCP-pakker som inneholder strengen hackware, trenger du for eksempel følgende filter:

Tcp inneholder hackware

Operatører brukes til å finne eksakte verdier. La oss vurdere dem:

Som du kan se er det to varianter av skriving, hvis vi for eksempel vil indikere at filterverdien er lik noe, kan vi bruke == eller ekv.

Ganske komplekse konstruksjoner kan bygges fra filtre som bruker logiske operander, men tilsynelatende, hvis det samme filteret brukes to ganger med sammenligningsoperatører, for eksempel, som her, i et forsøk på å filtrere ikke etter én port, men etter en rekke porter:

Tcp.port> = 8000 && tcp.port<=8180

deretter filterverdien (i dette tilfellet tcp.port) overskrives av den siste verdien, så som et resultat, i stedet for forventet oppførsel, får vi resultatet av arbeidet med bare den siste delen, i dette tilfellet er det

Tcp.port<=8180

Husk denne feilen!

Når det brukes med == (lik) denne feilen mangler.

Wireshark Filter boolske operatører

Logiske operatorer lar deg lage detaljerte filtre ved å bruke flere forhold samtidig. Det anbefales å bruke parenteser i tillegg, da du ellers kanskje ikke får den verdien du forventer.

Operatør Beskrivelse
og / && Logisk OG, data sendes ut hvis de samsvarer med begge deler av filteret. For eksempel filter ip.src == 192.168.1.1 og tcp vil kun vise pakker som kommer fra 192.168.1.1 og som er knyttet til TCP-protokollen. Kun data som samsvarer med begge betingelsene vil bli vist.
eller / || Logisk ELLER, det er nok at bare én betingelse er sann; hvis begge er sanne, så passer det også. For eksempel filter tcp.port == 80 eller tcp.port == 8080 vil vise TCP-pakker som er assosiert (kilde eller destinasjon) med port 80 eller 8080.
ikke /! Boolean brukes IKKE når vi ønsker å ekskludere visse pakker. Det vil si at alle pakker vil vises, bortsett fra de som tilfredsstiller betingelsen etter NOT. For eksempel filter !dns vil vise alle pakker unntatt DNS.

Eksempler på kombinasjoner:

Vis HTTP eller DNS-trafikk:

Http eller dns

Vis all trafikk, unntatt ARP, ICMP og DNS:

! (arp eller icmp eller dns)

Grensesnittfilter

Vis pakker bare sendt eller mottatt på wlan0-grensesnittet:

Frame.interface_name == "wlan0"

Datalink-protokolltrafikk

Slik viser du ARP-trafikk:

Vis ARP-rammer sendt fra enhet med MAC-adresse 00: c0: ca: 96: cf: cb:

Arp.src.hw_mac == 00: c0: ca: 96: cf: cb

Vis ARP-rammer sendt fra enheten med IP-adressen 192.168.50.90:

Arp.src.proto_ipv4 == 192.168.50.90

Vis ARP-protokollrammer sendt til enheten med MAC-adresse 00: 00: 00: 00: 00: 00 (Denne adressen brukes når protokollen prøver å finne ut mål-MAC-adressen. En annen populær adresse som kan forvirre deg er ff: ff: ff: ff: ff: ff, denne adressen er kringkastet, det vil si at meldinger med denne adressen er ment for alle enheter på det lokale nettverket):

Arp.dst.hw_mac == 00: 00: 00: 00: 00: 00

Vis ARP-rammer sendt til enheten med IP-adressen 192.168.50.1:

Arp.dst.proto_ipv4 == 192.168.50.1

Vis Ethernet-trafikk:

Vis rammer (generelt alle rammer, ikke bare ARP, slik tilfellet var i de forrige eksemplene) sendt fra en enhet med en MAC-adresse på 00: c0: ca: 96: cf: cb:

Eth.src == 00: c0: ca: 96: cf: cb

Vis rammer sendt til enheten med MAC-adresse 78: cd: 8e: a6: 73: be:

Eth.dst == 78: cd: 8e: a6: 73: be

Gateway-protokolltrafikk

IPv4-protokollfiltrering

Vis IP-trafikk (dette inkluderer TCP, UDP, samt applikasjonslagsprotokoller DNS, HTTP - det vil si nesten alt, bortsett fra koblingslagsprotokoller som ikke bruker IP-adresser for dataoverføring (i lokale Ethernet-nettverk bruker de MAC- adresser)):

Mer spesifikt refererer dette til IPv4-trafikk, som vanligvis bare refereres til som IP (Internet Protocol).

Vis trafikk knyttet til en spesifikk IP-adresse (skriv den i stedet for x.x.x.x). Pakker vil bli vist der denne IP-adressen er datakilden ELLER destinasjonen:

Ip.addr == x.x.x.x

Vis trafikk knyttet til de angitte to IP-adressene. I henhold til den eneste mulige logikken vil en av disse adressene være kilden, og den andre vil være leveringsadressen.

Ip.addr == x.x.x.x && ip.addr == y.y.y.y

Vis trafikk som kommer fra en vert med IP-adressen 138.201.81.199:

IP.src == 138.201.81.199

Vis trafikk destinert for en vert med IP-adressen 138.201.81.199:

IP.dst == 138.201.81.199

Vær oppmerksom på at IP-protokollen fungerer med IP-adresser, men fungerer ikke med porter. Porter er en del av TCP- og UDP-protokollene. IP-protokollen er kun ansvarlig for å rute trafikk mellom verter.

Filtrering av undernett og IP-områder i Wireshark

Du kan spesifisere et subnett i stedet for én IP-adresse:

IP.addr == 192.168.1.0/24

Filtrering av trafikk sendt fra et spesifikt IP-område. Hvis du trenger å filtrere trafikk som kommer fra et subnett, bruker du et filter på skjemaet:

IP.src == 192.168.1.0/24

Filtrering av trafikk beregnet på å sendes til et spesifikt IP-område. Hvis du trenger å filtrere trafikk hvis destinasjon er et subnett, bruker du et filter på skjemaet:

IP.dst == 192.168.1.0/24

IPv6-protokollfiltrering

Vis IPv6-trafikk (Internet Protocol versjon 6):

Filtrering etter IPv6-adresse. For å filtrere etter IPv6-adresse, bruk filteret:

Ipv6.addr == 2604: a880: 800: c1 :: 2ae: d001

Filtrering av IPv6-undernett og -områder i Wireshark

Du kan spesifisere et undernett for filtrering i stedet for én IPv6-adresse:

Ipv6.addr == 2604: a880: 800: c1 :: 2ae: d000 / 64

Hvis du trenger å filtrere trafikk som kommer fra en spesifikk IPv6-adresse:

Ipv6.src == 2604: a880: 800: c1 :: 2ae: d001

Hvis du trenger å filtrere trafikk sendt til en bestemt IPv6-adresse:

Ipv6.dst == 2604: a880: 800: c1 :: 2ae: d001

Filtrering av trafikk sendt fra et spesifikt IPv6-område. Hvis du trenger å filtrere trafikk som kommer fra et subnett, bruker du et filter på skjemaet:

Ipv6.src == 2604: a880: 800: c1 :: 2ae: d000 / 64

Filtrering av trafikk beregnet på å sendes til et spesifikt IPv6-område. Hvis du trenger å filtrere trafikk hvis destinasjon er et subnett, bruker du et filter på skjemaet:

Ipv6.dst == 2604: a880: 800: c1 :: 2ae: d000 / 64

ICMPv6 (Internet Control Message Protocol)-filtrering i Wireshark gjøres av et filter:

For å se pakker som fungerer som ARP for IPv6, bruk filteret:

Icmpv6.type == 133 eller icmpv6.type == 134 eller icmpv6.type == 135 eller icmpv6.type == 136 eller icmpv6.type == 137

Andre IP-adressefiltre er like for IPv6 og IPv4.

Transportlagsprotokolltrafikk

Slik ser du bare TCP-trafikk:

Vis trafikk hvis kilde- eller målport er en bestemt port, for eksempel 8080:

Tcp.port == 8080

Vis trafikk som kommer fra port 80:

Tcp.srcport == 80

Vis trafikk som sendes til tjenesten som lytter på port 80:

Tcp.dstport == 80

Vis TCP-pakker med SYN-flagg aktivert:

Tcp.flags.syn == 1

Vis TCP-pakker med SYN-flagg aktivert og ACK-flagg deaktivert:

Tcp.flags.syn == 1 && tcp.flags.ack == 0

Tilsvarende for andre flagg:

tcp.flags.syn == 1 tcp.flags.ack == 1 tcp.flags.reset == 1 tcp.flags.fin == 1 tcp.flags.cwr tcp.flags.ecn tcp.flags.urg == 1 tcp.flags.push == 1

Du kan også bruke syntaksen som tcp.flags == 0x0XX, for eksempel:

  • Finn den tcp.flags == 0x001
  • SYN dette tcp.flags == 0x002
  • RST er tcp.flags == 0x004
  • ACK dette tcp.flags == 0x010
  • Installert samtidig ACK og FIN er tcp.flags == 0x011
  • Installert samtidig ACK og SYN er tcp.flags == 0x012
  • Installert samtidig ACK og RST er tcp.flags == 0x014

For å vise pakker som inneholder en streng, for eksempel hackware-strengen:

Tcp inneholder hackware

Følg TCP stream X:

Tcp.stream eq X

Filtrer etter strømnummer:

Tcp.seq == x

Vis omsendinger av pakker. Hjelper med å spore nedgang i applikasjonsytelsen og pakketap:

Dette filteret hentet ut problematiske pakker (tapte segmenter, retransmisjoner osv.) TCP Keep-Alive-pakker passerer gjennom dette filteret, men de er ikke en indikator på problemer.

Tcp.analysis.flags

Filtre for å vurdere kvaliteten på en nettverkstilkobling.

Følgende spesifikasjoner gjelder for TCP-rammer. Dessuten er de ikke basert på rammeoverskriftene - de aktuelle egenskapene (datahopping, duplikater) tildeles av Wireshark-programmet basert på analysen.

Filteret viser informasjon om rammer med ACK-flagget, som er duplikater. Et stort antall slike rammer kan indikere kommunikasjonsproblemer:

Tcp.analysis.duplicate_ack_num == 1

Filter for visning av rammer der forrige segment ikke er fanget opp:

Tcp.analysis.ack_lost_segment

Dette er normalt i begynnelsen av datafangst - siden informasjon ikke fanges opp helt fra begynnelsen av økten.

For å vise rammer som sendes på nytt (sendes på nytt):

Tcp.analysis.retransmission

Viser rammer som ikke er mottatt i riktig rekkefølge:

Tcp.analysis.out_of_order

Slik ser du bare UDP-trafikk:

Ingen flagg brukes for UDP. For denne protokollen kan du bare spesifisere en port.

Vis trafikk som kommer fra port 53:

Udp.srcport == 53

Vis trafikk som sendes til tjenesten som lytter på port 53:

Udp.dstport == 53

En UDP-pakke som inneholder en spesifikk streng, for eksempel en hackware-streng:

Udp inneholder hackware

For å se bare ICMP-trafikk:

For å se bare ICMP v6-trafikk (sjette versjon)

Vis alle ping-svar:

Icmp.type == 0

Vis alle ping-forespørsler:

Icmp.type == 8

Vis alle verts- og port utilgjengelige/avviste feil

Icmp.type == 3

Vis alle forsøk på å omdirigere ruting med ICMP:

Icmp.type == 8

Et eksempel på bruk av CODE-verdien, følgende filter vil vise meldinger om port utilgjengelig:

Icmp.type == 3 && icmp.code == 3

Programprotokolltrafikk

For applikasjonslagsprotokollene HTTP, DNS, SSH, FTP, SMTP, RDP, SNMP, RTSP, GQUIC, CDP, LLMNR, SSDP er det filtre som er navngitt som selve protokollene, men som er skrevet med små bokstaver.

For eksempel, for å se HTTP-trafikk:

For å se trafikken til den nye HTTP / 2-protokollen:

Husk at når du bestemmer hvilken protokoll de overførte dataene tilhører, fortsetter programmet fra nummeret til den brukte porten. Hvis en ikke-standard port brukes, vil ikke programmet kunne finne de nødvendige dataene. For eksempel, hvis en tilkobling ble opprettet til SSH på port 1234, så filteret ssh finner ikke SSH-trafikk.

Filter som bare viser dataene som er sendt inn med POST-metoden:

Http.request.method == "POST"

Filter som kun viser data sendt med GET-metoden:

Http.request.method == "GET"

Søk etter forespørsler til et bestemt nettsted (vert):

Http.host == " "

Søk etter forespørsler til et bestemt nettsted etter del av navnet:

Http.host inneholder "here.partial.name"

Filter for visning av HTTP-forespørsler der informasjonskapsler ble sendt:

Http.informasjonskapsel

Forespørsler der serveren har satt en informasjonskapsel til brukerens nettleser.

Http.set_cookie

Slik søker du etter opplastede bilder:

Http.content_type inneholder "bilde"

Slik søker du etter bestemte typer bilder:

Http.content_type inneholder "gif" http.content_type inneholder "jpeg" http.content_type inneholder "png"

Slik søker du etter filer av en bestemt type:

Http.content_type inneholder "tekst" http.content_type inneholder "xml" http.content_type inneholder "html" http.content_type inneholder "json" http.content_type inneholder "javascript" http.content_type inneholder "x-www-form-urlencode" http. content_type inneholder "komprimert" http.content_type inneholder "applikasjon"

Søk i Wireshark etter forespørsler om å motta filer av en bestemt type. For eksempel, for å søke etter overførte ZIP-arkiver:

Http.request.uri inneholder "zip"

Filtre kan brukes i stedet for http.request.uri for større presisjon http.request.uri.path eller http.request.uri.query, for eksempel for å søke etter forespørsler om å laste ned JPG-filer (lenker til bilder):

Http.request.uri.path inneholder "jpg"

Du kan også filtrere ut forespørsler som inneholder en spesifikk REFERER HTTP-headerverdi. For eksempel, for å søke etter søk der ru-board.com er henvisningsadressen:

Http.referer inneholder "ru-board.com"

Http.autorisasjon

Søk etter filer i en HTTP-strøm:

Http.file_data

For å se hvilke HTTP-latensdata som mottas, brukes følgende konstruksjon:

Http.time> 1

Den vil vise trafikk mottatt senere enn 1 sekund.

For å undersøke problemer kan du analysere statusen til HTTP-svarkodene. For eksempel vil følgende filter vise trafikk som mottok en 404 Not Found-feil:

Http.response.code == 404

Det neste filteret er veldig interessant. Først viser den hvordan komplekse strukturer kan bygges fra individuelle filtre. For det andre lar den deg undersøke HTTP-forespørsler og nettaktivitet generelt, unntatt unødvendige data. Med dette filteret kan du se nettaktivitet på høyt nivå. Reglene i parentesene ekskluderer bilder, Javascript-filer og stilark - alt siden ber om internt. Hvis sidene som studeres inneholder andre innebygde objekter, ekskluder dem på lignende måte:

Http.request &&! (Http.request.uri inneholder ".ico" eller http.request.uri inneholder ".css" eller http.request.uri inneholder ".js" eller http.request.uri inneholder ".gif" eller http.request.uri inneholder ".jpg")

For å se alle DNS-forespørsler og svar:

For å se hvilke DNS-oppslag som tok lang tid:

Dns.tid> 1

Det vises svar som kom inn mer enn et sekund etter at forespørselen ble sendt.

Dette filteret viser hvilke dns-forespørsler som ikke kan løses ordentlig:

Dns.flags.rcode! = 0

Vis kun DNS-forespørsler:

Dns.flags.response == 0

Vis bare DNS-svar:

Dns.flags.response == 1

Vis forespørsler og svar på dem, der IP søkes etter google.com:

Dns.qry.name == "google.com"

Vis DNS-spørringer og svar for A-post:

Dns.qry.type == 1

Vis DNS-spørringer og svar for AAAA-poster:

Dns.qry.type == 28

Vis svar der 216.58.196.3 sendes som IP for A-posten:

Dns.a == 216.58.196.3

Vis svar der 2a01: 4f8: 172: 1d86 :: 1 sendes som IP for AAAA-posten:

Dns.aaaa == 2a01: 4f8: 172: 1d86 :: 1

Vis poster fra CNAME apollo.archlinux.org:

Dns.cname == "apollo.archlinux.org"

Vis svar lengre enn 30:

Dns.resp.len> 30

Vis forespørsler med lengde over 25:

Dns.qry.name.len> 25

Vis svar fra DNS-servere der rekursjon er tilgjengelig:

Dns.flags.recavail == 1

Vis svar fra DNS-servere der rekursjon ikke er tilgjengelig:

Dns.flags.recavail == 0

Er rekursjon ønskelig (hvis den forespurte DNS-serveren ikke har vertsnavninformasjon, bør den spørre andre DNS-servere om denne informasjonen):

Dns.flags.recdesired == 1

Hvis forespørselen inneholder 1 , så er rekursjon nødvendig hvis 0 – da er det ikke ønskelig.

Om du skal godta uautentiserte data ( 0 betyr å ikke akseptere, 1 betyr å akseptere):

Dns.flags.checkdisable == 0

For å se hvordan IP-adresser tildeles via DHCP:

Udp.dstport == 67

Bootp.option.dhcp

Slik viser du DHCP-forespørsler:

Bootp.option.dhcp == 3

Slik viser du DHCP Discover:

Bootp.option.dhcp == 1

SMB-filter. Dette filteret i Info-kolonnen viser hele treet (kulen) av forbindelser, åpne kataloger og åpne filer i sporet.

Smb2.cmd == 3 eller smb2.cmd == 5

Filtre for Wi-Fi-rammer

Vis 4-veis håndtrykkelementer (dvs. EAPOL-rammer):

Vis beacon-rammer:

Wlan.fc.type_subtype == 0x08

Vis proberesponsrammer:

Wlan.fc.type_subtype == 0x05

Vis alt på en gang: EAPOL, beacons, Probe Response:

Wlan.fc.type_subtype == 0x08 || wlan.fc.type_subtype == 0x05 || eapol

Vis trådløse rammer for en bestemt enhet med en BSSID MAC-adresse:

Wlan.addr == BSSID

Vis EAPOL, Beacons, Probe Response for en spesifikk enhet med MAC-adresse 28: 28: 5D: 6C: 16: 24:

(wlan.fc.type_subtype == 0x08 || wlan.fc.type_subtype == 0x05 || eapol) && wlan.addr == 28: 28: 5D: 6C: 16:24

Vis alle PMKID-er:

Eapol && wlan.rsn.ie.pmkid

Vis PMKID, Beacons, Probe Response:

(wlan.fc.type_subtype == 0x08 || wlan.fc.type_subtype == 0x05 || (eapol && wlan.rsn.ie.pmkid))

Vis PMKID, Beacons, Probe Response for AP med MAC-adresse 40: 3D: EC: C2: 72: B8:

(wlan.fc.type_subtype == 0x08 || wlan.fc.type_subtype == 0x05 || (eapol && wlan.rsn.ie.pmkid)) && wlan.addr == 40: 3D: EC: C2: 72: B8

Vis bare den første meldingen i håndtrykket:

Wlan_rsna_eapol.keydes.msgnr == 1

Vis bare den andre meldingen i håndtrykket (kan brukes til å sende melding til håndtrykket med et hvilket som helst nummer):

Wlan_rsna_eapol.keydes.msgnr == 2

Vis rammer for tilgangspunkter med en datahastighet på 1 Mb/s:

Wlan_radio.data_rate == 1

Vis rammer for tilgangspunkter med en hastighet over 10 Mb/s:

Wlan_radio.data_rate> 10

Vis tilgangspunkter på en bestemt frekvens:

Radiotap.channel.freq == 2412

Vis tilgangspunkter med et spesifikt signalnivå:

Wlan_radio.signal_dbm> -50

Filtre relatert til enhetens antenne:

Radiotap.present.antenna == 1

Radiotap.antenna == 1

Hvis du kjenner til andre interessante Wireshark-filtre, vennligst del dem i kommentarene.

De fleste spørsmålene fra brukere når de jobber med WireShark er filtre for å fange opp trafikk. I dag skal vi gå over noen grunnleggende eksempler på dem og vise deg hvordan du setter dem opp riktig!

I prosessen med å analysere nettverks- eller applikasjonsytelsesproblemer, hvis bedriften din ikke har et sentralisert applikasjonsytelsesovervåkingssystem, må du bruke en protokollanalysator (aka sniffer) for å analysere problemer fra 4 til 7 lag av OSI-nettverksmodellen ).

Hvis du ikke har en kommersiell løsning med innebygde automatiske analyseverktøy eller et ekspertsystem, vil kanskje den mest korrekte måten være denne:

    last ned og installer på en bærbar datamaskin en av de beste gratis WireShark-protokollanalysatorene (http://www.wireshark.org/download.html);

    bli komfortabel med grensesnittet;

    undersøke protokollstabelen og deres struktur;

    lære hvordan du arbeider med filtre for å fange opp trafikk;

    lære å jobbe med filtre for trafikkanalyse.

I denne artikkelen vil vi fokusere på det nest siste punktet - hvordan konfigurere filtre for å fange opp trafikk i WireShark.

Eksempler på konfigurering av WireShark-filtre for å fange opp trafikk

Etter å ha valgt et grensesnitt, kan vi enten fortsette å fange trafikk i - alt på rad, men det anbefales ikke å gjøre dette, siden for eksempel med en 50% belastning av et gigabit-grensesnitt, tar det bare noen få millisekunder å sende 100 000 pakker. Derfor er det viktig å forstå hvilket problem vi løser. Da vil vi i det minste allerede ha enten adressen (IP eller MAC) til brukeren eller applikasjonen han klager på eller serveren han har tilgang til.

Dermed er det enkleste filteret i Wireshark IP-adressen til enheten (vert, vert) og dette filteret ser slik ut:

Hvis problemet er mer globalt og vi må fange opp trafikk fra et separat subnett uavhengig av overføringsretningen, bruker vi filteret:

    net 192.168.0.0/24 eller net 192.168.0.0 maske 255.255.255.0

Når du fanger opp trafikk fra et undernett, vil filteret se slik ut:

    src net 192.168.0.0/24 eller src net 192.168.0.0 maske 255.255.255.0

Og hvis du bare trenger å se innkommende trafikk til subnettet vårt for analyse, kan du bruke et av filtrene:

    dst nett 192.168.0.0/24

    dst net 192.168.0.0 maske 255.255.255.0

Hvis brukeren klager over at siden ikke åpnes i nettleseren, kan problemet være med DNS-serveren (port 53) eller med HTTP-protokollen (port 80), så fanger vi opp trafikk ved å bruke "port"-filteret:

Hvis vi bestemmer oss for å fange opp all trafikk for en bestemt server, unntatt HTTP og FTP, konfigureres filteret i henhold til ett av disse to eksemplene:

    vert 192.168.0.1 og ikke (port 21 eller port 80)

    vert 192.168.0.1 og ikke port 21 og ikke port 80

Hvis vi vil se all trafikk på porten, bortsett fra DNS, FTP, ARP-trafikk, vil logikken være lik:

    port ikke dns og ikke 21 og ikke arp

Når du fanger opp trafikk fra applikasjoner som bruker dynamiske porter fra et visst område, vil filteret se vanskelig ut hvis Libcap-versjonen er lavere enn 0.9.1:

    (tcp> 1500 og tcp< 1550) or (tcp >1500 og tcp< 1550)

hvis versjonene er senere, vil filteret være mindre truende og forståelig:

    tcp portrange 1501-1549

For å fange Ethernet-rammer som EAPOL (802.1x EAP-protokollen kalles EAPOL (EAP-innkapsling over LAN)):

    eter proto 0x888e

For referanse vil jeg gi en liste over typer Ethernet-rammer for spesifikke protokoller:

Ethertype (heksadesimal)

Protokoll

0x0000 - 0x05DC

IEEE 802.3 lengde

0x0101 - 0x01FF

IP, Internett-protokoll

ARP, Address Resolution Protocol.

Rammerelé ARP

Raw Frame Relay

DRARP, dynamisk RARP. RARP, Reverse Address Resolution Protocol.

Novell Netware IPX

EtherTalk (AppleTalk over Ethernet)

IBM SNA Services over Ethernet

AARP, AppleTalk Address Resolution Protocol.

EAPS, Ethernet Automatic Protection Switching.

IPX, Internett-pakkeutveksling.

SNMP, Simple Network Management Protocol.

IPv6, Internet Protocol versjon 6.

PPP, punkt-til-punkt-protokoll.

GSMP, General Switch Management Protocol.

MPLS, Multi-Protocol Label Switching (unicast).

MPLS, Multi-Protocol Label Switching (multicast).

PPPoE, PPP over Ethernet (oppdagelsesstadiet).

PPPoE, PPP over Ethernet (PPP Session Stage).

LWAPP, Light Weight Access Point Protocol.

LLDP, Link Layer Discovery Protocol.

EAPOL, EAP over LAN.

Loopback (konfigurasjonstestprotokoll)

VLAN Tag Protocol Identifier

VLAN Tag Protocol Identifier

Hvis du trenger å fange opp trafikk fra en bestemt IP-protokoll, kan du bruke et filter:

    ip proto tcp - fange opp TCP-trafikk

    ip proto udp - fange UDP-trafikk

Det korteste filteret brukes til å fange opp IP-trafikk:

For å kun fange unicast-trafikk når du analyserer utgående og innkommende trafikk til en nettverksenhet, brukes et filter i følgende format:

    ikke kringkasting og ikke multicast

De enkle filtrene vi snakket om kan kombineres med enkle symboler:

    Negasjon: ! Ellerikke

    Union: && ellerog

    Veksling: IIellereller

Eksempel: for å fange opp trafikk fra eller til en enhet med adressen 10.10.10.10, men ikke fra 192.168.0.0-nettverket, vil filteret bli sammenkoblet med negasjon:

    vert 10.10.10.10 &&! nett 192.168

Offsetbytefiltre er de kraftigste og gjør livet mye enklere, men du må kjenne til protokollen og plasseringen av feltene i pakken for å bruke dem. Følgende filtereksempler vil fange opp pakker med en spesifikk feltverdi i overskriftene eller nyttelasten. Det er enkelt å sette opp dem:

Flytt åtte byte i IP-pakken og fange opp trafikk med TTL = 1

Fang opp alle TCP-pakker med en kildeportadresse på 80. Dette tilsvarer src-port 80-filteret.

For referanse, her er offsetbyten til de mest interessante feltene i pakken:

Felt i pakken

Lengde i byte

Filter

IP-hodelengde

IP-pakkelengde

IP-adressekilde

IP-adressedestinasjon

IP-fragmentering

flagg = 3 og Offset = 13

ip & 0x2000 = 0x2000 eller ip & 0x1fff! = 0x0000

TCP-destinasjonsport

TCP-hodelengde

For å konsolidere den mottatte informasjonen vil vi bygge et filter for å fange opp trafikk med en HTTP GET-forespørsel. HTTP bruker port 80, transportprotokollen TCP. Den heksadesimale verdien av ordet GET vil se ut som 0x47455420. Et eksempel på et filter som vi får:

    port 80 og tcp [((tcp & 0xf0 >> 2): 4] = 0x47455420

I denne artikkelen har vi diskutert hvordan du konfigurerer og bruker de mest grunnleggende grunnleggende filtrene for å fange opp trafikk ved å bruke Wireshark-protokollanalysatoren.

De fleste spørsmålene fra brukere når de jobber med WireShark er filtre for å fange opp trafikk. I dag skal vi gå over noen grunnleggende eksempler på dem og vise deg hvordan du setter dem opp riktig!

I prosessen med å analysere nettverks- eller applikasjonsytelsesproblemer, hvis bedriften din ikke har et sentralisert applikasjonsytelsesovervåkingssystem, må du bruke en protokollanalysator (aka sniffer) for å analysere problemer fra 4 til 7 lag av OSI-nettverksmodellen ).

Hvis du ikke har en kommersiell løsning med innebygde automatiske analyseverktøy eller et ekspertsystem, vil kanskje den mest korrekte måten være denne:

    last ned og installer på en bærbar datamaskin en av de beste gratis WireShark-protokollanalysatorene (http://www.wireshark.org/download.html);

    bli komfortabel med grensesnittet;

    undersøke protokollstabelen og deres struktur;

    lære hvordan du arbeider med filtre for å fange opp trafikk;

    lære å jobbe med filtre for trafikkanalyse.

I denne artikkelen vil vi fokusere på det nest siste punktet - hvordan konfigurere filtre for å fange opp trafikk i WireShark.

Eksempler på konfigurering av WireShark-filtre for å fange opp trafikk

Etter å ha valgt et grensesnitt, kan vi enten fortsette å fange trafikk i - alt på rad, men det anbefales ikke å gjøre dette, siden for eksempel med en 50% belastning av et gigabit-grensesnitt, tar det bare noen få millisekunder å sende 100 000 pakker. Derfor er det viktig å forstå hvilket problem vi løser. Da vil vi i det minste allerede ha enten adressen (IP eller MAC) til brukeren eller applikasjonen han klager på eller serveren han har tilgang til.

Dermed er det enkleste filteret i Wireshark IP-adressen til enheten (vert, vert) og dette filteret ser slik ut:

Hvis problemet er mer globalt og vi må fange opp trafikk fra et separat subnett uavhengig av overføringsretningen, bruker vi filteret:

    net 192.168.0.0/24 eller net 192.168.0.0 maske 255.255.255.0

Når du fanger opp trafikk fra et undernett, vil filteret se slik ut:

    src net 192.168.0.0/24 eller src net 192.168.0.0 maske 255.255.255.0

Og hvis du bare trenger å se innkommende trafikk til subnettet vårt for analyse, kan du bruke et av filtrene:

    dst nett 192.168.0.0/24

    dst net 192.168.0.0 maske 255.255.255.0

Hvis brukeren klager over at siden ikke åpnes i nettleseren, kan problemet være med DNS-serveren (port 53) eller med HTTP-protokollen (port 80), så fanger vi opp trafikk ved å bruke "port"-filteret:

Hvis vi bestemmer oss for å fange opp all trafikk for en bestemt server, unntatt HTTP og FTP, konfigureres filteret i henhold til ett av disse to eksemplene:

    vert 192.168.0.1 og ikke (port 21 eller port 80)

    vert 192.168.0.1 og ikke port 21 og ikke port 80

Hvis vi vil se all trafikk på porten, bortsett fra DNS, FTP, ARP-trafikk, vil logikken være lik:

    port ikke dns og ikke 21 og ikke arp

Når du fanger opp trafikk fra applikasjoner som bruker dynamiske porter fra et visst område, vil filteret se vanskelig ut hvis Libcap-versjonen er lavere enn 0.9.1:

    (tcp> 1500 og tcp< 1550) or (tcp >1500 og tcp< 1550)

hvis versjonene er senere, vil filteret være mindre truende og forståelig:

    tcp portrange 1501-1549

For å fange Ethernet-rammer som EAPOL (802.1x EAP-protokollen kalles EAPOL (EAP-innkapsling over LAN)):

    eter proto 0x888e

For referanse vil jeg gi en liste over typer Ethernet-rammer for spesifikke protokoller:

Ethertype (heksadesimal)

Protokoll

0x0000 - 0x05DC

IEEE 802.3 lengde

0x0101 - 0x01FF

IP, Internett-protokoll

ARP, Address Resolution Protocol.

Rammerelé ARP

Raw Frame Relay

DRARP, dynamisk RARP. RARP, Reverse Address Resolution Protocol.

Novell Netware IPX

EtherTalk (AppleTalk over Ethernet)

IBM SNA Services over Ethernet

AARP, AppleTalk Address Resolution Protocol.

EAPS, Ethernet Automatic Protection Switching.

IPX, Internett-pakkeutveksling.

SNMP, Simple Network Management Protocol.

IPv6, Internet Protocol versjon 6.

PPP, punkt-til-punkt-protokoll.

GSMP, General Switch Management Protocol.

MPLS, Multi-Protocol Label Switching (unicast).

MPLS, Multi-Protocol Label Switching (multicast).

PPPoE, PPP over Ethernet (oppdagelsesstadiet).

PPPoE, PPP over Ethernet (PPP Session Stage).

LWAPP, Light Weight Access Point Protocol.

LLDP, Link Layer Discovery Protocol.

EAPOL, EAP over LAN.

Loopback (konfigurasjonstestprotokoll)

VLAN Tag Protocol Identifier

VLAN Tag Protocol Identifier

Hvis du trenger å fange opp trafikk fra en bestemt IP-protokoll, kan du bruke et filter:

    ip proto tcp - fange opp TCP-trafikk

    ip proto udp - fange UDP-trafikk

Det korteste filteret brukes til å fange opp IP-trafikk:

For å kun fange unicast-trafikk når du analyserer utgående og innkommende trafikk til en nettverksenhet, brukes et filter i følgende format:

    ikke kringkasting og ikke multicast

De enkle filtrene vi snakket om kan kombineres med enkle symboler:

    Negasjon: ! Ellerikke

    Union: && ellerog

    Veksling: IIellereller

Eksempel: for å fange opp trafikk fra eller til en enhet med adressen 10.10.10.10, men ikke fra 192.168.0.0-nettverket, vil filteret bli sammenkoblet med negasjon:

    vert 10.10.10.10 &&! nett 192.168

Offsetbytefiltre er de kraftigste og gjør livet mye enklere, men du må kjenne til protokollen og plasseringen av feltene i pakken for å bruke dem. Følgende filtereksempler vil fange opp pakker med en spesifikk feltverdi i overskriftene eller nyttelasten. Det er enkelt å sette opp dem:

Flytt åtte byte i IP-pakken og fange opp trafikk med TTL = 1

Fang opp alle TCP-pakker med en kildeportadresse på 80. Dette tilsvarer src-port 80-filteret.

For referanse, her er offsetbyten til de mest interessante feltene i pakken:

Felt i pakken

Lengde i byte

Filter

IP-hodelengde

IP-pakkelengde

IP-adressekilde

IP-adressedestinasjon

IP-fragmentering

flagg = 3 og Offset = 13

ip & 0x2000 = 0x2000 eller ip & 0x1fff! = 0x0000

TCP-destinasjonsport

TCP-hodelengde

For å konsolidere den mottatte informasjonen vil vi bygge et filter for å fange opp trafikk med en HTTP GET-forespørsel. HTTP bruker port 80, transportprotokollen TCP. Den heksadesimale verdien av ordet GET vil se ut som 0x47455420. Et eksempel på et filter som vi får:

    port 80 og tcp [((tcp & 0xf0 >> 2): 4] = 0x47455420

I denne artikkelen har vi diskutert hvordan du konfigurerer og bruker de mest grunnleggende grunnleggende filtrene for å fange opp trafikk ved å bruke Wireshark-protokollanalysatoren.