Wireshark: Analiza traficului pe Linux și Windows. Wireshark cunoaște ce este unde în acest program! Analiza pachetelor folosind wireshark

Pentru a studia comportamentul aplicațiilor și nodurilor de rețea, precum și pentru a identifica problemele din rețea, se folosesc adesea analizoare de pachete de rețea. Caracteristici cheie Un astfel de software este, în primul rând, capabilitățile de analiză versatilă și, în al doilea rând, filtrarea multifuncțională a pachetelor, care vă permite să extrageți grăunte de informații interesante în fluxul vast de trafic de rețea. Acesta din urmă aspect îi este dedicat acest articol.

Introducere

Dintre toate metodele de studiu retele de calculatoare analiza traficului este poate cea mai minuțioasă și cea mai consumatoare de timp. Fluxuri intense rețele moderne generează o mulțime de materie „prime”, în care se pot găsi cereale Informatii utile departe de a fi simplu. De-a lungul existenței sale, stiva TCP/IP a dobândit numeroase aplicații și completări, numărându-se la sute și mii. Acestea sunt protocoale de aplicații și servicii, autentificare, tunelare, protocoale de acces la rețea și așa mai departe. Pe lângă cunoașterea elementelor de bază ale interacțiunilor cu rețea, un cercetător de trafic (adică tu) trebuie să fie fluent în toată această diversitate de protocol și să poată lucra cu instrumente software specifice - sniffer-uri sau, științific vorbind, analizoare de trafic (protocol) .

Funcționalitatea sniffer-ului nu este doar capacitatea de a utiliza modul de operare „promiscuos”. card de retea pentru interceptare. Un astfel de software trebuie să fie capabil să filtreze eficient traficul atât în ​​etapa de colectare, cât și în timpul studierii unităților de transmisie individuale (cadre, pachete, segmente, datagrame, mesaje). Mai mult, cu cât snifferul „știe” mai multe protocoale, cu atât mai bine.

Analizatoarele moderne de protocoale pot face o mulțime de lucruri: să calculeze statistici de trafic, să deseneze grafice ale progresului interacțiunilor cu rețea, să extragă date din protocoalele de aplicație, să exporte rezultatele muncii în diverse formate... Prin urmare, selecția instrumentelor pentru analiza traficului în rețea este un subiect pentru o discuție separată. Dacă nu știți ce să alegeți sau nu doriți să cheltuiți bani pe software plătit, atunci utilizați un sfat simplu: Instalați Wireshark.

Cunoașterea filtrelor

Wireshark acceptă două tipuri de filtre:

  • interceptarea traficului (filtre de captare);
  • afișează filtre.

Primul subsistem a fost moștenit de Wireshark din biblioteca Pcap, care oferă un API de nivel scăzut pentru lucrul cu interfețe de rețea. Eșantionarea traficului din mers în timpul interceptării vă permite să economisiți bani RAMși spațiu pe hard disk. Un filtru este o expresie formată dintr-un grup de primitive, opțional combinate funcții logice(și, sau, nu). Această expresie este înregistrată în câmpul „Capture Filter” din caseta de dialog „Capture options”. Cele mai utilizate filtre pot fi salvate într-un profil pentru reutilizare(Fig. 1).

Orez. 1. Profil filtru de interceptare

Limbajul filtrului de interceptare este standard în lumea Open Source și este folosit de multe produse bazate pe Pcap (de exemplu, utilitarul tcpdump sau sistemul de detectare/prevenire Snort invazii). Prin urmare, aici nu există o descriere a sintaxei. sens special, deoarece cel mai probabil vă este familiar. Și detalii pot fi găsite în documentație, de exemplu în Linux pe pagina de manual pcap-filter(7).

Filtrele de afișare funcționează pe traficul deja capturat și sunt native pentru Wireshark. Diferențele față de Pcap - în formatul de înregistrare (în special, un punct este folosit ca separator de câmp); De asemenea, au fost adăugate notații în limba engleză pentru operațiuni de comparare și suport pentru subșiruri.

Puteți introduce un filtru de afișare direct în câmpul corespunzător (atenție, lista derulantă-tip funcționează) din fereastra principală a programului după butonul „Filtrare” (apropo, un profil pentru expresiile utilizate frecvent este ascuns sub acest buton ). Și dacă faceți clic pe butonul „Expresie...” din apropiere, se va deschide un constructor de expresii multifuncțional (Fig. 2).


În stânga (Nume câmp) este un arbore ordonat alfabetic de câmpuri de mesaje de protocol cunoscute de Wireshark. Pentru a acestui domeniu puteți specifica un operator logic (Relație), puteți introduce o valoare (Valoare), puteți specifica un interval (Interval) sau puteți selecta o valoare din listă (Valoare predefinită). În general, o enciclopedie online completă într-o singură fereastră.

Iată operatorii logici utilizați în filtrele de afișare:

  • si si";
  • sau (||) - „SAU”;
  • xor (^^) - „SAU” exclusiv;
  • nu (!) - negație;
  • [...] - selecția subșirului. # Filtrarea după adresa MAC a dvs adaptor de retea, excludeți tot traficul local nu (eth.addr eq aa:bb:cc:22:33:44) # Respingem tot „zgomotul de serviciu” pentru a ne concentra asupra traficului care ne interesează! (arp sau icmp sau dns)

În ceea ce privește eșantionarea subșirurilor, nu este chiar așa operatie logica, dar foarte opțiune utilă. Vă permite să obțineți o anumită parte a secvenței. De exemplu, așa puteți folosi primii (primul număr dintre paranteze drepte este decalajul) trei octeți (numărul de după două puncte este lungimea subsecvenței) ai câmpului de adresă MAC sursă într-o expresie:

Eth.src == 00:19:5b

În selecțiile cu două puncte, unul dintre parametri poate fi omis. Dacă omiteți decalajul, numărul de mostre va începe de la octetul zero. Dacă lungimea, atunci obținem toți octeții de la offset până la sfârșitul câmpului.

Apropo, eșantionarea subșirurilor este convenabilă de utilizat pentru a identifica malware-ul dacă este cunoscută secvența de octeți care vin după antet (de exemplu, „0x90, 0x90, 0x90, 0x04” într-un pachet UDP):

Udp == 90:90:90:04

Operații de comparare utilizate în expresiile booleene:

  • eq (==) - egal;
  • ne (!=) - nu este egal;
  • gt (>) - mai mult;
  • lt(<) - меньше;
  • ge (>=) - mai mare sau egal cu;
  • le (<=) - меньше или равно.tcp.dstport ne 8080 && tcp.len gt 0 && data eq A0

De fapt, teoria este suficientă pentru început. Apoi folosiți bunul simț și parantezele după cum este necesar sau fără. De asemenea, nu uitați că un filtru este în esență o expresie booleană: dacă este adevărat, atunci pachetul va fi afișat pe ecran, dacă este fals, nu.

Filtru Pcap pentru a detecta scanarea portului Netbios

dst port 135 sau dst port 445 sau dst port 1433 și tcp & (tcp-syn) != 0 și tcp & (tcp-ack) = 0 și src net 192.168.56.0/24

Caut un IP hijacker

Într-un segment de rețea locală, există (dintr-un motiv sau altul) aceleași adrese IP pentru două sau mai multe noduri. Tehnica „prinderii” (determinării adreselor MAC) a sistemelor aflate în conflict este binecunoscută: lansăm un sniffer pe un al treilea computer, ștergem memoria cache ARP și stimulăm o solicitare de rezolvare a MAC-ului IP-ului dorit, de exemplu, prin ping-ul acestuia. :

# arp -d 192.168.56.5 # ping -n -c 1 192.168.56.5

Și apoi ne uităm în traficul interceptat de la care MAC au venit răspunsurile. Dacă Wireshark a prins prea multe pachete, creăm un filtru de afișare folosind constructorul. În prima parte a expresiei selectăm răspunsuri ARP, în a doua - acele mesaje în care adresa IP sursă este egală cu cea căutată. Combinăm primitivele cu operatorul &&, deoarece este necesar ca ambele condiții să fie îndeplinite simultan:

(arp.opcode == răspuns) && (arp.src.proto_ipv4 == 192.168.56.5)

Apropo, la executarea acestui scenariu, nicio rețea de calculatoare nu a fost afectată, deoarece au fost utilizate două mașini virtuale Oracle VirtualBox și o conexiune de rețea de tip „Virtual Host Adapter”.

Inspectarea rețelei și a straturilor de transport

Până acum, protocolul ICMP rămâne un mijloc destul de eficient de diagnosticare a stivei de rețea. Mesajele acestui protocol pot oferi informații valoroase despre problemele de rețea.

După cum probabil ați ghicit, filtrarea ICMP în Wireshark este foarte simplă. Este suficient să scrieți în linia de filtrare din fereastra principală a programului: icmp. Pe lângă icmp, funcționează multe alte cuvinte cheie care sunt nume de protocol, cum ar fi arp, ip, tcp, udp, snmp, smb, http, ftp, ssh și altele.

Dacă există mult trafic ICMP, atunci maparea poate fi detaliată, excluzând, de exemplu, solicitările ecou (tip 0) și răspunsurile ecou (tip 8):

Icmp și ((icmp.type ne 0) și (icmp.type ne 8))

În fig. Figura 4 prezintă un exemplu de eșantion mic de mesaje ICMP generate de un router Linux de testare. Mesajul „Port inaccesibil” este de obicei implicit. De asemenea, este generată de stiva de rețea atunci când o datagramă UDP este primită pe un port neutilizat. Pentru ca routerul virtual bazat pe Debian să înceapă să trimită mesaje „Gazdă inaccesibil” și „Comunicare filtrată administrativ”, a trebuit să mă ocup de el. Cisco informează de obicei despre filtrarea administrativă în mod implicit. Mesajul „Timp de viață depășit” indică prezența unei bucle într-o anumită parte a rețelei (și astfel de pachete pot apărea și la trasarea unei rute).

Apropo, despre firewall-uri. Puteți crea reguli pentru firewall-uri populare direct în Wireshark utilizând elementul „Firewall ACL Rules” din meniul „Tools”. Mai întâi trebuie să selectați din listă pachetul ale cărui informații vor fi utilizate. Sunt disponibile standardele Cisco și ACL-uri extinse, reguli asemănătoare UNIX de la IP Filter, IPFirewall (ipfw), Netfilter (iptables), Packet Filter (pf) și Windows Firewall (netsh).

Și acum, pe scurt, despre elementele de bază ale filtrării la nivel de rețea, care se bazează pe câmpurile antetului pachetului IP - adresa sursă (ip.src) și adresa destinatarului (ip.dst):

(ip.src == 192.168.56.6) || (ip.dst == 192.168.56.6)

În acest fel vom vedea toate pachetele pe care le-a primit sau trimis această adresă IP. Puteți filtra subrețele întregi folosind notația masca CIDR. De exemplu, să identificăm o gazdă infectată care trimite spam (aici 192.168.56.251 este adresa IP a serverului nostru SMTP):

Ip.src == 192.168.56.0/24 și tcp.dstport == 25 și !(ip.dst == 192.168.56.251)

Apropo, pentru a selecta după adrese MAC, ar trebui să utilizați primitivele eth.src, eth.dst și eth.addr. Uneori, problemele stratului de rețea sunt mult mai strâns legate de stratul Ethernet decât sugerează teoria. În special, atunci când configurați rutarea, poate fi foarte util să vedeți la ce adresă MAC a routerului nodul încăpățânat trimite pachete. Cu toate acestea, pentru o sarcină atât de simplă, utilitarul tcpdump, aproape standard pentru sistemele de tip UNIX, va fi suficient.

De asemenea, Wireshark nu are probleme cu filtrarea porturilor. Pentru TCP, cuvintele cheie tcp.srcport, tcp.dstport și tcp.port vă stau la dispoziție, pentru UDP - udp.srcport, udp.dstport și udp.port. Adevărat, limbajul de filtru Wireshark încorporat nu avea un analog al primitivei portului în Pcap, care denotă atât un port UDP, cât și un port TCP. Dar acest lucru poate fi rezolvat cu ușurință folosind o expresie booleană, de exemplu:

Tcp.port == 53 || udp.port == 53

Improvizam cu trafic HTTP

Protocoalele de aplicație, în special HTTP, sunt un subiect „etern” în contextul sniffing-ului. Pentru a fi corect, trebuie spus că au fost create o mulțime de instrumente software specializate pentru a studia traficul web. Dar un astfel de instrument universal precum Wireshark, cu sistemul său flexibil de filtrare, nu este deloc de prisos în acest domeniu.

Mai întâi, să colectăm puțin trafic web mergând pe primul site care ne vine în minte. Acum să căutăm mențiuni despre resursa noastră preferată de internet în mesajele protocolului TCP, care servește ca transport pentru HTTP:

Tcp conține „site”

Operatorul conține verifică prezența unui subșir într-un anumit câmp. Există, de asemenea, un operator de potrivire, care poate folosi expresii regulate compatibile cu Perl.


Fereastra „Expresii de filtrare”, desigur, este un ajutor bun, dar uneori derularea unei liste lungi în căutarea câmpului dorit este foarte obositoare. Există o modalitate mai ușoară de a crea/modifica filtrele de afișare: folosind meniul contextual când vizualizați pachetele. Pentru a face acest lucru, trebuie doar să faceți clic dreapta pe câmpul de interes și să selectați unul dintre sub-articolele elementului „Aplicați ca filtru” sau elementului „Pregătiți un filtru”. În primul caz, modificările vor avea efect imediat, iar în al doilea, va fi posibilă corectarea expresiei. „Selectat” înseamnă că valoarea câmpului va deveni un nou filtru, „Neselectat” înseamnă același lucru, doar cu o negație. Clauzele care încep cu „...” adaugă valoarea câmpului la o expresie existentă, sub rezerva operatorilor booleeni.

Combinând diverse instrumente de interfață grafică Wireshark și cunoștințe despre protocolul HTTP, puteți detalia cu ușurință până la nivelul dorit de afișare a traficului în fereastra principală a programului.

De exemplu, pentru a vedea ce imagini a cerut browserul de la serverul web la generarea paginii, un filtru care analizează conținutul URI-ului trimis către server va face:

(http.host eq „www..request.uri conţine „.jpg#26759185”) sau (http.request.uri conţine „.png#26759185”))

Același lucru, dar folosind potriviri:

(http.host eq „www..request.uri se potrivește cu „.jpg|.png#26759185”)

Desigur, câmpurile de mesaje din protocoale de diferite niveluri pot fi amestecate în siguranță într-o singură expresie. De exemplu, pentru a afla ce imagini le-a trimis acest server clientului, folosim adresa sursă din pachetul IP și câmpul „Content-Type” al răspunsului HTTP:

(ip.src eq 178.248.232.27) și (http.content_type conține „imagine”)

Și folosind câmpul de solicitare HTTP „Referer”, puteți afla de pe ce alte servere browserul preia conținut atunci când creează o pagină pentru site-ul dvs. preferat:

(http.referer eq „http://www..dst eq 178.248.232.27))

Să ne uităm la câteva filtre mai utile. Pentru a eșantiona solicitările HTTP făcute folosind metoda GET din trafic, puteți folosi următoarea expresie:

Http.request.method == GET

La nivelul aplicației filtrele de afișare se manifestă în toată frumusețea și simplitatea lor. Pentru comparație: pentru, de exemplu, a rezolva această problemă folosind Pcap, ar trebui să utilizați această structură cu trei etaje:

Portul 80 și tcp[((tcp & 0xf0) >> 2):4] = 0x47455420

Pentru a afla ce conexiuni www au fost realizate de un utilizator al gazdei 192.168.56.8 la un anumit interval de timp (să zicem, în timpul pauzei de masă), folosim primitivul frame.time:

Tcp.dstport == 80 && frame.time >= „9 ianuarie 2013 13:00:00” && frame.time< "Yan 9, 2013 14:00:00" && ip.src == 192.168.56.8

Ei bine, afișarea solicitărilor URI care conțin cuvintele „login” și „utilizator”, plus un „memento” de parole:

Http.request.uri se potrivește cu „login.*=user” (http conține „parola”) || (pop conține „PASS”)

Interceptarea conținutului SSL

Adevărata nenorocire a unui cercetător de trafic de rețea este criptarea. Dar dacă aveți un fișier prețuit cu un certificat (apropo, trebuie să aveți grijă de el ca niște prunele ochilor), atunci puteți afla cu ușurință ce ascund utilizatorii acestei resurse în sesiunile SSL. Pentru a face acest lucru, trebuie să specificați parametrii serverului și fișierul certificat în setările protocolului SSL (elementul „Preferințe” din meniul „Editare”, selectați SSL în lista de protocoale din stânga). Formatele PKCS12 și PEM sunt acceptate. În acest din urmă caz, trebuie să eliminați parola din fișier folosind comenzile:

Openssl pkcs12 -export -in server.pem -out aa.pfx openssl pkcs12 -in aa.pfx -out serverNoPass.pem –nodes

INFO

Extragerea traficului pentru monitorizare și depanare din traficul de rețea se face printr-un filtru de pachete. Filtrul de pachete face parte din nucleul sistemului de operare și primește pachete de rețea de la driverul plăcii de rețea.

Exemple de filtre de pachete pentru sistemul de operare UNIX sunt BPF (Berkeley Packet Filter) și LSF (Linux Socket Filter). În BPF, filtrarea este implementată pe baza limbajului mașină primitiv, sensibil la majuscule, al cărui interpret este BPF.


Analizarea traficului de la gazde la distanță

Utilizatorii Windows pot lucra nu numai cu interfețele computerului pe care rulează Wireshark, ci și să capteze traficul de la mașinile de la distanță. Există un serviciu special pentru aceasta (Remote Packet Capture Protocol) inclus în biblioteca WinPcap. Mai întâi trebuie să fie activat în snap-in-ul de gestionare a serviciilor (services.msc). Acum, după ce ați lansat Wireshark pe un computer la distanță, vă puteți conecta la nodul pe care rulează serviciul de interceptare a traficului de la distanță (folosind portul 2002 în mod implicit), iar datele vor circula către dvs. prin protocolul RPCAP.

De asemenea, voi oferi opțiuni pentru conectarea la routerul dvs. *nix de acasă „din exterior” pentru analiza traficului de la distanță:

$ssh [email protected]"tshark -f "port !22" -i orice -w -" | wireshark -k -i - $ssh [email protected] tcpdump -U -s0 -w - „nu portul 22” | wireshark -k -i -

Un instrument obligatoriu

Wireshark este un instrument binecunoscut pentru interceptarea și analiza interactivă a traficului de rețea și este un standard de facto pentru industrie și educație. Distribuit sub licența GNU GPLv2. Wireshark funcționează cu cele mai cunoscute protocoale, are o interfață grafică cu utilizatorul bazată pe GTK+, un sistem puternic de filtrare a traficului și un interpret Lua încorporat pentru crearea decodoarelor și handlerelor de evenimente.

Preluați sarcina utilă

În anumite cercuri, instrumentele specializate sunt cunoscute pe scară largă care vă permit să „scoateți” obiecte informaționale finale din trafic: fișiere, imagini, conținut video și audio etc. Datorită subsistemului său analitic puternic, Wireshark acoperă mai mult decât această funcționalitate, așa că căutați butonul „Salvați sarcina utilă...” în ferestrele de analiză corespunzătoare.

Concluzie

Pe fundalul fascinației generale a computerului subteran pentru securitatea aplicațiilor de rețea, problemele monumentale ale nivelurilor inferioare trec treptat în fundal. Este clar că straturile de rețea și de transport au fost studiate și cercetate în larg. Dar problema este că specialiștii care au crescut cu injecții SQL, cross-site scripting și incluziuni nu sunt conștienți de stratul uriaș ascuns sub vârful aisbergului și adesea cedează problemelor aparent elementare.

Un sniffer, ca un depanator și un dezasamblator, arată detaliile funcționării sistemului în detaliu. Cu Wireshark instalat și puțină îndemânare, puteți vedea interacțiunile din rețea așa cum sunt - într-o formă nevinovată, curată. Și filtrele te vor ajuta!

Înainte de a începe să învățăm cum să piratam alte rețele, trebuie să fim capabili să ne controlăm rețeaua și să înțelegem ce este traficul de rețea și cum să îl filtram. Wireshark este ideal pentru asta, deoarece nimic mai puternic decât a fost inventat încă și, după cum ați putea ghici, vom vorbi despre asta. Wireshark este arma perfectă pentru analiza și captarea pachetelor de rețea în timp real. Dar principalul lucru este că le arată într-un format foarte convenabil pentru citire.

Wireshark vine cu o varietate de filtre, coduri de culori și multe alte funcții care vă permit să vă scufundați în traficul de rețea și să inspectați pachetele individuale.

Foloseste-ti imaginatia!

dau un exemplu:

Să presupunem că v-ați conectat la rețeaua altcuiva și trebuie să aflați ce folosește, ce și cum trece prin rețea? Wireshark este soluția perfectă. După ce ați studiat pachetele, puteți afla cu ușurință toate datele necesare. Dar acesta a fost doar un exemplu, fiecare este liber să-l folosească în funcție de nevoile sale!

Aplicații >>Internet >>Wireshark

După cum puteți vedea, are un meniu frumos și totul pare clar. Dar, în realitate, acesta este un atribut foarte complex. Mai întâi, să trecem peste funcțiile de bază.

Selectați rețeaua conectată și faceți clic pe Start. După cum puteți vedea, pachetele au început să fie capturate și tot traficul din rețeaua dvs. este afișat.

Pentru a opri captarea traficului, faceți clic pe butonul „ Opriți captarea live care rulează «

După cum ați observat deja, culorile traficului sunt diferite și este foarte interesant ce înseamnă. Wireshark folosește culori diferite pentru a ne ajuta să recunoaștem diferite tipuri de trafic.

Putem introduce traficul de care avem nevoie pentru filtrare în „ Filtru:" și însuși Wireshark ne va oferi indicii sau putem selecta făcând clic pe " expresie «

De asemenea, ne putem crea propriul filtru făcând clic pe Analizați >>Afișați filtre

Dacă vedeți pachetul de care aveți nevoie, puteți vedea conținutul acestuia.




De asemenea, puteți vizualiza tot conținutul pachetului, precum și toate datele despre acesta.

După cum înțelegeți deja, acesta este un lucru foarte puternic pentru vizualizarea traficului. Este utilizat pe scară largă de mulți profesioniști pentru rezolvarea problemelor de rețea și dezvoltarea rețelei.

Acesta este doar începutul, rămâneți pe fază pentru mai multe articole, deoarece vom explica pe deplin și vom descompune acest atribut bucată cu bucată.

Înainte de a începe să învățăm cum să piratam alte rețele, trebuie să fim capabili să ne controlăm rețeaua și să înțelegem ce este traficul de rețea și cum să îl filtram. Wireshark este ideal pentru asta, deoarece nimic mai puternic decât a fost inventat încă și, după cum ați putea ghici, vom vorbi despre asta. Wireshark este arma perfectă pentru analiza și captarea pachetelor de rețea în timp real. Dar principalul lucru este că le arată într-un format foarte convenabil pentru citire.

Wireshark vine cu o varietate de filtre, coduri de culori și multe alte funcții care vă permit să vă scufundați în traficul de rețea și să inspectați pachetele individuale.

Foloseste-ti imaginatia!

dau un exemplu:

Să presupunem că v-ați conectat la rețeaua altcuiva și trebuie să aflați ce folosește, ce și cum trece prin rețea? Wireshark este soluția perfectă. După ce ați studiat pachetele, puteți afla cu ușurință toate datele necesare. Dar acesta a fost doar un exemplu, fiecare este liber să-l folosească în funcție de nevoile sale!

Aplicații >>Internet >>Wireshark

După cum puteți vedea, are un meniu frumos și totul pare clar. Dar, în realitate, acesta este un atribut foarte complex. Mai întâi, să trecem peste funcțiile de bază.

Selectați rețeaua conectată și faceți clic pe Start. După cum puteți vedea, pachetele au început să fie capturate și tot traficul din rețeaua dvs. este afișat.

Pentru a opri captarea traficului, faceți clic pe butonul „ Opriți captarea live care rulează «

După cum ați observat deja, culorile traficului sunt diferite și este foarte interesant ce înseamnă. Wireshark folosește culori diferite pentru a ne ajuta să recunoaștem diferite tipuri de trafic.

Putem introduce traficul de care avem nevoie pentru filtrare în „ Filtru:" și însuși Wireshark ne va oferi indicii sau putem selecta făcând clic pe " expresie «

De asemenea, ne putem crea propriul filtru făcând clic pe Analizați >>Afișați filtre

Dacă vedeți pachetul de care aveți nevoie, puteți vedea conținutul acestuia.




De asemenea, puteți vizualiza tot conținutul pachetului, precum și toate datele despre acesta.

După cum înțelegeți deja, acesta este un lucru foarte puternic pentru vizualizarea traficului. Este utilizat pe scară largă de mulți profesioniști pentru rezolvarea problemelor de rețea și dezvoltarea rețelei.

Acesta este doar începutul, rămâneți pe fază pentru mai multe articole, deoarece vom explica pe deplin și vom descompune acest atribut bucată cu bucată.

Wireshark este un analizor de rețea puternic care poate fi folosit pentru a analiza traficul care trece prin interfața de rețea a computerului. Acest lucru poate fi necesar pentru a detecta și rezolva probleme de rețea, pentru a vă depana aplicațiile web, programele de rețea sau site-urile. Wireshark vă permite să vizualizați complet conținutul unui pachet la toate nivelurile, astfel încât să puteți înțelege mai bine cum funcționează rețeaua la un nivel scăzut.

Toate pachetele sunt capturate în timp real și furnizate într-un format ușor de citit. Programul acceptă un sistem de filtrare foarte puternic, evidențierea culorilor și alte caracteristici care vă vor ajuta să găsiți pachetele potrivite. În acest tutorial ne vom uita la cum să folosiți Wireshark pentru a analiza traficul. Recent, dezvoltatorii au început să lucreze la a doua ramură a Wireshark 2.0, care a introdus multe modificări și îmbunătățiri, în special la nivelul interfeței. Acesta este ceea ce vom folosi în acest articol.

Caracteristicile cheie ale Wireshark

Înainte de a trece la analizarea modalităților de analiză a traficului, trebuie să luați în considerare ce caracteristici acceptă programul mai detaliat, cu ce protocoale poate funcționa și ce trebuie să faceți. Iată principalele caracteristici ale programului:

  • Capturați pachete în timp real de pe interfețe cu fir sau orice alt tip de rețea, precum și citiți dintr-un fișier;
  • Sunt acceptate următoarele interfețe de captură: Ethernet, IEEE 802.11, PPP și interfețe virtuale locale;
  • Pachetele pot fi filtrate pe baza multor parametri folosind filtre;
  • Toate protocoalele cunoscute sunt evidențiate în listă în culori diferite, de exemplu TCP, HTTP, FTP, DNS, ICMP și așa mai departe;
  • Suport pentru captarea traficului de apel VoIP;
  • Decriptarea traficului HTTPS este acceptată dacă este disponibil un certificat;
  • Decriptarea traficului WEP, WPA al rețelelor wireless cu o cheie și strângere de mână;
  • Afișarea statisticilor de încărcare a rețelei;
  • Vizualizați conținutul pachetului pentru toate straturile de rețea;
  • Afișează ora trimiterii și primirii pachetelor.

Programul are multe alte caracteristici, dar acestea au fost principalele care v-ar putea interesa.

Cum se utilizează Wireshark

Presupun că aveți deja programul instalat, dar dacă nu, îl puteți instala din depozitele oficiale. Pentru a face acest lucru, tastați comanda în Ubuntu:

$ sudo apt install wireshark

După instalare, puteți găsi programul în meniul principal al distribuției. Trebuie să rulați Wireshark cu drepturi de superutilizator, deoarece altfel programul nu va putea analiza pachetele de rețea. Acest lucru se poate face din meniul principal sau prin terminal folosind comanda pentru KDE:

$ kdesu wireshark

Și pentru Gnome/Unity:

$gksu wireshark

Fereastra principală a programului este împărțită în trei părți, prima coloană conține o listă de interfețe de rețea disponibile pentru analiză, a doua coloană conține opțiuni pentru deschiderea fișierelor, iar a treia coloană conține ajutor.

Analiza traficului în rețea

Pentru a începe analiza, selectați o interfață de rețea, de exemplu, eth0 și faceți clic pe butonul Start.

După aceasta, se va deschide următoarea fereastră, deja cu un flux de pachete care trec prin interfață. Această fereastră este, de asemenea, împărțită în mai multe părți:

  • Top parte- acestea sunt meniuri si panouri cu diverse butoane;
  • Lista pachetelor- apoi se afiseaza fluxul de pachete de retea pe care le veti analiza;
  • Conținutul pachetului- chiar mai jos se afla continutul coletului selectat, acesta este impartit pe categorii in functie de nivelul de transport;
  • Performanță reală- în partea de jos conținutul pachetului este afișat în formă reală, precum și în formă HEX.

Puteți face clic pe orice pachet pentru a-i analiza conținutul:

Aici vedem un pachet de solicitare DNS pentru a obține adresa IP a site-ului, domeniul este trimis în cererea în sine, iar în pachetul de răspuns primim întrebarea noastră, precum și răspunsul.

Pentru o vizualizare mai convenabilă, puteți deschide pachetul într-o fereastră nouă făcând dublu clic pe intrare:

Filtre Wireshark

Este foarte incomod să sortați manual pachetele pentru a le găsi pe cele de care aveți nevoie, mai ales cu un fir activ. Prin urmare, pentru această sarcină este mai bine să folosiți filtre. Există o linie specială sub meniu pentru introducerea filtrelor. Puteți face clic pe Expresie pentru a deschide designerul de filtre, dar există o mulțime de ele, așa că le vom analiza pe cele mai de bază:

  • ip.dst- adresa IP țintă;
  • ip.src- adresa IP a expeditorului;
  • ip.addr- ip al expeditorului sau destinatarului;
  • ip.proto- protocol;
  • tcp.dstport- portul de destinație;
  • tcp.srcport- portul expeditorului;
  • ip.ttl- filtru TTL, determină distanța de rețea;
  • http.request_uri- adresa site-ului solicitată.

Pentru a specifica relația dintre un câmp și o valoare dintr-un filtru, puteți utiliza următorii operatori:

  • == - egală;
  • != - nu este egal;
  • < - Mai puțin;
  • > - Mai mult;
  • <= - mai mic sau egal;
  • >= - mai mult sau egal;
  • chibrituri- expresie uzuala;
  • conţine- contine.

Pentru a combina mai multe expresii puteți folosi:

  • && - ambele expresii trebuie să fie adevărate pentru pachet;
  • || - una dintre expresii poate fi adevărată.

Acum să aruncăm o privire mai atentă la mai multe filtre folosind exemple și să încercăm să luăm în considerare toate semnele relației.

În primul rând, să filtram toate pachetele trimise la 194.67.215.125 (losst.ru). Introduceți un șir în câmpul de filtru și faceți clic aplica. Pentru comoditate, filtrele Wireshark pot fi salvate folosind butonul Salvați:

ip.dst == 194.67.215.125

Și pentru a primi nu numai pachetele trimise, ci și cele primite ca răspuns de la acest nod, puteți combina două condiții:

ip.dst == 194.67.215.125 || ip.src == 194.67.215.125

De asemenea, putem selecta fișiere mari transferate:

http.content_length > 5000

După ce am filtrat tipul de conținut, putem selecta toate imaginile care au fost descărcate, vom analiza traficul wireshark, pachete care conțin cuvântul imagine:

http.content_type conține imaginea

Pentru a șterge filtrul, puteți apăsa butonul clar. Se întâmplă că nu știți întotdeauna toate informațiile necesare pentru filtrare, ci doriți doar să explorați rețeaua. Puteți adăuga orice câmp al unui pachet ca coloană și puteți vizualiza conținutul acestuia în fereastra generală pentru fiecare pachet.

De exemplu, vreau să afișez TTL (timpul de viață) al unui pachet sub formă de coloană. Pentru a face acest lucru, deschideți informațiile pachetului, găsiți acest câmp în secțiunea IP. Apoi apelați meniul contextual și selectați opțiunea Aplicați ca coloană:

De asemenea, puteți crea singur un filtru pe baza oricărui câmp dorit. Selectați câmpul dorit și apelați meniul contextual, apoi faceți clic Aplicați ca filtru sau Pregătiți ca filtru, apoi selectați Selectat pentru a afișa numai valorile selectate sau Nu a fost ales pentru a le elimina:

Câmpul specificat și valoarea acestuia vor fi aplicate sau, în al doilea caz, inserate în câmpul de filtru:

În acest fel, puteți adăuga un câmp din orice pachet sau coloană la filtru. Există și această opțiune în meniul contextual. Pentru a filtra protocoalele, puteți utiliza condiții mai simple. De exemplu, să analizăm traficul Wireshark pentru protocoalele HTTP și DNS:

O altă caracteristică interesantă a programului este utilizarea Wireshark pentru a urmări o anumită sesiune între computerul utilizatorului și server. Pentru a face acest lucru, deschideți meniul contextual pentru pachet și selectați Urmați fluxul TCP.

Apoi se va deschide o fereastră în care veți găsi toate datele transferate între server și client:

Diagnosticarea problemelor Wireshark

S-ar putea să vă întrebați cum să utilizați Wireshark 2 pentru a detecta problemele de rețea. Pentru a face acest lucru, există un buton rotund în colțul din stânga jos al ferestrei; când faceți clic pe el, se deschide o fereastră Expet Tools. În el, Wireshark colectează toate mesajele de eroare și problemele din rețea:

Fereastra este împărțită în file precum Erori, Avertismente, Notificări, Chat-uri. Programul poate filtra și găsi multe probleme de rețea și aici le puteți vedea foarte repede. Aici sunt acceptate și filtrele Wireshark.

Analiza traficului Wireshark

Puteți înțelege foarte ușor ce anume au descărcat utilizatorii și ce fișiere au vizualizat dacă conexiunea nu a fost criptată. Programul face o treabă foarte bună în extragerea conținutului.

Pentru a face acest lucru, mai întâi trebuie să opriți capturarea traficului folosind pătratul roșu de pe panou. Apoi deschide meniul Fişier -> Exportați obiecte -> HTTP:

Acesta este un utilitar foarte puternic, care are multe funcții. Este imposibil să puneți toate funcționalitățile sale într-un singur articol, dar informațiile de bază furnizate aici vă vor fi suficiente pentru a vă stăpâni singur tot ce aveți nevoie.

Acțiune