Wireshark je open-source nástroj slúžiaci primárne na odchytávanie a analýzu sieťovej prevádzky. Často sa využíva pri troubleshootingu, vzdelávaní, alebo môže poslúžiť hackerovi napríklad pri odchytávaní hesla.
Wireshark si môžete zadarmo stiahnuť tu. Funguje na operačných systémoch Windows, Linux aj macOS. Inštaluje sa ako bežný program. Pri inštalácii nie je potrebné meniť nastavenia, skrátka sa treba len „preklikať“ až na koniec inštalácie. Po nainštalovaní sa objaví ikonka modrej žraločej plutvy, pomocou ktorej program spúšťame. Po spustení sa zobrazí okno programu najčastejšie v nasledovnom tvare:
V položke Capture vidíte zoznam sieťových rozhraní s krivkou aktivity. Môžete si všimnúť, že počítač je pripojený do siete cez Wi-Fi rozhranie. Z ponuky si vyberiete skúmané sieťové rozhranie a spustíte odchytávanie paketov.
Zobrazí sa vám okno programu rozdelené na tri časti. V hornej časti uvidíte jednotlivé stiahnuté pakety. Sú farebne rozlíšené podľa typu použitého protokolu. V strednej časti je výpis hlavičky vybraného paketu a v spodnej časti výpis dát v pakete. Aby sme programom mohli analyzovať stiahnuté pakety je potrebné odchytávanie zastaviť. Tlačítka stop a štart pre odchytávanie nájdete na nástrojovej lište.
Ak odchytávame všetku prevádzku z nejakého rozhrania, dostaneme vo výslednom súbore zmes komunikácie prostredníctvom rôznych protokolov, ako ARP, ICMP, SNMP a pod., ktoré nás nemusia v danej chvíli zaujímať. Aby sme odfiltrovali iba komunikáciu, ktorá nás zaujíma, napríklad na základe zdrojovej, alebo cieľovej IP adresy, alebo na základe protokolu, môžeme si nastaviť filter. Nižšie uvádzam Wireshark filtre, ktoré sú používané najčastejšie.
Filtrovanie celej komunikácie jednej IP adresy
Nasledovný filter nám vytriedi prevádzku, kde zadaná IP adresa môže byť zdrojová, alebo cieľová.
ip.addr == 192.168.1.145
Filtrovanie na základe zdrojovej IP adresy
ip.src == 192.168.1.4
Filtrovanie na základe cieľovej IP adresy
ip.dst == 192.168.1.145
Filtrovanie na základe subnetu
Nasledovný filter nám vytriedi prevádzku, kde je zdrojová, alebo cieľová IP adresa z definovaného rozsahu.
ip.src == 192.168.1.0/24
Filtrovanie na základe MAC adresy
eth.dst == 00:90:a9:41:2a:39
Filtrovanie na základe služby
Ak chceme filtrovať prevádzku na základe protokolu, môžeme buď zadať priamo jeho názov, alebo TCP/UDP port, na ktorom prebieha komunikácia.
tcp.port == 21
ftp
Porovnávanie hodnôt
V príkladoch uvedených vyššie môžeme vidieť použitie operátora “rovná sa”. V nasledovnej tabuľke sú uvedené ďalšie operátory, ktoré môžeme využiť pri filtrovaní.
rovná sa | ⩵ | eq |
nerovná sa | != | ne |
väčšie ako | > | gt |
menšie ako | < | lt |
väčšie, alebo rovné | >= | ge |
menšie, alebo rovné | <= | le |
Logické operátory
Ak potrebujeme zadať špecifickejší filter zadaním viacerých podmienok, môžeme tak spraviť použitím nasledovných logických operátorov.
and | && |
or | || |
xor | ^^ |
not | ! |
V nasledovnom príklade je uvedená zložená podmienka, ktorá filtruje prevádzku súvisiacu s IP adresou 192.168.1.145, alebo 195.168.1.4 a zároveň prebieha na TCP porte 21, čiže ide o FTP prevádzku.
(ip.addr == 192.168.1.145 || ip.addr == 192.168.1.4 ) && tcp.port == 21