Showing posts with label dijagnostika mreže. Show all posts
Showing posts with label dijagnostika mreže. Show all posts

16 January 2013

nc mini howto


Nc ili Netcat je alatka za dijagnostiku i ispitivanje mreže. Sa njom je moguće kreirati bilo koju vrstu konekcije i ispitivati kako se mreža ponaša.

Opcije:

  1. -c string - Specifikuje shell komandu koja će se izvršiti poslije konekcije. Navedeni string se prosljeđuje /bih/sh -c da bi se izvršio. Ukoliko /bin/sh ne radi, koristiti opciju -e.
  2. -e filename - Označava fajl koji će se izvršiti poslije konekcije.
  3. -l - Listen mode - za dolazeće konekcije. Primjer: na serveru se pokrene nc -l 2389. Port 2389 treba biti propušten na firewall-u. Na klijentskoj strani unijeti nc 172.18.2.116 2389, gdje je navedena IP adresa adresa servera. Poslije toga, svaka linija teksta potvrđena Enterom će se prikazati na ekranu servera.
    Na ovaj način je moguće prenositi i sadržaj tekstualnih fajlova. Na strani servera treba biti napravljen prazan fajl test i otvorena konekcija komandom
    nc -l 2389 > test. Na klijentskoj strani izvršiti: cat test.txt | nc 172.18.2.116 2389. Sadržaj tekstualnog fajla će umjesto na ekranu biti ispisan u fajlu test na serveru.
  4. -n - Numeričke vrijednosti IP adresa, bes DNS razrješavanja.
  5. -p - Specifikuje koji će lokalni port nc koristiti kao source port. Ova opcija se ne koristi sa opcijom -l
  6. -s - Specifikuje source adresu sa koje dolazi konekcija. Ne koristi se sa opcijom -l.
  7. -u - Koristi UDP protokol za konektovanje umjesto podrazumijevanog TCP-a.
  8. -v - Verbose mode. Za više detalja koristiti -vv.
  9. -w - Prekida sesiju poslije navedenog broja sekundi
  10. -z - Zero I/O mode. Koristi se za skeniranje portova.

Primjeri korišćenja:

  1. nc -v 172.18.1.169 -z 1-65535 - U verbose mode-u skenira portove navedenog hosta u rangu od 1 do 65535. Ako je neki od portova otvoren, prikazaće poruku succeeded.
  2. nc -p 31337 host.example.com 42 - Otvara TCP konekciju na port 42 na navedenom hostu, a konekcija dolazi sa source porta 31337
  3. nc -u host.example.com 53 - Otvara UDP konekciju na navedeni host na port 53.

08 January 2013

tcpdump mini howto


Tcpdump je packet sniffer program - jedan od osnovnih alata za dijagnostiku mreže. On "hvata" pakete koji prolaze kroz mašinu i može da ih sačuva u fajl. Ovaj fajl se kasnije može analizirati i samom komandom tcpdump, ali i alatima kao što je Wireshark. Mogu se čuvati čitavi paketi ili samo njihovi headeri. Pokretanje komande bez argumenata će na ekran ispisivati saobraćaj sa prvog od mrežnih interfejsa (ignoriše se lo).

Prilikom čuvanja rezultata izvršavanja u fajl, tcpdump će sačuvati samo prvih 68 bajtova podataka iz svakog paketa. Ostatak se odbacuje. Ovo ponašanje je moguće podešavati opcijom -s.

Moguće je koristiti i filtere paketa. Takvi izrazi su: port, portrange, ether, net, host. Uz njih se mogu koristiti i prefiksi (ili sufiksi) src i dst. Ako se prefiksi ili sufiksi ne navedu, podrazumijeva se saobraćaj u oba smjera.
Tcpdump omogućava pravljenje kompleksnih filtera korištenjem izraza not, and, or, length, greater, less, kao i korištenje zagrada u cilju grupisanja izraza, tj. određivanja prioriteta izvršavanja.

Opcije tcpdumpa
  1. -A - Prikazuje sadržaj capture-ovanih paketa u ASCII formatu.
  2. -c - Capturuje samo određen broj paketa.
  3. -e - Prikazuje ethernet header svakog paketa.
  4. and - Kvalifikator - logičko i. Koristi se u kompleksnim upitima za tcpdump.
  5. ether - Filtriranje paketa po Ethernet (MAC) adresi. Može se koristiti u oblicima ether src, ether dst i ether host.
  6. host - filtriranje paketa po imenu hosta. Može da se koristi i u oblicima host, src host i dst host.
  7. -i - Capturuje pakete sa određenog mrežnog interface-a.
  8. less N - Capture-uje pakete koji su manji od N bajtova. Vidjeti primjer.
  9. -n - Ne razrješava DNS imena. Ovo omogućava brži rad komande i smanjuje ukupnu količinu paketa koji se vide na ekranu (nema DNS upita)
  10. net - Filtriranje paketa po subnetu. Može se koristiti u oblicima src net, dst net  i net. Ova komanda zahtijeva i korišćenje mask parametra.On se može navoditi po staroj notaciji navođenjem netmaska ili po CIDR notaciji. Vidjeti primjere.
  11. not - Izraz. Koristi se za filtriranje saobraćaja - ako ne želimo da tcpdump prikazuje saobraćaj po nekom portu.
  12. or - Kvalifikator - logičko ili. Koristi se u kompleksnim upitima za tcpdump.
  13. port - Koristi se za označavanje porta. Ako se navedu izrazi src ili dst prije njega, može se specifikovati da li se filter odnosi na dolazni ili odlazni saobraćaj. Ako se ništa ne navede, izraz port će filtrirati sav saobraćaj po nekom portu. Primjer:
    tcpdump -n dst port 80 - Prikazuje sve odlazne HTTP pakete.
  14. portrange - Radi vrlo slično kao izraz port, međutim, odnosi se na rang portova. Takođe može da ima prefikse src i dst.
  15. -r - Koristi se za čitanje fajla sa capture-ovanim paketima.
  16. -s - Koristi se prilikom snimanja rezultata u fajl i označava koliko će se podataka snimiti iz svakog paketa. Ako se navede vrijednost 0, snimiće sve pakete u kompletu (neće odbacivati ostatak od prvih 68 bajtova).
  17. -x - Prikazivanje sadržaja TCP paketa u heksadecimalnom obliku. Podrazumijevano, prikazaće prvih 82 bajta paketa (ethernet header se ne prikazuje). Komandom -s je moguce kontrolisati broj bajtova koji se prikazuju, a korišćenjem komande -xx umjesto -x ce se prikazati i ethernet header - dodatnih 14 bajtova.
  18. -v - Verbose mode. Korištenje opcije -vv daje više detalja, a korišćenje -vvv još više detalja.
  19. -w - Snima izlaz tcpdumpa u fajl
Primjeri korišćenja:
  1. tcpdump -ni eth0 not port 22 - Filtrira saobraćaj tako da prikazuje sve pakete osim onih koji dolaze na port 22 (SSH). Ovo je posebno korisno ako se preko SSH pristupa sistemu - ignoriše sve pakete koji se razmjenjuju između SSH klijenta i servera. Takođe, u komandi je rečeno da ne razrješava DNS imena i da se "sluša" samo interfejs eth0.
  2. tcpdump -c 10 - Capturuje samo prvih 10 paketa.
  3. tcpdump -w file.cap -s 0 - U navedeni fajl snima rezultate izvršavanja komande i to čitave data pakete, bez odsijecanja.
  4. tcpdump -r file.cap - Čitanje paketa iz navedenog fajla
  5. tcpdump -e -n not port 22 - Prikazuje ethernet headere svakog paketa osim paketa koji dolaze na port 22.
  6. tcpdump -n src portrange 22-23 - Primjer filtriranja paketa za SSH i Telnet saobraćaj.
  7. tcpdump src host example.com - Ispisuje sve pakete koji dolaze sa domena example.com.
  8. tcpdump src net 81.93.11.100 mask 255.255.255.0
  9. tcpdump src net 81.93.11.100/24 - Obe varijante (klasična i CIDR notacija) rade isto, a to je filtriranje paketa koji dolaze sa mreže 81.93.77.100.
  10. tcpdump -XX greater 100 and \(src host google.com or src host microsoft.com\) - Prikazuje sve pakete (uključujući i Ethernet header) veće od 100kb, koji dolaze sa domena google.com ili microsoft.com. Karakter "\" znači escape sekvencu koja se navodi ispred znaka zagrade, da bi se zagrada u takvom obliku i poslala komandi tcpdump. Ona određuje prioritet izvršavanja komandi. U ovom slučaju, da nema zagrade, nikada ne bi došlo do capture-ovanja paketa sa microsoft.com.
    Ovaj primjer se mogao napisati i kao
    tcpdump -XX greater 100 and \(src host google.com or microsoft.com \).
    Izostavljen je prefiks src host za domen microsoft.com. Ovo se koristi zbog pojednostavljenja korišćenja komande i boljeg pregleda, tj. kada se kvalifikator koristi dva ili više puta u nizu, dovoljno ga je navesti samo za prvi host.
  11. tcpdump -w l_1024.pcap less 1024 - Capture-uje pakete koji su manji od 1024 bajta i snima ih u fajl l_1024.pcap.