Hoofdindex » Servers » TechTalk » ARP voorbeelden
Webservers en meer
TechTalk
ARP
ARP is een eenvoudig en toch zeer krachtig protocol. Lees eerst deze inleiding over Address Resolution Protocol. Op deze pagina zal je een paar voorbeelden aantreffen.

Toepassingen van ARP

Inloggen in een switch

Een switch of het switch gedeelte van een router heeft een MAC adres per poort. Dit zijn oplopende nummers. Als er op de behuizing van de switch een MAC adres aangegeven staat, dan is dit het adres van de eerste poort. Het MAC adres van switches wordt normaal niet gebruikt... voor normale toepassingen. Maar je kan in de setup van de switch geraken (zoals je in de setup van de router kan door zijn IP te geven).


Dit werkt niet!

Maar... een switch heeft geen IP adres, enkel een MAC adres. En in de adresbar van internet explorer (of in een telnet venster) kan je enkel een IP adres ingeven. Geen nood echter! Met het commando
arp -s [IP address] [Hardware address]
schrijf je in de arp-tabel van je computer een nieuwe waarde (kies een vrije IP adres en de juiste hardware adres). Nu kan je gewoon in je browser een IP adres ingeven, en de computer zal die vertalen in een hardware adres!

De vraag is nu: wat kan je doen in zo'n switch? Je kan bijvoorbeeld een prioriteit aan de aansluitingen geven. Als twee computers een verbinding met het internet willen aangaan, dan zal een bepaalde aansluiting altijd voorrang hebben (in de praktijk zal de tweede computer nooit meer op het internet geraken als de eerste computer alle bandbreedte nodig heeft voor een download).

Omdat de firmware van de switch beperkt is (en omdat normaal niemand in de switch zit te prutsen) kan je die enkel bereiken via telnet (dit is een soort dos-terminal, maar dan over een netwerkverbinding).

Adres toewijzen in een DHCP-loze netwerk

Nog een toepassing van arp is het automatisch toewijzen van een IP adres aan bepaalde netwerkapparaten die niet over een DHCP-client beschikken. Of je zit in een netwerk zonder DHCP server (bijvoorbeeld een netwerk harde schijf direct verbonden met de computer). Ook een koffiemachine met netwerkaansluiting hoort in deze groep.

Bepaalde netwerkcamera's kunnen ook zo geconfigureerd worden: netwerkcamera's zitten vaak in een afgesloten, intern netwerk (voor de veiligheid) en er is geen DHCP dienst aanwezig op het LAN. Rechts heb je pagina 29 uit de handleiding van de netwerkcamera: meer dan een paar woorden worden er niet besteed aan deze mogelijkheid.

Je hebt het MAC adres van het apparaat nodig, anders kan je niet verder. Geef een arp commando (zie hierboven). Geef dan een ping commando vanaf dezelfde computer. Een ping commando is een speciaal commando dat losstaat van het internet protocol. Als het apparaat niet aan een IP adres kan geraken, zal het luisteren naar alles wat voorbij passert, in de hoop een "hint" te ontvangen wat zijn IP adres zou moeten zijn. En die hint is hier een ping commando! Het ping commando bevat namelijk een IP adres, maar ook een MAC adres. Het apparaat zal zijn MAC adres herkennen, en de bijhorende IP adres toeëigenen!

Eenmaal dat een netwerkschijf een IP adres gekregen heeft, kan je die te lijf gaan met hogere protocollen (zoals SMB/Samba) om de bestanden te lezen (de hogere protocollen werken immers met IP adressen, niet met MAC adressen).

Oude netwerkapparaten die niet over de nodige software beschikken om een DHCP aanvraag op te stellen moesten via deze methode geconfigureerd worden (DHCP is een hoger gelegen protocol dat nogal complex is).

Vaak moet de ping gebeuren met een niet-standaard payload lengte (dus geen 32 of 64 bytes) en binnen een bepaalde termijn (2 minuten) om te voorkomen dat het IP adres van het apparaat gewijzigd zou worden. Eenmaal een IP adres toegewezen kan het niet meer gewijzigd worden met ARP-PING.


De situatie met 2 computers en een gateway
(switch of router)


Het logisch verkeer
(een pakket van het slachtoffer naar de router)


Het fysisch verkeer van een pakket:
1a: bericht naar :03 passeert via de gateway,
1b: "is niet voor mij" denkt de gateway en stuurt die door naar de sniffer.
2: sniffer stuurt het pakket naar zijn normale bestemmeling door (de gateway)

Packet sniffer

Een packet sniffer zoals Ethereal moet al het verkeer dat op het lokaal netwerk passeert kunnen analyseren, terwijl de switch per definitie de paketten naar de juiste bestemming stuurt. Door ARP te "misbruiken" stuurt de switch nu alle verkeer door naar de packet sniffer (achteraf stuurt de packet sniffer de paketten opnieuw door naar de uiteindelijke bestemmeling, zodat de werkposten die beluisterd worden het niet in de gaten hebben).

Natuurlijk als de packet sniffer plots zou crashen is het lokaal netwerk voor een paar minuten volledig in de war (geen enkele packet komt nog toe), totdat de computers zelf een arp uitvoeren.

En zo komt het dat een "onbenullig" protocol één van de meest krachtige protocollen van het internet is! Gelukkig dat ARP enkel werkt binnen de muren van het lokaal netwerk, maar dit betekent ook dat een computer in een lokaal netwerk die een virus heeft de andere computers kan aftappen en ook besmetten.

Het DNS protocol, dat ook voor adresresolutie dient (maar dan op een hogere laag) is ook zo'n krachtig protocol. Omdat dit protocol op de internet-laag werkt zijn er wel beveiligingen ingebouwd, maar hier ook kan er "DNS poisoning" gebeuren.

Hoe kunnen we internet paketten sniffer? De aanval staat bekend als “man-in-the-middle”. Het ARP protocol is stateless, dat wilt zeggen dat het geen geheugen heeft. Als een computer een poortwijziging ontvangt, zal die de poortwijziging accepteren en doorvoeren. Het is pas als het internet verkeer stropt dat de computer zelf een ARP request zal uitsturen. Dus zolang the man-in-the-middle keurig de pakettjes doorstuurt zal de computer die afgeluisterd wordt daar niets van merken.

We hebben een configuratie

  • 192.168.2.1, MAC :01 (router)
  • 192.168.2.2, MAC :02 (computer die afgeluisterd moet worden)
  • 192.168.2.199, MAC :03 (man in the middle)
De sniffer moet slechts 2 ARP-reply paketten uitsturen:
  • naar de router, met als gegevens ip adres 192.168.2.2 en MAC adres :03
  • naar het slachtoffer, met als gegevens ip adres 192.168.2.1 en MAC adres :03
Als het slachtoffer een pakket naar de router wilt sturen (ip=192.168.2.1), dan zal het in zijn ARP tabel kijken en zien dat het MAC adres zogezegd :03 is. Het pakket wordt dan naar de sniffer gestuurd in plaats van naar de router. De sniffer zal direct het pakket weer uitsturen naar de router, zodat de verbinding "normaal" lijkt.

De derde figuur toont het fysisch verkeer van het pakket.

  • 1a Pakket moet via de gateway passeren (fysische verbinding).
  • 1b De gateway ziet dat het pakket niet voor hem bestemd is(verkeerde MAC adres) en stuurt die door naar de sniffer.
  • 2 De sniffer stuurt dan het pakket door naar de gateway, de uiteindelijke bestemming, en angezien het MAC adres nu het zijne is wordt het aanvaard (en doorgestuurd naar het router-gedeelte).

Als de router nu een antwoord op het pakket van het slachtoffer wilt geven (ip=192.168.2.2), dan staat er in zijn ARP tabel het MAC adres van de sniffer. Het pakket wordt hier ook naar de sniffer gestuurd. Zolang de sniffer alle binnenkomende paketten keurig doorstuurt naar de juiste bestemmeling, zullen geen van beide computers merken dat er een "man-in-the-middle" is. Pas als de communicatie zou uitvallen (sniffer-programma gestopt), dan zal de computer en de router een ARP request uitsturen en aan de hand van het antwoord hun cache bijwerken. Overigens herstellen de meeste sniffers de ARP situatie bij het afsluiten van het programma.

Links to relevant pages - Liens vers d'autres pages au contenu similaire - Links naar gelijkaardige pagina's