Hoe te Gebruiken Wireshark Filters op Linux

0
48
Inara Prusakova/Shutterstock

Wireshark is een wereld-klasse packet analyzer beschikbaar op Linux, Windows, en macOS. De filters zijn flexibel en geavanceerd, maar soms contra-intuïtief. We leggen de “valkuilen” u moet worden op de uitkijk voor.

Packet Analyse met een Real Bite

Wireshark is een van de juwelen van de open-source wereld. Het is een wereld-klasse software, gebruikt door professionals en amateurs te onderzoeken en diagnosticeren van netwerkproblemen. De ontwikkelaars van de Software gebruiken voor het lokaliseren en analyseren van fouten in de communicatie routines. Beveiliging onderzoekers gebruiken het vast te leggen en te ontrafelen schadelijke activiteiten op een netwerk.

Een typische workflow is voor het uitvoeren van Wireshark Capture-modus, zodat het records netwerk verkeer via één van de netwerk interfaces op de computer. De netwerk pakketten die worden weergegeven in real-time, zoals ze zijn vastgelegd. Echter, het is in de post-capture analyse dat de granulaire detail van wat er in het netwerk wordt geopenbaard.

De gemaakte pakketten worden wel een spoor. Wanneer de opname is voltooid, wordt de trace kan worden versterkt door middel van een packet-per pakket. U bent in staat om te controleren pakket in het kleinste detail in kaart brengen van het netwerk “gesprekken” tussen apparaten, en gebruik de filters die u wilt opnemen (of uitsluiten) pakketten van uw analyse.

Wireshark de filtermogelijkheden zijn ongeëvenaard, met een grote flexibiliteit en oplossend vermogen. Er zijn subtiliteiten van hun syntaxis die het gemakkelijk maken voor het schrijven van een filter en een resultaat dat niet voldoet aan uw verwachtingen.

Als u niet begrijpt hoe filters werken in Wireshark, zult u nooit uit de eerste versnelling en gas de mogelijkheden van de software.

Het Installeren Van Wireshark

Wanneer u de installatie van Wireshark, wordt u gevraagd of iemand met een niet-root account aan moeten kunnen vastleggen netwerk van sporen. Nee te zeggen tegen dit wellicht een aantrekkelijk idee. Je zou niet willen dat iedereen in staat om te zien wat er gebeurt op het netwerk. Echter, het installeren van Wireshark zodat alleen met root-rechten kan gebruiken betekent al haar onderdelen zal uitvoeren met verhoogde rechten.

Wireshark bevat meer dan 2 miljoen lijnen van ingewikkelde code, het communiceert met uw computer op het laagste niveau. De beste security practices adviseren dat zo weinig code mogelijk moet uitvoeren met verhoogde rechten—in het bijzonder wanneer het besturingssysteem op een dergelijk laag niveau.

Het is veel veiliger om te draaien Wireshark met een gewone gebruikersaccount. We kunnen nog steeds beperken wie heeft de mogelijkheid om Wireshark. Dit vereist een aantal extra stappen voor het instellen, maar het is de veiligste manier om verder te gaan. De data capture-elementen van Wireshark nog steeds uitvoeren met verhoogde bevoegdheden, maar de rest van Wireshark loopt als een normaal proces.

Om te beginnen met de installatie van Ubuntu, type:

sudo apt-get install wireshark

Op Fedora, type:

sudo dnf installeren wireshark

Op Manjaro, gebruik je dit commando:

sudo pacman -Syu wireshark-qt

Tijdens de installatie, zie je het onderstaande scherm, waarin wordt aanbevolen dat u niet Wireshark als root. Druk op Tab om te verplaatsen van de rode markering “<OK>” en druk op de spatiebalk.

Op het volgende scherm, druk op Tab om te verplaatsen van de rode markering “<JA>” en druk op de spatiebalk.

Uitvoeren van Wireshark, moet u lid zijn van de “wireshark” – groep, die is aangemaakt tijdens de installatie. Hierdoor kunt u bepalen wie mag Wireshark. Iedereen die niet in de “wireshark” groep niet kan worden uitgevoerd Wireshark.

Om zelf toe te voegen aan de “Wireshark” groep gebruik je dit commando:

sudo usermod-a -G wireshark $GEBRUIKER

Voor de nieuwe groep lidmaatschap te activeren, kunt u zich afmelden en weer in of gebruik je dit commando:

newgrp wireshark

Om te zien als je in de nieuwe groep, gebruiken de groepen commando:

groepen

Moet je zien “wireshark” in de lijst van groepen.

Start Wireshark

U kunt starten Wireshark met het onderstaande commando. De ampersand (&) gaat van start Wireshark als een taak op de achtergrond, wat betekent dat je kunt voeren met behulp van het terminal-venster. U kunt zelfs het terminal venster sluiten en Wireshark zal blijven uitvoeren.

Typ het volgende:

Wireshark &

GERELATEERD: Hoe om te Rennen en te beheren Achtergrond Processen op Linux

De Wireshark-interface wordt weergegeven. De netwerk interface op de apparaten die in uw computer worden weergegeven, samen met een aantal ingebouwde pseudo-apparaten.

Een golvende lijn naast een interface betekent dat het leven en de netwerk verkeer is erdoorheen. Een vlakke lijn betekent dat er geen activiteit op de interface. Het bovenste item in deze lijst is “enp0s3,” de bedrade verbinding voor deze computer en, zoals verwacht, het toont de activiteit.

Om te beginnen met het vastleggen van pakketten, wij met de rechtermuisknop op “enp0s3,” en selecteer vervolgens “Start Capture” in het context menu.

U kunt filters instellen om het bedrag te verminderen van het verkeer Wireshark vangt. Wij geven de voorkeur om alles vast te leggen en te filteren wat we niet willen zien bij het doen van een analyse. Op deze manier weten we alles wat er gebeurd is in de trace. Je wilt niet per ongeluk missen een netwerk evenement dat verklaart de situatie waarin je je onderzoeken door uw capture filter.

Natuurlijk, voor high-traffic netwerken, sporen kan al snel erg groot, dus filteren op het vastleggen zin in dit scenario. Of misschien heeft u gewoon liever het op die manier.

Merk op dat de syntaxis voor het vastleggen van filters is iets anders dan dat voor geeft.

De gemarkeerde pictogrammen in de bovenstaande afbeelding geven het volgende, van links naar rechts:

  • Shark fin: Als deze is blauw, het klikken zal het starten van een packet capture. Als Wireshark is het vastleggen van pakketten, wordt dit pictogram grijs.
  • Vierkant: Als deze rood is, is het klikken zal het stoppen met het uitvoeren van een packet capture. Als Wireshark is niet het vastleggen van pakketten, wordt dit pictogram grijs.
  • Shark fin met een cirkelvormige pijl: Als deze groen is, te klikken, dan stopt de actieve trace. Dit geeft u de mogelijkheid om te slaan of te verwijderen van de gevangen pakketten, en opnieuw op de sporen. Als Wireshark is niet het vastleggen van pakketten, wordt dit pictogram grijs.

Het analyseren van de Trace

Klik op het rode plein icoon stopt met de gegevens vastleggen, zodat u kunt analyseren van de pakketten vastgelegd in het traceerlogboek. De pakketten worden gepresenteerd in volgorde van de tijd, en de kleur gecodeerd volgens het protocol van het pakket. De details van de geselecteerde pakket zijn weergegeven in de onderste twee glasplaten in de Wireshark interface.

Een eenvoudige manier om het lezen van de trace makkelijker is om Wireshark betekenisvolle namen voor de bron-en doel-IP-adressen van de pakketten. Om dit te doen, klikt u op Weergave > Naam Resolutie en selecteer “op te Lossen Netwerk Adressen.”

Wireshark zal proberen op te lossen de naam van de apparaten die zijn verzonden en ontvangen elk pakket. Het niet kunnen identificeren van elk apparaat, maar die kan helpen u leest het spoor.

Het beeld wordt verplaatst naar de linkerkant zal onthullen meer kolommen aan de rechterkant. De info-kolom bevat alle informatie Wireshark kan sporen van het pakket. In het voorbeeld hieronder zien we een aantal ping-verzoeken en antwoorden.

Standaard Wireshark geeft van alle pakketten in de volgorde waarin ze werden getraceerd. Veel apparaten verzenden pakketten heen en weer tegelijk. Dit betekent dat een enkel gesprek tussen de twee apparaten is waarschijnlijk pakketten van anderen interlaced tussen hen.

Om te onderzoeken met een enkel gesprek, kunt u isoleren door het protocol. Het protocol voor elk pakket wordt weergegeven in de kolom protocol. De meeste van de protocollen die u ziet behoren tot de TCP/IP-familie. U kunt de exacte protocol of het gebruik van Ethernet als een soort van een catch-all.

Rechts-klik op een van de pakketten in de volgorde die u wilt bekijken, en klik vervolgens op Filter Gesprek > Ethernet. In het onderstaande voorbeeld hebben we gekozen voor een ping request-pakket.

De volgorde van de pakketten wordt weergegeven zonder anderen tussen hen, als Wireshark automatisch gegenereerd een filter om dit te doen. Het is weergegeven in de filter bar en gemarkeerd in het groen, dat geeft de syntaxis van de filter is correct.

Voor het wissen van het filter, klik op de “X” op het filter.

Het Maken Van Uw Eigen Filters

Laten we een eenvoudig filter in de filter bar:

ip.addr == 192.168.4.20

Dit selecteert alle pakketten die zijn verstuurd van of ontvangen door het apparaat met IP-adres 192.168.4.20. Opmerking de dubbel is-teken (==) geen ruimte tussen hen.

Om de pakketten verstuurd door een apparaat (de bron), kunt u gebruik maken van ip.src; de pakketten ziet dat zijn aangekomen in een apparaat (de bestemming), kunt u gebruik maken van ip.dst, zoals hieronder weergegeven:

ip.dst == 192.168.4.20 && ip.src == 192.168.4.28

Let op het gebruik van een dubbele ampersand (&&) om aan te geven van de logische ‘en’. Dit filter ziet er voor pakketten aangekomen bij 192.168.4.20 van 192.168.4.28.

Mensen die nieuw zijn met Wireshark filters denken vaak dat een filter als dit wordt vast leggen van alle pakketten tussen twee IP-adressen, maar dat is niet het geval.

Wat het eigenlijk doet is het filter alle pakketten naar of vanaf het IP-adres 192.168.4.20, ongeacht waar ze vandaan komen of waar ze naartoe gestuurd werden. Het doet hetzelfde met alle pakketten van IP-adres 192.168.4.28. Simpeler gezegd, het filtert al het verkeer naar of vanuit één IP-adres.

U kunt kijken voor de activiteit op andere protocollen, ook. Bijvoorbeeld, u kunt deze filter voor HTTP-verzoeken:

http.aanvraag

Uitsluiten pakketten die ofwel vandaan kwamen of werden gestuurd om een apparaat te maken, gebruik een uitroepteken (!) en zet het filter tussen haakjes [()]:

!(ip.addr == 192.168.4.14)

Dit filter sluit alle pakketten die worden verzonden naar of van 192.168.4.14.

Het is contra-intuïtief omdat de filter bevat de gelijkheid van de operator (==). Je zou verwacht hebben dat je zou dit type filter als volgt:

ip.addr !=192.168.4.14

Echter, dit zal niet werken.

U kunt ook zoeken naar tekenreeksen in pakketten, door het protocol. Dit filter zoekt voor Transmission Control Protocol (TCP) – pakketten bevatten de string “youtube”:

tcp bevat youtube

Een filter dat ziet er voor de doorgifte is nuttig als een manier om te controleren of er een probleem. Pakketten zijn pakketten dat opnieuw is verzonden, omdat ze zijn beschadigd of verloren gegaan tijdens de eerste uitzending. Te veel herhalingen geeft een trage verbinding of een apparaat dat is traag om te reageren.

Typ het volgende:

tcp.analyse.doorgifte

Geboorte, Leven, Dood, en Versleuteling

Een netwerk verbinding tussen twee apparaten is gestart als één van de contacten de andere en stuurt een SYN (synchroniseren) pakket. De ontvangende apparaat stuurt een ACK (bevestiging) pakket. Het geeft als het accepteren van de verbinding door het sturen van een SYN-pakket.

SYN en ACK zijn eigenlijk twee vlaggen in hetzelfde pakket. De oorspronkelijke apparaat erkent de SYN door het sturen van een ACK, en dan de apparaten die een netwerkverbinding tot stand brengen.

Dit is het zogenaamde ‘ three-way handshake:

EEN -> SYN -> B

EEN <- SYN, ACK <- B

EEN -> ACK -> B

In de screenshot hieronder, iemand op de computer “nostromo.lokale” maakt een Secure Shell (SSH) verbinding met de computer “ubuntu20-04.lokale.” De three-way handshake ‘ is het eerste deel van de communicatie tussen de twee computers. Merk op dat de twee lijnen die de SYN-pakketten zijn voorzien van een kleurcode in donker grijs.

Door de display schuiven om de kolommen aan de rechterkant toont de SYN , SYN/ACK, en ACK handdruk pakketten.

U zult merken dat de packet-uitwisseling tussen de twee computers wisselt tussen de TCP-en SSH-protocollen. De data pakketten doorgelaten worden door de versleutelde SSH verbinding, maar bericht pakketten (zoals ACK) worden verzonden via TCP. We filteren de TCP-pakketten kort.

Wanneer de netwerkverbinding is niet meer nodig, het is weggegooid. Het pakket volgorde te breken een netwerk verbinding is een vier-way handshake.

De ene kant stuurt een FIN (finish) pakket. Het andere uiteinde stuurt een ACK in het erkennen van de FIN, en dan stuurt ook een FIN tot het ermee eens dat de verbinding moet worden verbroken. De eerste kant stuurt een ACK voor de FIN het net ontvangen, en de verbinding met het netwerk wordt vervolgens ontmanteld.

Hier is wat de vier-way handshake eruit ziet:

EEN -> FIN -> B

EEN <- FIN, ACK <- B

EEN -> ACK -> B

Soms is de oorspronkelijke FIN piggybacks op een ACK-pakket dat zou het worden verzonden in ieder geval, zoals hieronder weergegeven:

EEN -> FIN, ACK -> B

EEN <- FIN, ACK <- B

EEN -> ACK -> B

Dit is wat er gebeurt in dit voorbeeld.

Als we willen zien alleen de SSH-verkeer voor dit gesprek, kunnen we gebruik maken van een filter dat bepaalt dat protocol. Wij typ het volgende om alle verkeer met behulp van het SSH-protocol en van de externe computer:

ip.addr == 192.168.4.25 && ssh

Dit filtert alles behalve SSH verkeer naar en van 192.168.4.25.

Andere Handige Filter-Sjablonen

Wanneer u aan het typen bent een filter in de filter bar, het blijft rood totdat het filter is syntactisch correct zijn. Het wordt groen wanneer het filter is correct en compleet is.

Als u een protocol zoals tcp, ip, udp, of shh, gevolgd door een punt (.) een menu verschijnt. Het zal een lijst van recente filters die dat protocol, en al de velden die kunnen worden gebruikt in filters voor dat protocol naam.

Bijvoorbeeld met ip, kunt u gebruik maken van ip.addr, ip.checksum, ip.src, ip.dst, ip.id, ip.host, en tientallen anderen.

Gebruik de onderstaande filter-sjablonen als basis van uw filters:

  • Alleen HTTP-protocol pakketten: http
  • Weer te geven DNS-protocol pakketten: dns
  • Alleen TCP-pakketten met 4000 als een bron-of bestemmingspoort: tcp.port==4000
  • Toon alle TCP-reset packets: http.aanvraag
  • Filter ARP, ICMP, en DNS-pakketten: !arp (of icmp-of dns -)
  • Toon alle verzendingen in een trace: tcp.analyse.doorgifte
  • Filteren vlaggen (zoals SYN of FIN): dan moet U een vergelijking waarde voor deze: 1 betekent dat de vlag is ingesteld, en 0 betekent dat het niet. Zo, een voorbeeld zou kunnen zijn: tcp.vlaggen.syn == 1.

We hebben al een aantal van deze beginselen en de fundamentele gebruik van filters, maar, natuurlijk, er is veel meer.

Om te genieten van de volledige reikwijdte en kracht van Wireshark filters, zorg ervoor om te controleren de online referentie.

LEES VERDER

  • “6 Tips voor het Organiseren van Uw iPhone Apps
  • “Hoe Gebruik Wireshark Filters op Linux
  • “Windows-10 Zal Binnenkort laten Zien Rand van de Tabbladen in de Browser op Alt+Tab
  • “Hoe om Draadloos te Koppelen Stadions Controller naar een Android-Apparaat
  • “Hoe opnieuw openen van Microsoft Outlook in de Weergave Conversatie Na het Sorteren van een Map