[In deze lezing en de volgende wil ik
het hebben over Man In the Middle aanvallen.
Dit zijn aanvallen die we alleen kunnen
uitvoeren als we de communicatie tussen
twee apparaten kunnen onderscheppen.
Vandaar de naam, Man In The Middle Attacks.
Een normale communicatie ziet er dus zo uit, waarbij
het apparaat rechtstreeks communiceert met de entiteit
waarmee het wil communiceren.
Bij een Man In The Middle-aanval
zou de hacker zich in het midden van de verbinding kunnen
plaatsen, waardoor hij alles
kan onderscheppen en zien wat er tussen de twee
apparaten wordt overgedragen.
Nu zijn er een aantal manieren om dit te bereiken.
De eerste methode die we in deze cursus behandelen
is een ARP spoofing aanval.
Met ARP-spoofing kunnen we de stroom pakketten omleiden,
zodat ze, in plaats van te stromen zoals in dit diagram,
door mijn eigen computer stromen.
Dus alle verzoeken en antwoorden die de doelcomputer
ontvangt, moeten via
de computer van de hacker lopen.
Dit betekent dat alle berichten, alle websites, alle afbeeldingen,
alle gebruikersnamen en alle wachtwoorden die het doelwit invoert,
via mijn computer moeten lopen.
Zo kan ik deze informatie lezen, wijzigen
of laten vallen.
Dus zoals je ziet
is dit een zeer ernstige en zeer krachtige aanval.
En de reden waarom dat mogelijk
is, is omdat ARP niet erg veilig is.
Om te begrijpen hoe dit werkt,
moet je een basiskennis hebben van wat ARP is.
ARP staat voor Address Resolution Protocol, en het
is een zeer eenvoudig protocol waarmee
IP-adressen aan MAC-adressen kunnen worden gekoppeld.
Dus bijvoorbeeld, laten we zeggen dat we hier een netwerk
hebben met apparaten A, B, C en D.
Ze zijn allemaal verbonden met hetzelfde netwerk.
En we hebben hier de router voor dit netwerk.
We zien dat elk apparaat een IP- en een MAC-adres heeft.
Laten we aannemen dat apparaat A moet
communiceren met apparaat C.
Nu gaan we ook aannemen
dat apparaat A het IP van apparaat C kent.
Maar zoals we tot dusver weten,
moet apparaat A het MAC-adres van apparaat
C kennen om te kunnen communiceren
binnen hetzelfde netwerk.
Omdat, zoals gezegd,
de communicatie binnen het
netwerk verloopt via het MAC-adres
en niet via het IP-adres.
Dit is dus een volkomen normale situatie waarbij een client
het MAC-adres van een andere client moet weten
zodat hij met deze client kan communiceren.
Dus wat deze client doet, is het ARP protocol gebruiken.
Wat bedoel ik daarmee?
In principe stuurt het een radiobericht.
Dus stuurt hij een ARP-verzoek naar alle clients op het netwerk om te zeggen
wie er 10 heeft. 0. 2. 6?
Nu zullen al deze apparaten dit pakket negeren, behalve
degene die dit IP adres heeft, namelijk
10. 0. 2. 6, wat apparaat C is.
Dus alle apparaten zullen niets doen en
het enige apparaat dat zal reageren is apparaat
C dat een ARP-antwoord stuurt.
In dit antwoord zal apparaat C zeggen dat ik er 10 heb. 0. 2. 6, mijn MAC
adres is dit MAC adres.
Op die manier heeft apparaat A het MAC-adres van apparaat
C en kan het met apparaat C communiceren en de
taak uitvoeren die het aanvankelijk wilde uitvoeren.
Al deze communicatie wordt
dus vergemakkelijkt door het ARP-protocol.
Zoals ik al zei, is het ARP-protocol
een heel eenvoudig protocol, zoals je kunt zien.
Het heeft alleen verzoeken en antwoorden en de hele
bedoeling ervan is dat we IP-adressen
kunnen koppelen aan MAC-adressen of IP-adressen kunnen
vertalen naar MAC-adressen.
Een apparaat kan dus een verzoek om een MAC-adres sturen
en het apparaat dat het MAC-adres heeft,
antwoordt dan met zijn MAC-adres.
Elke computer heeft dus een ARP-tabel, die IP-adressen
op hetzelfde netwerk koppelt aan hun MAC-adressen.
Dus als ik naar de kali machine ga en ARP-a doe, kun je mijn ARP tabel
hier zien en zoals je kunt zien wordt het IP van de
router gekoppeld aan het MAC adres van de router.
Als ik nu naar de Windows machine
ga en mijn CMD uitvoer en ARP-a doe, zie je weer dat hij
het IP van de router koppelt aan zijn MAC adres.
Dus wanneer deze
machine een verzoek naar het internet moet sturen, zal hij dat
verzoek naar dit MAC-adres sturen, naar het MAC-adres
dat verbonden is met het IP van de router, dat
10 is. 0. 2. 1.
Deze waarde kan gemakkelijk worden gewijzigd door
het ARP-protocol te misbruiken.
Dus laat me teruggaan naar mijn diagrammen
en hier hebben we een diagram van een typisch netwerk en je kunt zien dat normaal
gesproken elk apparaat dat op het netwerk
is aangesloten, als het een verzoek wil verzenden,
het naar de router stuurt, de router
gaat en stuurt dat verzoek naar het internet, wacht
op het antwoord en stuurt dan het antwoord door naar het apparaat dat het heeft aangevraagd.
Dus als de hacker of het slachtoffer
of een andere computer op het netwerk
een verzoek wil verzenden,
sturen ze dat verzoek rechtstreeks naar de router.
Nu kunnen we het ARP protocol misbruiken en twee
ARP antwoorden sturen, een naar de gateway
en een naar het slachtoffer.
We gaan de gateway vertellen
dat ik op het IP van het slachtoffer zit, dus het
toegangspunt zal zijn ARP-tabel bijwerken en
het IP van het doelwit koppelen aan mijn MAC-adres.
We doen hetzelfde met het slachtoffer,
dus we sturen het een ARP antwoord.
We gaan zeggen dat ik op 10 sta. 0. 2. 1 dus hij gaat
zijn ARP-tabel bijwerken en het IP van
10 koppelen. 0. 2. 1 met mijn eigen MAC adres.
Dus het resultaat hiervan is dat het slachtoffer denkt
dat ik de router ben en de router denkt dat ik het slachtoffer
ben.
Dus telkens als het slachtoffer verzoeken wil sturen,
moeten de verzoeken via mijn computer lopen
en stuur ik ze door naar de router.
En wanneer het toegangspunt of de router antwoorden
wil sturen, gaan ze naar mijn machine omdat het denkt dat ik
het slachtoffer ben en dan stuur
ik ze door naar het slachtoffer.
Dus zoals je ziet zet dit
me in het midden van de verbinding en het
geeft me zoveel macht en we zullen zien
wat we allemaal kunnen doen als we eenmaal
de Man in het Midden zijn.
De belangrijkste reden waarom we dit
allemaal kunnen doen is omdat ARP niet veilig is.
Want in de eerste plaats kunnen cliënten antwoorden accepteren, zelfs
als zij geen verzoek hebben verzonden.
Dus zoals ik al zei, sturen we een
antwoord naar het toegangspunt en
een antwoord naar het slachtoffer
dat zegt dat ik op een specifiek IP zit zonder dat
ze vragen wie ik ben of zonder dat
ze naar dit IP vragen.
Ik stuur gewoon het antwoord
en ze gaan dat antwoord toch accepteren.
Niet alleen dat,
nou ja, ze gaan ook niet controleren wie ik ben.
Dus als ik zeg dat ik een 10 ben. 0. 2. 7 Ik zit duidelijk
niet op dat IP omdat deze computer
op dit IP zit.
Maar het toegangspunt zal dit vertrouwen
en zijn ARP-tabel bijwerken op basis van de informatie
die ik stuurde.
Hetzelfde geldt voor het slachtoffer.
Ik ga zeggen dat ik op 10 sta. 0. 2. 1 het gaat dit
vertrouwen en geloven, ook al
ben ik duidelijk niet op dit IP omdat
het toegangspunt op dit IP is.
Dit zijn dus de twee belangrijkste zwakke punten van het ARP-protocol waarmee
we ARP-spoofing-aanvallen kunnen uitvoeren.