Tshark i tcpdump u praksi

Izvor: SIS Wiki
Skoči na: orijentacija, traži

Matija Jurman --Mjurman 08:30, 20. siječnja 2015

Sadržaj

Uvod

Paketi koji prolaze kroz mrežu ili ukupna količina mrežnih transakcija naziva se mrežni promet. Prateći količinu i vrstu mrežnog prometa možemo doznati mnoštvo informacija o namjeni i korištenju računalne mreže. Tako primjerice možemo predvidjeti ili otkriti neku malicioznu aktivnost unutar te mreže, a ujedno je i lakše spriječiti prije nego li dođe do većih materijalnih i drugih gubitaka. Poznavanje mrežnih protokola i standarada na kojima se zasniva računalna mreža koja se analizira bitan je preduvjet kvalitetne analize računalne mreže.

U navedenom radu biti će prikazane različite mogućnosti koje nam pružaju alati za snimanje mrežnog prometa te mnoštvo takozvanih „trikova“ kojima je moguće doznati primjerice koji cookie se prenosio, poruka koja se prenosila u HTML zaglavlju prilikom uobičajenog, ali i onog neuobičajenog, rada na mreži, TCP streamove, otkrivanje mogućeg neželjenog upada u sustav i druge – koristeći Tshark i Tcpdump alate za analizu mrežnog prometa.

Mreža i mrežni promet

Za spajanje na mrežu računalo treba imati barem jedno fizičko mrežno sučelje. Pritom svako takvo sučelje najčešće posjeduje jedno logičko ili programsko sučelje, ali valja naglasiti da je fizičkom sučelju moguće dodijeliti i više logičkih sučelja. Svako fizičko sučelje ima dodijeljenu jednu MAC adresu, dok svako logičko sučelje ima dodijeljenu IP adresu. Ukoliko je fizičko mrežno sučelje spojeno na neki medij koji dijeli više uređaja, do njega dolaze i podaci koji mu nisu namijenjeni. Fizičko mrežno sučelje to raspoznaje na osnovu odredišne adrese. Podatke koji mu nisu namijenjeni najčešće ignorira, no moguće ga je postaviti u poseban modul rada u kojem prihvaća sve informacije koje dolaze do njega.

Packet snifferom nazivamo program koji snima mrežne pakete koje stižu na sučelje i one koji se preko njega šalju u mrežu. Za analizu mrežnog prometa možemo reći da je postupak kojim se mrežni paketi presreću, a zatim analiziraju. Presretanje paketa podrazumijeva čitanje paketa od strane aplikacije kojoj paket nije originalno namijenjen. Uhvaćeni se paket nakon hvatanja primitka i lokalnog zapisivanja prosljeđuje na odredište, tj. mrežni promet se samo snima bez izmjene ili blokiranja komunikacije. Izvor1 Pojednostavljeni koncept funkcionalnosti packet sniffera vidljiv je na slici 1, dok je struktura packet sniffera prikazana na slici 2.

Mjurman001.gif
Pojednostavljeni prikaz pozicioniranja alata za analizu mrežnog prometa u mreži Izvor2


Mjurman002.png


Struktura packet sniffera Izvor3

Packet sniffer sprema kopije paketa, analizira ih i prikazuje u pogodnom obliku, ali te pakete ne šalje na sučelje niti ima svoju posebnu adresu na koju bi se njemu slali paketi. Princip rada je sljedeći: modul „snimanje paketa“ prima kopije okvira, koje onda analizator paketa analizira i prikazuje. Na slici 2 je vidljiv primjer s poznatim Internet protokolima, a vidi se i koji su dijelovi ostvareni na razini operacijskog sustava, a koji na aplikativnoj razini.

Tshark

Instalacija i manipulacija okružjem

Za objašnjenje funkcionalnosti Tshark alata, najprije će biti par riječi o Wireshark alatu. To je besplatni alat izdan pod GPL licencom otvorenog koda za analizu, presretanje i snimanje mrežnog prometa. On podržava više operacijskih sustava (Windows, Linux, OS X, Solaris, FreeBSD). Wireshark „razumije“ strukturu različitih mrežnih protokola, pa je stoga sposoban prikazati podatke iz paketa specifičnih za različite protokole. Za hvatanje paketa koristi se biblioteka koda - pcap (eng.Packet capture). Valja naglasiti kako može hvatati samo pakete s mreža koje pcap podržava, a to su primjerice: Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, Frame Relay i sl. Pcap je biblioteka koja raznim programima pruža programsko sučelje za dohvaćanje paketa s mrežnih sučelja na operacijskim sustavima Windows i Linux/Unix. Podaci se mogu uhvatiti izravno s aktivne mrežne veze, a mogu se i učitati iz datoteke u kojoj su pohranjeni već ranije uhvaćeni paketi. Uhvaćeni podaci mogu biti prikazani, filtrirani i analizirani preko grafičkog korisničkog sučelja (Wireshark) ili preko komandne linije (Tshark). Tshark je stoga jedan od alata koji dolazi prilikom instalacije Wiresharka kao moguća dodatna funkcionalnost samog alata. Osnovna značajka u kojoj se razlikuje od Wiresharka je ta što se Tshark i sve njegove mogućnosti, odnosno funkcionalnosti pokreću iz komandne linije.


Mjurman003.png
Slika: Mogućnost odabira instalacije Tsharka prilikom instalacije WIresharka

Izvoz snimljenih podstaka u .csv datoteku

U nastavku će biti prikazano kako se snimljeni podaci pomoću alata Tshark mogu spremiti u .csv datoteku koju je kasnije moguće otvoriti u programu Microsoft Excel. Navedena funkcionalnost biti će prikazana na operacijskom sustavu Windows 7, koristeći komandnu liniju (eng. Command Prompt) i alat Tshark prethodno instaliran uz Wireshark. Najprije se je potrebno pozicionirati u direktorij na kojem je instaliran Tshark. U ovom slučaju C:\Program files\Wireshark. Zatim je pomoću naredbe tshark –D potrebno provjeriti koji je redni broj fizičkog mrežnog sučelja spojenog na mrežu. U mojem slučaju imamo sljedeća 2 mrežna sučelja prikazana na slici 4.


Mjurman004.png


Kako se u upravljačkoj ploči računala može provjeriti da je računalo spojeno na mrežu preko Local Area Connection-a, koristit ćemo uređaj broj 1.

Mjurman005.png


Snimanje podataka – limit paketa Zatim zadajemo sljedeću naredbu:

tshark –i 1 –w Matija1.pcap –c 100


pri čemu kratice znače sljedeće: -i 1 – snimanje prometa na mrežnom sučelju 1 (Local Area Connection) -w Matija1.pcap – zapis snimljenih paketa u datoteku Matija1.pcap (zapis čitljiv Wireshark alatu) -c 100 – postavljanje limita snimanja na 100 snimljenih paketa.


Mjurman006.png


Valja naglasiti kako je moguće ranije zaustaviti snimanje mrežnog prometa korištenjem Ctrl+C tipkovničke kratice


Mjurman007.png


Vidljivo je kako se u direktoriju C:\Program files\Wireshark nalazi novokreirana Matija1.pcap datoteka. Njezin sadržaj moguće je pogledati u Wireshark alatu (grafičko sučelje) gdje izgleda kao na slici 5:


Mjurman008.png
Slika: Sadržaj datoteke Matija.pcap otvoren u Wireshark alatu


Njezin sadržaj također je moguće pogledati i u Tshark komandnom okruženju sa određenim filterima, odnosno prikazom samo nama zanimljivih okvira. Upisujemo sljedeću naredbu:


Mjurman009.png

odnosno:

tshark -r Matija1.pcap -T fields -e frame.time -e eth.src -e eth.dst -e ip.src -e ip.dst -E header=y -E separator=, -E quote=d -E occurrence=f

pri čemu su:

-T fields – naredba za dohvat određenih polja

-e frame.number– broj snimljenog paketa

-e eth.src – MAC adresa izvorišta

-e eth.dst – MAC adresa odredišta

-e ip.src – IP adresa izvorišta

-e ip.dst – IP adresa odredišta

-E header=y – naredba za postavljanje zaglavlja

-E separator=, - naredba kojom govorimo kojim znakom ćemo razdvojiti okvire

-E quote=d – za izbjegavanje neujednačenih brojeva zareza (ukoliko u nekom rezultatu/okviru već postoji zarez, kako bi rezultat ili krajnja .csv datoteka bila u čitljivom obliku)

Izvršavanjem naredbe u rezultatu dobivamo prethodno selektirane podatke o svakom primljenom paketu, kao što je to vidljivo na slici


Mjurman010.png


Dodavanjem naredbe

> Matija1.csv

rezultat prethodno napisanog upita zapisujemo u datoteku Matija1.csv koja se također kreira u direktoriju Wiresharka. Rezultat zapisa u .csv datoteci izgleda ovako


Mjurman011.png

Dohvaćanje Cookie-a

Laički rečeno - HTTP cookie, skraćeno cookie ili kolačić – je datoteka najčešće tekstualnog oblika koja se sprema u web preglednik tijekom korisnikove aktivnosti na nekoj Internet stranici. Najčešće se koristi u svrhu da kada korisnik više puta pregledava istu Internet stranicu, ta stranica može dohvatiti podatke spremljene u kolačiću i tako olakšati odnosno poboljšati korisnikovo iskustvo „surfanja“ tom Internet stranicom. Takve datoteke najčešće sadrže „osjetljive“ podatke kao što su podaci o prijavi korisnika (korisničko ime i lozinka), podaci o gumbovima koji su bili pritisnuti na toj stranici i slično. U nastavku će biti prikazano kako je pomoću alata Tshark lako moguće snimiti, a kasnije i manipulirati Cookie-vima koje je web preglednik spremio tijekom korisnikove aktivnosti na nekoj Internet stranici. Za početak će biti prikazana jednostavna stranica Izvor_testiranje_kolačića, koja omogućava testiranje Cookiea u obliku postavljanja vrijednosti testnog Cookiea i brisanja vrijednosti tog Cookia. Osnovni obrazac stranice prikazan je na slici ispod.


Mjurman012.png


Nakon što sam otvorio stranicu pokrenut ću snimanje paketa u alatu Tshark sljedećom naredbom:

tshark –i 1 –w testiranje_cookiea.pcap

Mjurman013.png

Sada kada je pokrenuto snimanje paketa, biti će postavljena vrijednost testnog Cookiea na „Matija“.

Mjurman014.png

Kao što je vidljivo trenutna vrijednost testnog Cookia iz [Undefined] je promijenjena u „Matija“.


Mjurman015.png

Nakon toga će biti izbrisana povijest pretraživanja zajedno sa spremljenim kolačićima.


Mjurman016.png


Nakon što su kolačići obrisani može se refreshati stranica gdje je vidljivo kako je vrijednost testnog Cookiea opet nedefinirana – [Undefined]. Sada se može zaustaviti snimanje paketa naredbom CTRL+C. Nakon toga u naredbeni redak upisujemo sljedeću naredbu:

tshark –r testiranje_cookiea.pcap –T fields –e http.host –e http.cookie –y http.cookie

Mjurman017.png

Naredbom -Y http.cookie filtriraju se i prikazuju samo oni paketi koji u HTTP protokolu posjeduju informaciju o kolačiću dok se naredbom -T fields -e http.host -e http.cookie selektiraju ti paketi prema atributu poslužitelja i atributu imena i vrijednosti kolačića. Sada kad je vidljiv popis kolačića koji su bili korišteni za vrijeme snimanja mrežnog prometa - zajedno sa njihovim imenom i vrijednošću – pokrenut ću Cookie Injector skriptu za web preglednik Mozillu Firefox naredbom ALT+C.

Mjurman018.png


Pokrenuta skripta traži unos Cookiea u obliku: Cookie: naziv=vrijednost; U skriptu unosimo vrijednost iz prethodno pokrenutog upita u Tsharku – dakle unosimo: „Cookie: test-cookie=Matija;“


Mjurman019.png

Pritiskom na tipku OK dobivamo potrvrdu da su svi uneseni kolačići zapisani.


Mjurman020.png

Osvježavanjem stranice dobivamo vrijednost ranije unesenih kolačića koji su prethodno bili izbrisani - brisanjem povijesti pretraživanja zajedno sa kolačićima. Osvježena stranica, opet ima prvobitni oblik u kojem je vrijednost testnog kolačića postavljena na „Matija“.

Mjurman015.png


Isti ovakav primjer biti će prikazan i alatom Tcpdump, u video formatu. Video dohvaćanja Cookiea, na principu kao što je to ranije opisano možete pogledati OVDJE: Dohvaćanje Cookiea alatom Tcpdump

Snimanje TCP streamova

Možemo početi identificirati pune TCP konverzacije tražeći zastavice s 3 stanja. Tražeći SYN i SYN-ACT pakete svake TCP konverzacije koja je pokrenuta je prilično jednostavno. U Wireshark alatu se to da jednostavno napraviti primjenom filtera kao što je:

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

Takav filter pronalazi SYN pakete, ali za pronalaženje SYN-ACK paketa potrebno je dodati još jedan filter:

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

Konačan filter izgledati će kao kombinacija prethodna 2 filtera povezana logičkim ILI:

(tcp.flags.syn == 1 && tcp.flags.ack == 0) || (tcp.flags.syn == 1 && tcp.flags.ack == 1)


Ovim filterom identificirane su konverzacije koje su započele nakon što je započelo snimanje, no sljedeće pitanje koje se nameće je: „Kako izdvojiti sve pakete svake konverzacije i to za svaku konverzaciju?“ U Wireshark alatu se nešto takvo lako može napraviti na sljedeći način: desni klik na svaki SYN ili SYN-ACK paket i odabir „Follow TCP Stream“ opcionalnosti. Takav odabir dati će sve pakete za svaku TCP konverzaciju, no takvo što može vrlo lako postati naporno i „ne-user-friendly“ za korisnika. Stoga se bolje rješenje pronalazi u skriptnom rješenju problema – alatu Tshark. Ono što nam je potrebno je filter koji prikazuje svaku punu TCP konverzaciju unutar naše .pcap datoteke sa snimljenim paketima.

Stoga postavljamo snimanje paketa sljedećom naredbom:

Tshark –i 1 –w tcp_stream.pcap


Mjurman021.png


i zaustavljamo snimanje sa CTR+C. Wireshark alat prati sve TCP konverzaije sa ID-em streama. S druge strane, Tshark nam može pomoći izgraditi listu ID streamova. Dakle naredba koju upisujemo u tshark je sljedećeg oblika:

Tshark –r tcp_stream.pcap –Y "(tcp.flags.syn==1 && tcp.flags.ack==0) || (tcp.flags.syn==1 && tcp.flags.ack==1)" -T fields -e ip.src -e ip.dst -e tcp.stream

a rezultat naredbe vidljiv je na slici X.


Mjurman022.png


Objasnimo još jednom dijelove naredbe:

-r tcp_stream.pcap – čitamo ranije snimljenu .pcap datoteku „tcp_stream.pcap“

-T fields- označava da ćemo iz pročitane datoteke izdvojiti samo određena polja

-e ip.src – izdvajamo ip adresu izvorišta

-e ip.dst – izdvajamo ip adresu odredišta

-e tcp.stream – izdvajamo id tcp streama


Isto tako možemo izdvojiti sve TCP streamove istog id-a (po želji) sa pripadnim ip adresama izvorišta i odredišta te pripadnim MAC adresama izvorišta i odredišta. Takvu funkcionalnost također nudi Tshark alat, a upit koji zadajemo izglet će ovako:

tshark –r tcp_stream.pcap –T fields –e eth.src –e eth.dest –e ip.src –e ip.dst –e tcp.stream –Y tcp.stream==9


Mjurman023.png


Objasnimo samo izraze iz naredbe koji ranije nisu objašnjeni, dakle:

–e eth.src - naredba kojom ispisujemo MAC adresu izvorišta

–e eth.dest - naredba koja ispsisuje MAC adresu odredišta

–Y tcp.stream==9 - filter prema kojem filtriramo samo tcp streamove sa id-em 9

Tcpdump

Drugi alat za snimanje i analizu mrežnog koji će biti obrađen u ovom radu je Tcpdump. Prednost ovog alata je što je besplatan i što je jako prilagodljiv korisniku. Iako je manipulacija grafičkim alatima za analizu mrežnog prometa kao što je Wireshark možda više user-friendly, u naredbenom retku moguće je zadati mnoštvo više parametara kojima je često puno lakše i brže postići željeni cilj ili doći do traženog rezultata. Iako generalno dolazi predinstaliran na Linux/Ubuntu operacijskom okružju, moguće je da u nekim verzijama toga OS-a nije predinstaliran. U tom slučaju potrebno ga je dohvatiti sljedećom naredbom:

sudo apt-get install tcpdump

Nakon instalacije alat je spreman za korištenje, a sva manipulacija i rad sa programom radi se u konzoli operacijskog sustava (U mojem slučaju Ubuntu 14.04 LTS).

Tcpdump se koristi za specifičnu svrhu presretanja i prikazivanja komunikacije drugog korisnika ili računala. Korisnik sa potrebnim ovlastima na sustavu se ponaša kao ruter ili gateway kroz koji prolazi nekriptirani promet kao što je Telnet ili HTTP, te je u mogućnosti iskoristiti tcpdump za uvid u korisnička imena, lozinke, URL-ove i sadržaje posjećenih web stranica ili nekih drugih nekriptiranih informacija. Prema potrebi korisnik može primijeniti BPF-bazirani filter za ograničenje broja paketa koje može vidjeti tcpdump – što čini izlaz korisnijim za mreže sa velikim volumenom prometa.

Ukoliko želimo snimati mrežni promet Tcpdump-om prvo je potrebno odabrati pripadajuće mrežno sučelje na kojem će se vršiti snimanje mrežnog prometa. Najprije upisujemo u terminal naredbu ifconfig za kofiguraciju mrežnog sučelja. Kao rezultat upita dobivamo različita mrežna sučelja koje posjeduje računalo zajedno sa pripadnim informacijama o svakom sučelju. Vidljivo je da moje računalo poseduje 3 mrežna sučelja (eth0,l0, wlan0) i da je trenutno spojeno preko wlan0 mrežnog sučelja na mrežu, pa je stoga potrebno napisati sljedeću naredbu za snimanje preko mrežnog sučelja wlan0:

tcpdump -i wlan0

Ukoliko želimo snimati promet koje ide preko određenog porta to ćemo učiniti dodavanjem ključne riječi 'port XY' zajedno sa navodnicima gdje XY predstavlja broj porta. Stoga, ukoliko želimo snimati samo promet preko porta 80 u terminal upisujemo sljedeću naredbu:

tcpdump -i wlan0 'port 80'

Ukoliko želimo snimljeni promet spremiti lokalno na računalo radi kasnije manipulacije, filtriranja i detaljnije obrade na kraj naredbe dodat će se ključna riječ -w ime_datoteke Kasnije se ta datoteka može lako ponovno pročitati u konzoli dodavanjem ključne riječi -r ime_datoteke.

Http zaglavlje i Cookie-vi koji se prenose

Još jedna opcionalnost koju nudi tcpdump je snimanje http zaglavlja. Sljedećom naredbom dohvatiti će se prvih 1024 bajta u liniju međuspremnika izlaza za sve pakete koji idu na neku adresu. Za naš ću primjer uzeti adresu www.24sata.hr.

Naredba koju zadajem je sljedeća:

tcpdump -s 1024 -l -A dst www.24sata.hr –w matija

-A –ispisuje svaki paket u ASCII obliku

-l – za promatranje podataka tijekom snimanja

dst www.24sata.hr – snimanje hosta odredišta www.24sata.hr

-w matija – zapis podataka u datoteku matija

Sada izvršavamo naredbu, ali bez zapisa u datoteku matija - dakle upisujemo samo:

tcpdump -s 1024 -l -A dst www.24sata.hr

Kao rezultat upita dobivamo sljedeće podatke:

Mjurman cookie1.png


Kao što je vidljivo, jedni od mnogobrojnih podataka u svakom paketu su podaci o Hostu, User Agentu, Prihvatljivom jeziku i Encodingu, tipu veze, tipu sadržaja, Cookie-u koji se prenosio i slično. U našem slučaju vidljiv je id Cookiea koji je ovakvog oblika


Cookie: _ff_prevReqData=vLen%3D103%26mScroll%3D0%26statjsIdRnd%3D1858499203%26enterTs%3D1421423410; xtvrn=$392976$; xtan392976=-; xtant392976=1; __gfp_64b=Q04seKhmvVAjqccbgT2zH4kU1CS4mRAFT1gZXjpw.dv.e7; __gads=ID=40def92d943b5b94:T=1421421331:S=ALNI_MZs2dLM-dEZ9w2JDPZ3_DpYKgRNKA; __utma=22025656.595830939.1421421331.1421421331.1421421331.1; __utmb=22025656.16.9.1421423410354; ff_uvid=51962907; DM_SitIdT93=true; DM_SitId93SecIdT287=true; cookieToolbarContainer=1; DM_SitId93SecIdT295=true; ff_1st_sess=1; ff_usvid=113938702; DM_SitId93=true; DM_SitId93SecId287=true; DM_SitId93SecId295=true; __utmc=22025656; __utmz=22025656.1421421


Ako snimljenu datoteku otvorimo u alatu Notepad ili u Wiresharku također možemo pronaći podatak o Cookiu koje se prenosio. Primjer je vidljiv na sljedećim slikama:

Mjurman cookie2.png
Slika: Ranije snimljena datoteka matija otvorena u Notepadu


Mjurman cookie3.png
Slika: Ranije snimljena datoteka matija otvorena u Wiresharku

Udaljena kontrola računala (Teamviewer)

Jedna od glavnim prednosti alata za analizu mrežnog prometa je otkrivanje mogućih potencijalnih opasnosti i ranjivosti sustava. Jedna od takvih opasnosti je opasnost od udaljene kontrole računala. Postoji mnoštvo načina kojima je moguće pristupiti računalu s udaljene lokacije i tako doći do datoteka i povjerljivih podataka. Poneki alati omogućavaju napadaču da pristupi grafičkom sučelju operacijskog sustava žrtve sa udaljene lokacije te tako ima uvid u sve što se događa na računalu klijenta – od vizualnih pokreta mišem, do stranica koje posjećuje, aktivnosti koje obavlja na računalu i slično. Ne treba posebno objašnjavati koliko uvid u takve aktivnosti može naštetiti žrtvi, ponajviše zbog bitnih informacija do kojih dolazi klijent. Jedan od takvih alata – izrađen s dobrom namjerom – je općepoznati alat Teamviewer.

Teamviewer je programski paket izrađen u svrhu: udaljene kontrole računala, razmjene podataka, web konferencija, dijeljenja sadržaja ekrana između dva udaljena računala, ili računala i mobilnog uređaja. Teamviewer funkcionira na način da je potrebno instalirati programski paket na računalo „žrtve“ i programski paket na računalu ili mobilnom uređaju „napadača“. Jednom kada „napadač“ dođe do informacija o internom Teamviewer ID-u i passwordu „žrtve“, vrlo lako je moguće pristupiti računalu „žrtve“ – potrebno je samo pritisnuti Connect to partner. U nastavku će biti prikazano kako je pomoću alata Tcpdump lako moguće vidjeti jesmo li pod „napadom“ ovakve vrste. U ovom slučaju za primjer će biti prikazana konekcija između mobilnog računala na kojem je instalirana aplikacija Teamviewer i računala „žrtve“. U tcpdump alatu zadajemo naredbu za snimanje mrežnog prometa:

tcpdump –i eth0


Mjurman027.png


Ova naredba omogućuje osnovno snimanje mrežnog prometa koji se odvija preko eth0 mrežnog sučelja. Pokretanjem ove naredbe dobivamo sljedeći rezultat u konzoli:

Mjurman028.png

Kao što je vidljivo , ono što prvo upada u oko je veliki broj pojavljivanja UDP protokola. Pošto je UDP protokol - protokol transportnog sloja OSI modela - koji omogućava slanje datagrama između aplikacija na umreženim računalima, a najčešće se koristi kada je bitnija efikasnost i brzina te su dozvoljeni gubici (VoIP telefonija, multicast), dok je pouzdanost manje bitna; lako se dade zaključiti kako se nešto slično odvija na našem računalu. Kada ovoj tvrdnji pridodamo činjenicu da se rad Teamviewera bazira na UDP protokolu, prema rezultatima na prethodnoj slici lako se dade predpostaviti kako je naše računalo „nadgledano i upravljano“ s neke udaljene lokacije – u ovom slučaju preko alata Teamviewer. Upišimo još sljedeću naredbu

tcpdump –i eth0 –vvv -qe

Mjurman029.png

Ovom naredbom dobivamo detaljniji izvještaj (kratica -vvv znači very very verbose, odnosno vrlo vrlo opširno), u našem slučaju sljedeće:


Mjurman030.png

U ovakvom opširnom izvještaju uostalom dobivamo informacije o MAC adresi pošiljatelja i primatelja paketa. U našem slučaju MAC adresa pošiljatelja je e8:9a:8f:69:d1:d1, što se lako može provjeriti da je to zapravo MAC adresa naše mrežne kartice.

Mjurman031.png

Kako je Tcpdump vrlo fleksibilan alat njime lako možemo ispisati sadržaj snimljenog prometa u vizualnom obliku sličnom kao što to prikazuje i Wireshark alat. I dalje smo spojeni preko mobilne aplikacije TeamViewer na računalo “žrtve”. Snimamo mrežni promet u datoteku teamviewer2.pcap naredbom

tcpdump -i wlan0 -vvv -qe -w teamviewer2

Objašnjenje:

-i wlan0 – odabiremo wlan0 jer smo spojeni na mrežu preko wireless mrežne kartice, sučelje nazvano wlan0 na Ubuntu 12.04 operacijskom sustavu

-vvv - very very verbose (vrlo vrlo opširno)

-qe – brzi ispis link-level headera za svaki snimljeni paket (može se koristiti primjerice za ispis MAC adresa za protokole kao što su Ethernet ili IEEE 802.11 -w teamviewer2 – sadržaj snimljenog prometa zapisujemo u datoteku teamviewer2.pcap

Zatim sadržaj datoteke kopiramo sa root direktorija u u naš home direktorij ranije opisanom naredbom

cp -i /root/teamviewer2 /home/matija/matija_tcpdump_docs

Zatim čitamo sadržaj datoteke teamviewer2 u obliku kakav je čitljiv u Wireshark alatu. Upisujemo:

tcpdump -qns 0 -X -r teamviewer2

Rezultat koji dobivamo u konzoli ima sljedeći oblik:


Mjurman032.png


Iz priloženog je vidljiv sadržaj svakog pojedinog paketa, IP adresa odredišta i izvorišta, odredišni i izvorišni port protokola, sadržaj svakog pojedinog paketa u ASCII znakovima , dužinu, vrijeme snimanja i sl. Da je računalo pod “napadom” stranog “napadača” i ovdje se lako može zaključiti kada scrolamo prema gore i također vidimo mnoštvo UDP protokola.

Manji Tcpdump korisni primjeri

Top 10 Talkers

Jedna zanimljiva naredba je naredba kojom Tcpdump izlistava tzv. “Top 10 Talkers”. Ovo je vrlo korisna naredba koju valja pokrenuti kada HTTP zauzima većinu mrežne propusnosti. Sintaksa naredbe je sljedeća:

tcpdump -tnn -c 2000 -i wlan0 | awk -F "." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | awk ' $1 > 10 '

Mjurman024.png


Snimanje cijelih paketa u ASCII i Hexadecimalnom obliku

Sljedeća zanimljiva naredba omogućava snimanje cijelih paketa u datoteku u ASCII i hexa decimalnom obliku zajedno sa pripadnim ip adresama naziva hosta.

tcpdump -i wlan0 host 192.168.1.21 -nXXv


Mjurman025.png


Najzastupljeniji promet u mreži

Ponekad je korisno imati generalni sliku o tome “što sve smanjuje propusnost mreže”. Ova naredba će ograničiti snimanje prometa na samo nekoliko paketa umjesto da preplavi cijeli terminal u nedogled) te će pružiti mali ali ponekad dovoljni uzorak o tome što se događa s mrežom. Ova naredba može biti izrazito korisna kod dijagnoze DOS napada te daje dobru sliku o tome koji se promet najčešće vrti mrežom. Sintaksa naredbe je sljedeća:

tcpdump -i wlan0 -n | head

Mjurman026.png


Zaključak

Podaci koji putuju mrežom prenose se paketima, a ukupna količina mrežnih transakcija naziva se mrežni promet. Najviše tutoriala/članaka o prikupljanju i analizi mrežnog prometa na internetskim resursima pronašao sam o alatu Wireshark koji je još uvijek najpopularniji iz razloga što je jednostavan za korištenje i grafičkog je sučelja na koje je većina korisnika naviklo. Ipak, profesionalnjimim korisnicima mogućnosti toga alata nisu dovoljne, stoga je u sve većem porastu upotreba Tshark i Tcpdump alata koji se pokreću iz komandne linije i omogućavaju korisnicima izvršavanje specifičnijih, efikasnijih i boljih upita. Radeći na ovom projektu naišao sam na brojne probleme ponajviše iz razloga što sam se tek sada prvi puta susreo sa Debian GNU/Linux OS okružjem pa mi je trebalo vremena da se priviknem na rad u Terminalu. Smatram da sam uspješno prikazao neke osnovne koncepte i mogućnosti dvoje alata i uspješno ih povezao sa ciljem kolegija - upoznavanjem sa sigurnošću informacijskih sustava. Rad u Tsharku, a pogotovo u Tcpdumpu iziskuje kreativnost i potrebu sa stalnim "držanjem oka" na onim što zapravo želimo postići prislušivanjem mrežnog prometa. Mogućnosti su zaista široke, i ovo je zapravo tek uvod u stvarne mogućnosti koje nude ova dva alata.

Literatura

J. F. Kurose, Keith W. Ross: Computer networking : a top-down approach 6. izdanje

CIS: Praćenje mrežnog prometa, pristupano 20.1.2015., Izvor

CCERT: Analiza mrežnog prometa, pristupano 20.1.2015.,Izvor

tshark - Dump and analyze network traffic, pristupano 20.1.2015. Izvor

Tcpdump: User Comands, pristupano 20.1.2015., Izvor

A. Sandler: Tcpdump for Dummies, pristupano 20.1.2015. Izvor

A tcpdump Tutorial and Primer, pristupano 20.1.2015., Izvor

Appneta: How to Easily Capture TCP Conversation Streams, pristupano 20.1.2015., Izvor

Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima