„Wireshark“ yra faktinis kelių tinklo problemų, susijusių su tinklo trikčių šalinimu, saugos problemų nagrinėjimu, įtartinos programos tinklo srauto tikrinimu, protokolo diegimo derinimu, taip pat tinklo protokolo mokymosi tikslais, eigos įrankis.
„Wireshark“ projektas buvo inicijuotas 1998 m. Dėka savanoriško pasaulinio tinklo eksperto indėlio, jis ir toliau atnaujina naujas technologijas ir šifravimo standartus. Taigi tai yra vienas geriausių paketinių analizatorių įrankių, kurį įvairios valstybinės agentūros, švietimo institutai ir ne pelno organizacijos naudoja kaip standartinį komercinį įrankį.
„Wireshark“ įrankį sudaro daugybė funkcijų. Kai kurie iš jų yra šie:
- Daugiaplatformis: jis prieinamas „Unix“, „Mac“ ir „Windows“ sistemoms.
- Jis fiksuoja paketus iš įvairių tinklo laikmenų, t.e., Belaidis LAN, Ethernet, USB, „Bluetooth“ ir kt.
- Atidaromi paketiniai failai, užfiksuoti kitų programų, tokių kaip „Oracle Snoop“ ir „atmsnoop“, „Nmap“, „tcpdump“, „Microsoft Network Monitor“, SNORT ir daugelis kitų.
- Tai išsaugo ir eksportuoja užfiksuotus paketinius duomenis įvairiais formatais (CSV, XML, paprastuoju tekstu ir kt.).).
- Jis teikia aprašymo palaikymą protokolams, įskaitant SSL, WPA / WPA2, IPsec ir daugelį kitų.
- Tai apima fiksavimo ir rodymo filtrus.
Tačiau „Wireshark“ neįspės apie jokią kenkėjišką veiklą. Tai tik padės jums patikrinti ir nustatyti, kas vyksta jūsų tinkle. Be to, jis analizuos tik tinklo protokolą / veiklas ir neatliks jokios kitos veiklos, pavyzdžiui, siunčia / perima paketus.
Šiame straipsnyje pateikiama išsami pamoka, pradedama nuo pagrindų (t.e., filtravimas, „Wireshark“ tinklo sluoksniai ir kt.) ir nukreips jus į eismo analizės gylį.
„Wireshark“ filtrai
„Wireshark“ turi galingus filtrų variklius, fiksavimo ir ekrano filtrus, kad pašalintų triukšmą iš tinklo ar jau užfiksuotą srautą. Šie filtrai susiaurina nereikalingą srautą ir rodo tik tuos paketus, kuriuos norite pamatyti. Ši funkcija padeda tinklo administratoriams šalinti iškilusias problemas.
Prieš eidami į filtrų detales. Jei jums įdomu, kaip užfiksuoti tinklo srautą be jokio filtro, galite paspausti „Ctrl“ + E arba „Wireshark“ sąsajoje pereiti į parinktį „Užfiksuoti“ ir spustelėkite Pradėti.
Dabar įsigilinkime į galimus filtrus.
Užfiksuoti filtrą
„Wireshark“ suteikia galimybę sumažinti neapdorotų paketų užfiksavimo dydį, leidžiant jums naudoti fiksavimo filtrą. Bet jis užfiksuoja tik paketinį srautą, kuris atitinka filtrą, ir nepaiso likusio jo. Ši funkcija padeda stebėti ir analizuoti konkrečios programos srautą naudojant tinklą.
Nepainiokite šio filtro su ekrano filtrais. Tai nėra ekrano filtras. Šis filtras rodomas pagrindiniame lange, kurį reikia nustatyti prieš pradedant paketų fiksavimą. Be to, fiksuodami negalite modifikuoti šio filtro.
Galite eiti į Fiksuoti sąsajos parinktį ir pasirinkite Užfiksuokite filtrus.
Jums bus pasiūlyta langas, kaip parodyta momentinėje nuotraukoje. Galite pasirinkti bet kurį filtrą iš filtrų sąrašo arba pridėti / sukurti naują filtrą spustelėdami + mygtuką.
Naudingų fiksavimo filtrų sąrašo pavyzdžiai:
- pagrindinio kompiuterio ip_adresas - fiksuoja srautą, tik tarp konkretaus bendraujančio IP adreso
- net 192.168.0.0/24 - fiksuoja srautą tarp IP adresų diapazonų / CIDR
- 53 uostas - fiksuoja DNS srautą
- tcp portrange 2051-3502 - fiksuoja TCP srautą iš uosto diapazono 2051-3502
- uostas ne 22 ir ne 21 - užfiksuoti visą srautą, išskyrus SSH ir FTP
Ekrano filtras
Vaizdo filtrai leidžia paslėpti kai kuriuos paketus nuo jau užfiksuoto tinklo srauto. Šiuos filtrus galima pridėti virš užfiksuotų sąrašų ir juos galima keisti skrendant. Dabar galite valdyti ir susiaurinti paketus, į kuriuos norite sutelkti dėmesį, paslėpdami nereikalingus paketus.
Filtrus galite pridėti ekrano filtrų įrankių juostoje tiesiai virš pirmojo langelio, kuriame yra informacija apie paketus. Šis filtras gali būti naudojamas paketams rodyti pagal protokolą, šaltinio IP adresą, paskirties IP adresą, prievadus, laukų vertę ir informaciją, laukų palyginimą ir daug daugiau.
Teisingai! Galite sukurti filtrų derinį naudodami loginius operatorius, pvz., ==.!=, ||, && ir kt.
Keli vieno TCP protokolo ir kombinuoto filtro rodymo filtrų pavyzdžiai pateikti žemiau:
Tinklo sluoksniai „Wireshark“
Išskyrus paketų patikrinimą, „Wireshark“ pateikia OSI sluoksnius, kurie padeda atlikti trikčių šalinimo procesą. „Wireshark“ rodo sluoksnius atvirkštine tvarka, pvz .:
- Fizinis sluoksnis
- Duomenų ryšio sluoksnis
- Tinklo sluoksnis
- Transporto sluoksnis
- Programos sluoksnis
Atminkite, kad „Wireshark“ ne visada rodo fizinį sluoksnį. Dabar kasinėsime kiekvieną sluoksnį, kad suprastume svarbų paketų analizės aspektą ir tai, ką kiekvienas sluoksnis pateikia „Wireshark“.
Fizinis sluoksnis
Fizinis sluoksnis, kaip parodyta kitoje momentinėje nuotraukoje, pateikia fizinę rėmo santrauką, pvz., Aparatinės įrangos informaciją. Kaip tinklo administratorius, jūs paprastai neišgaunate informacijos iš šio sluoksnio.
Duomenų ryšio sluoksnis
Kitame duomenų ryšio sluoksnyje yra šaltinio ir paskirties tinklo kortelės adresas. Tai gana paprasta, nes rėmelį iš nešiojamojo kompiuterio pateikia tik į maršrutizatorių arba kitą gretimą rėmelį fizinėje terpėje.
Tinklo sluoksnis
Tinklo sluoksnyje pateikiami šaltinio ir paskirties IP adresai, IP versija, antraštės ilgis, bendras paketo ilgis ir kita informacija.
Transporto sluoksnis
Šiame sluoksnyje „Wireshark“ rodo informaciją apie transporto sluoksnį, kurį sudaro SRC prievadas, DST prievadas, antraštės ilgis ir sekos numeris, kuris keičiasi kiekvienam paketui.
Programos sluoksnis
Paskutiniame sluoksnyje galite pamatyti, kokio tipo duomenys siunčiami laikmenoje ir kuri programa naudojama, pvz., FTP, HTTP, SSH ir kt.
Eismo analizė
ICMP srauto analizė
ICMP naudojamas pranešant apie klaidas ir atliekant bandymus nustatant, ar duomenys laiku pasiekia numatytą tikslą, ar ne. „Ping“ programa naudoja ICMP pranešimus, kad išbandytų ryšio tarp įrenginių greitį ir praneštų, kiek laiko paketas pasiekia paskirties vietą, tada grįžta.
Pingas naudoja ICMP_echo_request pranešimą į tinklo įrenginį, o įrenginys atsako ICMP_echo_reply pranešimu. Norėdami užfiksuoti „Wireshark“ paketus, paleiskite „Wireshark“ fiksavimo funkciją, atidarykite terminalą ir vykdykite šią komandą:
ubuntu $ ubuntu: ~ $ ping google.comNaudokite „Ctrl“ + C nutraukti paketų surinkimo procesą „Wireshark“. Žemiau esančioje nuotraukoje galite pastebėti ICMP paketas išsiųstas = gautas ICMP paketas praradus paketus 0%.
„Wireshark“ fiksavimo srityje pasirinkite pirmąjį „ICMP_echo_request“ paketą ir stebėkite išsamią informaciją atidarydami vidurinę „Wireshark“ sritį.
Tinklo sluoksnyje galite pastebėti šaltinį Src kaip mano ip_adresas, o paskirties vieta Dst „ip_address“ yra „Google“ serveris, o IP sluoksnyje protokolas minimas kaip ICMP.
Dabar priartiname ICMP paketo informaciją, išplėsdami interneto valdymo pranešimų protokolą ir iššifruojame pažymėtus langelius toliau pateiktoje fotografijoje:
- Tipas: nustatytas 8 bitų laukas į 8 reiškia aido užklausos pranešimą
- Kodas: ICMP paketams visada nulis
- kontrolinė suma: 0x46c8
- Identifikavimo numeris (BE): 19797
- Identifikavimo numeris (LE): 21837
- Eilės numeris (BE): 1
- Eilės numeris (LE): 256
Identifikatorius ir eilės numeriai suderinami, kad būtų lengviau nustatyti atsakymus į aido užklausas. Panašiai, prieš perduodant paketus, kontrolinė suma apskaičiuojama ir įtraukiama į lauką, kad būtų galima palyginti su gauto duomenų paketo kontroline suma.
Dabar ICMP atsakymo pakete atkreipkite dėmesį į IPv4 sluoksnį. Šaltinio ir paskirties adresai pasikeitė.
ICMP sluoksnyje patikrinkite ir palyginkite šiuos svarbius laukus:
- Tipas: nustatytas 0 bitų laukas į 0 reiškia „Echo“ atsakymo pranešimą
- Kodas: ICMP paketams visada yra 0
- kontrolinė suma: 0x46c8
- Identifikavimo numeris (BE): 19797
- Identifikavimo numeris (LE): 21837
- Eilės numeris (BE): 1
- Eilės numeris (LE): 256
Galite pastebėti, kad ICMP atsakymas atkartoja tą pačią užklausos kontrolinę sumą, identifikatorių ir eilės numerį.
HTTP srauto analizė
HTTP yra „Hypertext Transfer“ programos sluoksnio protokolas. Jį naudoja internetas ir apibrėžia taisykles, kai HTTP klientas / serveris perduoda / gauna HTTP komandas. Dažniausiai naudojami HTTP metodai - POST ir GET:
PAŠTAS: šis metodas naudojamas saugiai siųsti konfidencialią informaciją į serverį, kuri nerodoma URL.
GAUTI: šis metodas paprastai naudojamas norint gauti duomenis iš adreso juostos iš žiniatinklio serverio.
Prieš įsigilinę į HTTP paketų analizę, pirmiausia trumpai pademonstruosime TCP trijų krypčių paspaudimą „Wireshark“.
TCP trijų krypčių rankos paspaudimas
Trijų krypčių paspaudimu klientas užmezga ryšį, siųsdamas SYN paketą ir gaudamas iš serverio SYN-ACK atsakymą, kurį klientas patvirtina. Norėdami parodyti TCP rankos paspaudimą tarp kliento ir serverio, naudosime komandą „Nmap TCP connect scan“.
ubuntu $ ubuntu: ~ $ nmap -sT google.com„Wireshark“ paketų surinkimo srityje slinkite į lango viršų, kad pastebėtumėte įvairius trijų krypčių rankos paspaudimus, sukurtus pagal tam tikrus prievadus.
Naudoti tcp.uostas == 80 filtras, kad pamatytumėte, ar ryšys užmegztas per 80 prievadą. Galite pastebėti visą trijų krypčių paspaudimą, t.e., SYN, SYN-ACK, ir ACK, paryškintas momentinės nuotraukos viršuje, iliustruojantis patikimą ryšį.
HTTP paketų analizė
Norėdami atlikti HTTP paketų analizę, eikite į savo naršyklę ir įklijuokite „Wireshark“ dokumentacijos URL: http: // www.vaflis.lt ir atsisiųskite vartotojo vadovą PDF. Tuo tarpu „Wireshark“ turi užfiksuoti visus paketus.
Taikykite HTTP filtrą ir ieškokite HTTP GAUTI klientui serveriui išsiųstą užklausą. Norėdami peržiūrėti HTTP paketą, pasirinkite jį ir išplėskite programos sluoksnį vidurinėje srityje. Užklausoje gali būti daug antraščių, priklausomai nuo svetainės ir naršyklės. Mes analizuosime antraštes, esančias mūsų užklausoje, toliau pateiktoje momentinėje nuotraukoje.
- Užklausos metodas: HTTP užklausos metodas yra GET
- Priimančioji: identifikuoja serverio pavadinimą
- Vartotojo atstovas: informuoja apie kliento naršyklės tipą
- Priimti, priimti-koduoti, priimti kalbą: informuoja serverį apie failo tipą, priimtą kodavimą kliento pusėje, t.e., gzip ir kt., ir priimta kalba
- Talpyklos valdymas: parodo, kaip talpinama prašoma informacija
- Pragma: rodo slapuko pavadinimą ir vertes, kurias naršyklė laiko svetainei
- Ryšys: antraštė, kuri kontroliuoja, ar ryšys lieka atidarytas po operacijos
Viduje konors HTTP gerai paketą iš serverio į klientą, stebint informaciją „Hypertext Transfer Protocol“ sluoksnyje, rodoma „200 Gerai„. Ši informacija rodo įprastą sėkmingą perkėlimą. Pakete HTTP OK galite stebėti skirtingas antraštes, palyginti su HTTP GAUTI pakelis. Šiose antraštėse yra informacijos apie prašomą turinį.
- Atsakymo versija: informuoja apie HTTP versiją
- Būsenos kodas, atsakymo frazė: atsiuntė serveris
- Data: laikas, kai serveris gavo HTTP GET paketą
- Serveris: išsami serverio informacija (Nginx, Apache ir kt.)
- Turinio tipas: turinio tipas (json, txt / html ir kt.)
- Turinio ilgis: bendras turinio ilgis; mūsų failas yra 39696 baitai
Šiame skyriuje sužinojote, kaip veikia HTTP ir kas nutinka, kai mes prašome turinio internete.
Išvada
„Wireshark“ yra populiariausias ir galingiausias tinklo snifferis ir analizės įrankis. Jis plačiai naudojamas atliekant kasdienes paketų analizės užduotis įvairiose organizacijose ir institutuose. Šiame straipsnyje mes ištyrėme keletą pradedančiųjų ir vidutinio lygio „Wireshark“ temų Ubuntu. Sužinojome, kokio tipo filtrus „Wireshark“ siūlo paketų analizei. Apžvelgėme tinklo sluoksnio modelį „Wireshark“ ir atlikome išsamią ICMP ir HTTP paketų analizę.
Tačiau išmokti ir suprasti įvairius šios priemonės aspektus yra ilga sunki kelionė. Taigi yra daugybė kitų internetinių paskaitų ir pamokymų, kurie padės jums sužinoti konkrečias „Wireshark“ temas. Galite sekti oficialų vartotojo vadovą, kurį galite rasti „Wireshark“ svetainėje. Be to, kai sukursite pagrindinį supratimą apie protokolo analizę, taip pat patariama naudoti tokį įrankį kaip „Varonis“, kuris nurodo galimą grėsmę, tada naudokite „Wireshark“, kad ištirtumėte geriau.