Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Sniffere. Analizoare de protocol. Ethereal.

Informatica


Sniffere. Analizoare de protocol. Ethereal.

Un sniffer este un program care are posibilitatea de a monitoriza datele traficate īntr-o retea. Acest gen de programe poate fi folosit atāt de catre utilizatorii de drept (administratorii de retea) īn scop de diagnostic, cāt si de catre hackeri īn ideea de a dobāndi acces neautorizat (a "sparge" reteaua).



Modalitatea de lucru a unui sniffer este legata de posibilitatea placii de retea de a lucra īn promiscuous mode. Īn regim de functionare normala, subnivelul MAC analizeaza cadrele receptionate si livreaza subnivelelor superioare cadrele a caror adresa destinatie este recunoscuta ca fiind cea a statiei sau cea de broadcast (FF-FF-FF-FF-FF-FF), restul de cadre fiind ignorate. Modul promiscuous permite placii de retea sa livreze sistemului de operare toate cadrele "simtite" pe mediul fizic, chiar daca acestea nu sunt destinate statiei pe care se afla snifferul.

Din acest mod de functionare rezulta si posibilitatile, limitarile si dezavantajele snifferului:

poate captura cadre de pe mediul fizic la care este conectat, cu conditia ca placa de retea sa suporte modul promiscuous

daca reteaua este segmentata / microsegmentata, snifferul nu va captura decāt pachetele "vazute" pe segmentul pe care se afla, plus broadcast - urile, care se stie ca "trec" prin echipamente precum HUB sau switch.

dat fiind modul de functionare, este foarte dificila detectarea unui sniffer neautorizat, singurele modalitati fiind fie suspectarea existentei sale prin efectele ulterioare (de exemplu parole cunoscute de catre intrusi), cānd deja este prea tārziu, fie prin descoperirea sa chiar pe calculatorul pe care a fost instalat, prin verificari ocazionale sau sistematice ale calculatoarelor din retea.

Un analizor de date sau analizor de protocoale este un utilitar care decodeaza (prezinta īntr-o forma accesibila utilizatorului) cāmpurile prezente īn headerele diverselor protocoale īmpachetate īn cadrul unui frame. Analizoarele de protocoale pot fi individuale (analizorul stie sa decodeze un singur protocol) sau combinate, varianta optima fiind cea a unei aplicatii grafice care realizeaza decodarea pentru toate protocoalele prezente īn frame-ul capturat si permite si vizualizarea arborescenta a īncapsularii, cum este cazul Ethereal-ului.

Ethereal

Ethereal este un sniffer combinat cu analizor de date, disponibil free atāt pentru Windows cāt si pentru Unix. El poate fi folosit pentru capturarea de date direct din retea si pentru analizarea datelor capturate (sau a unor capturi anterioare salvate sub forma de fisier), gradul de detaliu fiind reglabil īn functie de preferintele utilizatorului.

Homepage-ul Ethereal se afla la https://www.ethereal.com; tot aici exista si documentatia completa (īn limba engleza).

Facilitatile principale oferite de Ethereal sunt urmatoarele:

datele pot fi capturate direct din mediul fizic, īn tehnologie Ethernet, FDDI, Token Ring, X.25, IP over ATM, sau pot fi citite dīntr-un fisier captura; Ethereal suporta mai multe formate de fisiere captura (tcpdump, NAI SnifferPro etc.) si de asemenea poate deschide direct fisiere captura arhivate īn format tar.gz.

vizualizarea capturii se poate face īn mod text (utilitarul tethereal) sau grafic

fisierele captura pot fi editate sau convertite prin intermediul utilitarului editcap

lista de interfete si protocoale suportate este uriasa

se pot defini filtre

o        la capturare - se captureaza numai pachetele care corespund cu regulile definite īn filtru

o        la vizualizare - fie pentru filtrarea display-ului (cautarea unui anume tip de pachete sau eliminarea unora ce nu prezinta interes), sau pentru configurarea iluminarii īn diverse culori a anumitor pachete (pentru o mai usoara urmarire)

facilitati suplimentare, cum ar fi urmarirea unui stream TCP, statistici de trafic per captura etc.

Utilizare

Ne vom referi īn continuare la interfata grafica a Ethereal-ului, disponibila sub Windows sau sub mediile grafice Unix (de exemplu X server).

Captura se poate realiza din meniul Capture sau apasānd CTRL-k īn fereastra continānd lista de pachete. Optiunile disponibile au urmatoarele semnificatii:

Interfata pe care se face captura - denumirea depinde de sistemul de operare. Din pacate sub Windows ea este destul de criptica (FIXME), īnsa sub Linux dispunem de eth0, eth1 etc. īncepānd cu versiunea 0.9.1 a Ethereal-ului

Count/File size/Duration - specifica limita superioara a capturii exprimata īn numar de pachete/marime a fisierului generat/timp

Filter - aici se poate defini filtrul la capturare; expresia filtrului se poate scrie direct īn edit box-ul corespunzator, sau se poate alege un filtru predefinit apasānd eticheta Filter

File - permite specificarea numelui sub care va fi salvat fisierul

Capture length - se poate specifica lungimea datelor ce vor fi capturate din fiecare pachet

Capture packets īn promiscuous mode - seteaza modul promiscuous pe interfata specificata; daca este debifat, va fi capturat doar traficul strict legat de interfata pe care se face captura

Use ring buffer - FIXME

Update list of packets īn real time - se executa refresh-ul ferestrei cu lista de pachete īn timp real pe durata capturii

Automatic scrolling īn live capture - odata cu refresh-ul ferestrei din fundal, se realizeaza si scrollingul automat astfel īncāt focusul sa se afle īntotdeauna pe ultimul pachet capturat

Enable MAC name resolution daca este bifat, adresele MAC se vor afisa sub forma NumeProducator_xx:xx:xx

Enable network name resolution - daca este bifat se īncearca rezolutia DNS inversa a adreselor IP; optiunea nu este recomandabila deoarece consuma mult timp

Enable transport name resolution - bifarea are ca efect afisarea ca nume de serviciu a porturilor (de exemplu ftp īn loc de 21)

FILTRE

Īn Ethereal avem doua tipuri de filtre - filtrele pe captura si cele de vizualizare. Odata definite, ele pot fi salvate si aplicate ori de cāte ori este nevoie. Pentru definirea filtrelor este necesar sa cunoastem limbajul de filtrare folosit, adica modul īn care se construiesc expresiile care vor defini ce pachete trec sau nu de filtru.

Din pacate sintaxa expresiilor folosite īn filtrul de captura difera de cea pentru filtrul de vizualizare. Īn cazul primului sintaxa este aceea a limbajului de filtrare pcap folosit de celebrul utilitar tcpdump din Linux, iar pentru cel de-al doilea exista un limbaj propriu de definire a filtrelor, asemanator cu limbajul de programare C.

Sintaxa filtrului de captura

Specificatia completa poate fi gasita īn manpage-ul lui tcpdump. Īn continuare vor fi exemplificate cele mai des utilizate elemente de sintaxa.

A specifica filtrul presupune scrierea unei expresii ; pentru fiecare pachet īn parte este evaluata logic aceasta expresie. Daca īn urma evaluarii se obtine o expresie adevarata, pachetul trece de filtru, īn caz contrar fiind oprit.

O expresie de filtrare consta dīntr-o serie de primitive agregate prin intermediul operatorilor and (&&), not(!), or (||)

PRIMITIVA

PARAMETRI

EXEMPLU sI DESCRIERE

src host

dst host

Host

host_addr

Sunt capturate numai pachetele cu adresa IP specificata

src host 10.0.0.1 - adresa sursa 10.0.0.1
dst host 10.0.0.1 - adresa destinatie 10.0.0.1
host 10.0.0.1 - oricare din adrese este 10.0.0.1

ether src

ether dst

ether host

ehost

Sunt capturate doar pachetele cu adresa MAC specificata

ether src 11:22:33:44:55:66 - adresa MAC sursa este 11:22:33:44:55:66
ether dst 11:22:33:44:55:66 adresa MAC destinatie este 11:22:33:44:55:66
ether host 11:22:33:44:55:66 oricare din adresele MAC este 11:22:33:44:55:66

net

net

ne/tlen

net mask mask

Sunt capturate pachetele a caror adresa IP face parte din subreteaua specificata

Poate fi combinata cu src, dst

net 10.0.0.0 - oricare din adresele IP apartine intervalului 10.0.0.1-10.0.0.255
net 10.0.0.0/25 - intervalul permis este 10.0.0.1-10.0.0.127
src net 10.0.0.0 mask 255.255.255.128 - reteaua sursa este cea din exemplul anterior

src port

dst port

port

port

Sunt capturate doar pachetele TCP sau UDP ce contin portul specificat

src port 53 - pachetele cu port sursa 53 (DNS)
dst port 53 - pachetele cu port destinatie 53
port 53 - oricare din porturi este 53

less

greater

length

Sunt capturate doar pachetele a caror lungime īndeplineste cerinta

less 1000 - pachetele cu marime mai mica de 1000 de octeti
greater 1000 - marimea pachetelor trebuie sa fie mai mare de 1000 de octeti

ip proto

\icmp

\tcp

\udp

nd

igrp

Protocolul aflat deasupra IP-ului este cel specificat; tcp, udp si icmp sunt de asemenea primitive, īn consecinta trebuie precedate de cāte un escape character (\)

ip proto icmp - pachetele ICMP
ip proto tcp - pachetele TCP
ip proto igrp - pachetele IGRP

sau prin grupare folosind parantezele. Primitive posibile si exemple de utilizare sunt prezente īn tabelul 1.

Alte exemple de expresii de filtrare pe captura:

host 10.0.0.1 and not icmp and less 100 - captureaza numai pachetele ce contin ca adresa sursa sau destinatie 10.0.0.1, a caror lungime este mai mica de 100 de octeti si excluzānd pachetele ICMP

src net 10.0.0.0/24 and dst port 80 and not udp- pachetele care vin dinspre reteaua 10.0.0.0 catre portul 80 (HTTP) pe protocol TCP

Sintaxa filtrului de vizualizare

Literal

C

Descriere si exemplu

eq


Egal

ip.addr==10.0.0.5

ne


Diferit

ip.addr!=10.0.0.5

gt

>

Mai mare decāt

frame.pkt_len > 10

lt

<

Mai mic decāt

frame.pkt_len < 128

ge

>=

Mai mare sau egal

frame.pkt_len ge 0x100

le

<=

Mai mic sau egal

frame.pkt_len <= 0x20

Filtrul de vizualizare ne permite sa ne concentram doar pe pachetele care prezinta interes, lasānd la o parte restul capturii. Pachetele pot fi selectate dupa protocol, prezenta si valoarea unui cāmp din header, sau chiar comparatii īntre cāmpuri sau īntre cāmpuri si valori introduse manual.

TABELUL 2

Ethereal ofera un limbaj de filtrare usor, mai ales pentru cei familiarizati cu limbajul de programare C. Operatorii de agregare a expresiilor au atāt forme literale, cāt si formele cunoscute din limbajul C, dupa cum arata tabelul 2.

Ethereal dispune de o mare varietate de cāmpuri ce pot fi incluse īntr-o expresie. Īn tabelele 3 si 4 pot fi gasite o parte din cāmpurile disponibile pentru IP si TCP; pentru detalii suplimentare, se poate consulta Anexa A a User Manual-ului aflat pe site, unde poate fi gasita o lista detaliata cu cāmpurile recunoscute pentru fiecare protocol īn parte.

Filtrul de vizualizare poate fi aplicat fie scriind expresia sa īn edit box-ul din partea de jos a ferestrei Ethereal si apasānd ENTER, fie alegāndu-l din lista de filtre salvate anterior. Revenirea la afisarea nefiltrata a pachetelor se face apasānd butonul Reset.

Exemple de filtre de vizualizare:

ip.src==10.0.0.1/25 && ip.src>10.0.0.3 sau

ip.src eq 10.0.0.1/25 and ip.src gt 10.0.0.3 - sunt afisate doar pachetele ce provin din subreteaua 10.0.0.1-10.0.0.127 īn afara de primele 3 adrese din acest interval

ip.src==10.0.0.1 and icmp and ip.ttl<=3 - sunt afisate numai pachetele ICMP provenite de la 10.0.0.1 care au TTL-ul mai mic sau egal cu 3

ip.src==10.0.0.1&&tcp.srcport!=80 - sunt vizualizate doar pachetele provenite de la 10.0.0.1 al caror port TCP sursa nu este cel HTTP (80)

Cāmp

Semnificatia cāmpului

tcp.ack

Acknowledgement number

tcp.checksum

Checksum

tcp.dstport

Port destinatie

tcp.flags

Flags

tcp.hdr_len

Lungimea header-ului

tcp.port

Port sursa sau destinatie

tcp.seq

Sequence number

tcp.srcport

Port sursa

tcp.urgent_pointer

Urgent pointer

tcp.window_size

Dimensiunea ferestrei

Cāmp

Semnificatia cāmpului

ip.addr

Adresa sursa sau destinatie

ip.checksum

Header checksum

ip.dst

Adresa destinatie

ip.flags.df

Don't fragment

ip.flags.mf

More fragments

ip.hdr_len

Lungimea header-ului

ip.len

Lungime totala

ip.src

Adresa sursa

ip.tos

Type of Service

ip.ttl

Time to live


Document Info


Accesari: 2994
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )