2.Arp.arping

5
Lucrarea 2: ARP (Address Resolution Protocol) arp arping Elemente de bază Ethernet ce este un switch/hub ce este un ruter structura cadrului Ethernet Exerci iul 1: ț Captura i trafic existent pe conexiunea PC-ului. Folosind instrumentele din laboratorul precedent ț (tcpdump, traceroute), determina i adresele MAC i IP ale unui alt PC din laborator. ț ș Exerci iul 2 ț : Determina i adresa MAC a primului ruter care vă conectează la internet. Se pot determina adresele MAC ț ale celorlalte interfe e de pe acest ruter? Dar ale altor rutere din upstream? ț Exerci iul 3: ț Examina i folosind wireshark câmpul 'Type' al cadrelor Ethernet ce transportă următoarele tipuri de ț pachete: IP, TCP, UDP, ARP request, ARP reply, Cisco discovery protocol(CDPv2), Spanning Tree (STP), IPv6 (IP6). Exerci iul 4: ț Cum arată o adresă de broadcast (difuzare) la nivelul 2? Exerci iul 5: ț Porni i utilitarul de captură. Accesa i pagina de web ț ț http://www.electronica.pub.ro Opri i utilitarul de ț captură i vizualiza i pachetele schimbate de browser. La ce adresă în cadrul Ethernet apare irul “GET” prin care se ș ț ș solicită pagina de web? Cum sunt transportate paginile de web (men iona i toate protocoalele folosite)? ț ț Exerci iul 6: ț Identifica i răspunsul site-ului de web. La ce adresă în cadrul Ethernet apare răspunsul “OK” al serverului ț de web? Ce valoare în hexa are câmpul CRC din acest cadru? Ce adresă de MAC are serverul www.electronica.pub.ro ? Serviciul ARP Aspecte generale: -obiectiv: furnizeaza adresa fizica MAC nivelului IP; -se bazeaza pe principiul retelelor LAN: transmisia prin difuzare a datelor; -ARP utilizeaza direct serviciile nivelului legatura de date (vezi Anexa); Protocolul ARP are rolul de a translata adresele de nivel 3 în adrese de nivel 2. În particular pentru Ethernet i IP ș găse te adresa MAC corespunzătoare unui IP dat. ș ARP este un protocol neorientat pe stare, care se desfasoara printr-o tranzactie in doi pasi (two-way): de tip cerere – raspuns (vezi Figure 6). In general, cererea ARP trebuie adresata tuturor entitatilor ARP din acelasi segment LAN. Acest lucru este posibil pe baza principiului retelelor LAN si a adresei de difuzare de nivel legatura de date (e.g. in cazul ethernet ff:ff:ff:ff:ff:ff). ARPreq who-has IPD S E2 = D E1 EN ARPrpy IPD is-at MACD Reactualizare conditionata a timerului (vezi Figure 17) Reactualizare timer/adauga inregistrare in tabela cache Reactualizare timer/adauga inregistrare in tabela cache Figure 6: specificarea functionarii ARP Procesarea mesajului ARPreq de catre entitatile receptoare

description

laborator

Transcript of 2.Arp.arping

Page 1: 2.Arp.arping

Lucrarea 2: ARP (Address Resolution Protocol)•arp•arping

Elemente de bază Ethernet •ce este un switch/hub •ce este un ruter•structura cadrului Ethernet

Exerci iul 1: ț Captura i trafic existent pe conexiunea PC-ului. Folosind instrumentele din laboratorul precedentț (tcpdump, traceroute), determina i adresele MAC i IP ale unui alt PC din laborator. ț ș

Exerci iul 2ț : Determina i adresa MAC a primului ruter care vă conectează la internet. Se pot determina adresele MACț ale celorlalte interfe e de pe acest ruter? Dar ale altor rutere din upstream?ț

Exerci iul 3:ț Examina i folosind wireshark câmpul 'Type' al cadrelor Ethernet ce transportă următoarele tipuri deț pachete: IP, TCP, UDP, ARP request, ARP reply, Cisco discovery protocol(CDPv2), Spanning Tree (STP), IPv6 (IP6).

Exerci iul 4:ț Cum arată o adresă de broadcast (difuzare) la nivelul 2?

Exerci iul 5: ț Porni i utilitarul de captură. Accesa i pagina de web ț ț http://www.electronica.pub.ro Opri i utilitarul deț captură i vizualiza i pachetele schimbate de browser. La ce adresă în cadrul Ethernet apare irul “GET” prin care seș ț ș solicită pagina de web? Cum sunt transportate paginile de web (men iona i toate protocoalele folosite)? ț ț

Exerci iul 6: ț Identifica i răspunsul site-ului de web. La ce adresă în cadrul Ethernet apare răspunsul “OK” al serveruluiț de web? Ce valoare în hexa are câmpul CRC din acest cadru? Ce adresă de MAC are serverul www.electronica.pub.ro? Serviciul ARPAspecte generale:-obiectiv: furnizeaza adresa fizica MAC nivelului IP;-se bazeaza pe principiul retelelor LAN: transmisia prin difuzare a datelor;-ARP utilizeaza direct serviciile nivelului legatura de date (vezi Anexa);

Protocolul ARP are rolul de a translata adresele de nivel 3 în adrese de nivel 2. În particular pentru Ethernet i IPș găse te adresa MAC corespunzătoare unui IP dat. ș ARP este un protocol neorientat pe stare, care se desfasoara printr-o tranzactie in doi pasi (two-way): de tip cerere – raspuns (vezi Figure 6). In general, cererea ARP trebuie adresata tuturor entitatilor ARP din acelasi segment LAN. Acest lucru este posibil pe baza principiului retelelor LAN si a adresei de difuzare de nivel legatura de date (e.g. in cazul ethernet ff:ff:ff:ff:ff:ff).

ARPreq who-has IPD S E2 = D E1 EN

ARPrpy IPD is-at MACD

Reactualizare conditionata a timerului (vezi

Figure 17) Reactualizare timer/adauga inregistrare in tabela cache

Reactualizare timer/adauga inregistrare in tabela cache

Figure 6: specificarea functionarii ARP

Procesarea mesajului ARPreq de catre entitatile receptoare

Page 2: 2.Arp.arping

Am Hardware address type ?

Am Protocol address type ?

flag = false

Am deja Sender addr. in tabela ?

Actualizeaza MAC-ul; flag = true

Adresa destinatie este a mea ?

flag == false

Salveaza perechea IP-MAC in tabela cache

Opcode == req

Raspunde la cerere Elimina pachet

DA

NU

NU DA

NU

DA NU

DA

DA

NU

NU

DA

Figure 7: organigrama de procesare ARPreq [RFC826]

Tabela ARP (memorie cache)Pentru a creste eficienta serviciului ARP (prin reducerea traficului in LAN si a latentei de conversie) se utilizeaza local pe fiecare gazda o memorie cache organizata sub forma unei tabele. Tabela ARP contine mai multe inregistrari sub forma unor perechi (adresa IP - adresa MAC). Fiecare inregistrare din tabela este asociata la cate o interfata de retea. Tabela este modificata conform organigramei din Figure 17.NOTA: implicit, durata de viata a unei inregistrari este de 1 minut pe Linux, 10 minute pe Windows, 5 minute pe rutere Cisco.

Probleme de securitate: falsificarea adresei MAC (a.k.a ARP spoofing) sau coruperea tabelei ARP (a.k.a. ARP poisoning) stau la baza atacurilor asupra serviciului pentru controlul accesului de tip ACL sau respectiv a atacului Man-In-The-Middle(MITM); Solutii: exista implementari securizate (insa, au raspandire redusa), dezactivarea serviciului ARP

Comanda shell pentru administrarea serviciului ARP:

Operatia Optiuni ComentariuVizualizarea starii serviciului si a adresei MAC

Specificator stare: ARP (activ), NOARP(inactiv);

Dezactivarea serviciului ARP

-arp

Activarea serviciului arpTable 5: argumente ale comenzii ifconfig

Comenzi shell pentru administrarea tabelei ARP:

Operatia Optiuni/Argumente ComentariuVizualizarea tabelei

-a [nv]

Stergerea unei inregistrari

–i <eth0> –d <host>

Adaugarea unei inregistrari

–i <eth0> -s <host> <MM:MM:AA:AA:CC:CC>

are caracter permanent

Table 6: argumente ale comenzii arp

#ifconfig <if_name> [optiuni]

#arp [optiuni]

Page 3: 2.Arp.arping

Modificarea timpului de viata al inregistrarilor din tabela ARP se face in mod diferit, cu ajutorul comenzii de mai jos:

# echo secunde > /proc/sys/net/ipv4/neigh/eth0/gc_stale_time

Construirea platformei de lucruSe va utiliza aceasi configuratie ca si in cazul exercitiilor din lucrarea anterioara, dedicata aplicatiei tcpdump.

Exercitiul 1: studiati stiva de protocoale TCP/IP (vezi figura din Anexa) si precizati daca pachetele ARP pot fi dirijate spre alte retele.

Exercitiul 2: presupunand ca un segment de retea contine un switch ethernet si un hub. Cate porturi ale switch-ului sunt implicate in transmiterea unei cereri ARP. Aceasi intrebare in cazul hub-ului ?

Exercitiul 3: ce adresa MAC trebuie sa aiba cadrele ethernet pentru a putea fi procesate de toate statiile unui segment, la nivel trei si mai sus ? Ce adresa IP trebuie sa aiba pachetele IP pentru a putea fi procesate de toate statiile unei retele, la nivel patru si mai sus ?

Exercitiul 4: este vizibila adresa sursa MAC a mesajelor “ARP-REQUEST” la nivelul ARP (vezi figura din Anexa) ?

Exerci iul 5:ț Folosind comanda man, studia i optiunile comenzii ț arp: ­s, ­d, ­n, ­i, ­a. Goli i tabela arpț i urmări i achizi ia de noi intrări odată cu traficul local sau către diverse destina ii din internet. ș ț ț ț

Exercitiul 6: După golirea tabelei arp, realizati o tranzactie ARP intre entitatea locala si entitatea PC71, determinati continutul mesajelor ARP.Indicatie: folositi aplica iile ping i wireshark.ț ș1.Care sunt dimensiunile cadrelor ARP request i ARP reply?ș2.Care este opcod-ul asociat mesajului Request?3.Care este opcod-ul asociat mesajului Reply?4.La ce adresă în cadrul Request apare adresa IP a emi ătorului?ț5.La ce adresă în Request apare adresa MAC pentru sta ia interogată?ț6.Ce adrese IP i MAC apar în ARP reply?ș

Exerci iul 7:ț Goli i tabela ARP i recolta i toate pachetele ARP pentru o durată de 1-2 minute. În acest intervalț ș ț contacta i un singur PC (pentru a declan a o conversa ie ARP). Opri i captura i examina i trace-ul... ț ș ț ț ș ț1.De ce există înterogări ARP care nu au răspuns? 2.Examina i tabela ARP locală. Cum este populată aceasta?ț

Exercitiul 8: se va urmari achizitionarea adreselor MAC in tabela ARP. Pentru aceasta se vor executa teste de conectivitate cu utilitarul ping catre mai multe adrese IP din reteaua directa conectata (ex. 141.85.43.10, 141.85.43.1). Apoi, entitatea PC71 (singura) va efectua tranzactii ARP pentru adresa 141.85.43.121, folosind arping. Pe celelalte entitati incercati sa puneti in evidenta cererile ARP corespunzatoare; inspectati tabelele ARP de pe toate entitatile si precizati daca continutul acestora s-a modificat.

Exercitiul 9: in conditiile in care serviciul ARP este dezactivat, realizati configurarile necesare pentru a reface conectivitatea pentru una dintre urmatoarele perechi de entitati de retea: PC71 - PC72, PC73 - PC76, PC74 - PC75, PC77 – PC78. NOTA: la final reactivati serviciul ARP !

Exerci iul 10:ț Captura i pachete de tipul stp i vizualiza i în wireshark. Pute i specula utilitatea acestora, examinândț ș ț ț câmpurile i valorile lor? ș

Detectarea coliziunilor de adrese in reteaua LAN: arping

Aten ie: se folose te aplica ia arping, disponibilă sub debian/ubuntu în pachetul 'ț ș ț arping' (autor Thomas Habets). Pachetul 'iputils-arping' (autor Alexey Kuznetsov ) instalează o versiune care are op iuni diferite. țCa si aplicatia ping, arping poate fi utilizata pentru testarea disponibilitatii unei entitati de retea si a conectivitatii cu determinarea parametrilor de performanta asociati (RTT si loss), in ambele moduri de operare (vezi mai jos). In plus, arping ofera un mijloc pentru detectarea coliziunilor de adrese de nivel OSI L2 si L3, care pot apare intr-o retea de tip LAN. Aceasta aplicatie poate utiliza serviciul ARP sau ICMP-ECHO pentru a realiza un dialog “ARP REQUEST-REPLY”, respectiv “ICMP-ECHO REQUEST–REPLY” cu o anumita destinatie sau cu mai multe destinatii. De regula, toate sistemele de comunicatie TCP/IP implementeaza aceste doua servicii.

Page 4: 2.Arp.arping

Aplicatia arping poate opera in doua moduri:

1. Modul de operare ARP: consta in utilizarea serviciului ARP pentru generarea mesajelor de test “ARP REQUEST-REPLY”. Acest mod este utilizat, in special, pentru a determina adresa MAC a unei entitatii D precizata prin adresa IP sau pentru a determina daca exista un conflict de adrese IP. Pentru ca scopul principal al serviciului ARP este determinarea adresei MAC, efectuarea unei tranzactii ARP in scopul determinarii coliziunilor de adrese MAC se mai numeste: ARP gratuit (tranzactii ARP gratuit pot fi observate in retea pe durata de (re)bootare a unei entitati pentru a detecta daca adresa(le) IP locale sunt in coliziune; daca o coliziune este detectata utilizatorul va fi notificat imediat ce entitatea devine functionabila). Pentru fiecare cerere “ARP REQUEST”, entitatea D care are asociata adresa IPD va raspunde cu un mesaj “ARP REPLY” (protocolul ARP):

ED ES

ARP who-has IPD tell IPS

ARP reply IPD is-at MACD

w

Figure 8: diagrama MSC pentru modul ARP

2. Modul de operare ICMP: consta in utilizarea serviciului ICMP-ECHO pentru generarea mesajelor de test “ICMP-ECHO REQUEST-REPLY”. Acest mod poate fi utilizat pentru a determina adresa IP a unei entitati specificata printr-o adresa MAC, dar si pentru a determina daca exista o coliziune de adrese MAC in reteaua LAN. Functionarea in acest mod este analoaga aplicatiei ping (vezi Figure 9), insa valorile parametrilor mesajelor de test sunt determinate in mod diferit. Pentru fiecare cerere “ICMP-ECHO REQUEST”, entitatea D care are asociata adresa MACD cunoscuta, va raspunde cu un mesaj “ICMP-ECHO REPLY” (protocolul ICMP). In figura de mai jos este prezentata functionarea acestei aplicatii:

ED ES

MACD, IPD=255.255.255.255, ICMP-ECHO REQUEST

MACS ,IPS, ICMP-ECHO REPLY

Figure 9: diagrama MSC pentru modul ICMP

Comanda pentru executarea aplicatiei ping are urmatoarea sintaxa generala:arping [optiuni] <adresa_IP> | <adresa_MAC>

In Table 7, sunt listate cele mai frecvente optiuni intrebuintate pentru configurarea modului de operare a aplicatiei: Configuratia Optiuni Obs.

Setarea adresei MAC sursa

-s <aa:bb:cc:dd:ee:ff> In general, implica utilizarea modului de operare promiscuos.

Setarea adresei MAC destinatie

-t <aa:bb:cc:dd:ee:ff>

Setarea adresei IP sursa

-S <adresa_IP> In general, implica utilizarea modului de operare promiscuos.

Setarea adresei IP destinatie

-T <adresa_IP>

Activarea modului promiscuos

-p Altfel spus, dezactivarea functiei de filtrare a pachetelor dupa adresa de nivel L2.

Detectarea -d

Page 5: 2.Arp.arping

raspunsurilor duplicateConfigurarea intervalului de timp intre doua teste consecutive

-w <usec>

Table 7: configurarea modului de operareConstruirea platformei de lucruSe va utiliza aceasi configuratie ca si in cazul exercitiilor din sectiunea, dedicata aplicatiei tcpdump.

Exercitiul 1: sa se determine adresa MAC a unei entitati D, pentru care se cunoaste adresa IPD = 141.85.43.171. Care este adresa destinatie a mesajelor de test “ARP REQUEST” ? Justificati. Determinati care este valoarea campului MAC destinatie aflat in mesajele “ARP REQUEST” ?

Exercitiul 2: sa se determine adresa IP a unei entitati D pentru care se cunoaste adresa MAC D= MACPC_secret (furnizata de catre îndrumătorul de laborator – se va folosi echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts dacă PC_secret rulează Linux). Sa se determine adresa IPD a mesajelor de interogare “ICMP-ECHO REQUEST”. Justificati valoarea acesteia.

Exerci iul 3: ț Determina i adresa MAC a ț www.upb.ro. Explica i cum ob ine arping această adresă. Folosi i modulț ț ț arping/ICMP pentru a verifica dacă adresa MAC ob inută apar ine ț ț www.upb.ro.

Exercitiul 4: specificati care sunt argumentele pe care le utilizati pentru a determina daca adresa 141.85.43.171 se gaseste in coliziune. Cum puneti in evidenta o coliziune de adrese IP ?Indicatie: pentru a putea verifica solutia propusa de dvs. solicitati indrumatorului de laborator sa creeze conditiile necesare pentru ca adresa 141.85.43.171 sa fie in coliziune. Atentie: dupa efectuarea verificarii solicitati eliminarea conditiilor de coliziune.

Exercitiul 5: specificati care sunt argumentele pe care le utilizati pentru a determina daca adresa MACPC71 se gaseste in coliziune. Cum puneti in evidenta o coliziune de adrese MAC ?Indica ieț : pentru a putea verifica solutia propusa de dvs. solicitati indrumatorului de laborator sa creeze conditiile necesare pentru ca adresa dvs. sa fie in coliziune. Atentie: dupa efectuarea verificarii solicitati eliminarea conditiilor de coliziune.

Exerci iul 6:ț ARP Spoofing arping poate crea cereri ARP cu adrese IP false. Pentru a permite acest lucru în kernel, executa i: ț echo  1  >  /proc/sys/net/ipv4/ip_nonlocal_bind

Ve i lucra în echipe de 2 PC-uri: ț PC2 este victimă, PC1 este intrus, iar gate (141.85.43.1) este ruterul de acces la internet. Scopul este de a deturna traficul PC2 → gate prin PC1 (dacă sunt conflicte între experimente se poate folosi un IP inexistent pentru a rula doar până la punctul D). A)pe PC2(victimă), goli i tabela arp țB)pe PC1(intrus) rula i ț arping  ­S <gate> ­p <IP_PC2> #această comandă trimite un arp request către PC2 ca iș cum ar veni de la gate. Pe PC2 apare o intrare falsă în tabela ARP C)Examina i intrările ARP create pe PC2. țD)Pe PC2 rula i ț ping <gate>. Examina i pe PC1 traficul capturat i evalua i implica iile de securitate. ț ș ț țE) (facultativ) Pentru a completa atacul rula i următoarele comenzi pe PC1 (într-un alt terminal):ț

1. echo 1 > /proc/sys/net/ipv4/ip_forward # PC1 devine ruter

2. echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects #PC1 devine mai silen iosț

F)În acest moment, toate pachetele PC2 → gate trec prin PC1, verifica i cu ț tcpdump -e pe PC1 Exerci iul 6aț (facultativ): completa i exerci iul precedent astfel încât răspunsurile de la gate să treacă deasemenea prinț ț PC1. În acest moment a i realizat un atac “man in the middle”: PC2 monitorizează tot traficul dintre PC1 i gate! ț ș

Exerci iul 7:ț găsi i exemple de folosire ARP spoofing în scopuri legitime. ț

Exerci iul 8:ț Protec ie la ARP spoofing: Pe PC2 folosi i op iunea -s a comenzii arp. Ce observa i atunci când lista iț ț ț ț ț tabela arp? Repeta i exerci iul 6 în aceste condi ii. Goli i tabelele arp la sfâr itul exerci iului. ț ț ț ț ș ț