ARP Cox Poisoning folosind Scapy

intoxicația cu cache ARP este una dintre cele mai populare modalități de a face un atac MITM pe o rețea locală. Acest articol va demonstra cum să construiți un program python pentru a otrăvi memoria cache ARP a țintei și a gateway-ului pentru a efectua un atac MITM de succes.

Pentru a construi programul, trebuie să parcurgem pașii de otrăvire a cache-ului ARP și apoi îl voi demonstra, folosind Scapy. Pentru a demonstra otrăvirea ARP, am mașina atacatorului pe VirtualBox care rulează Kali Linux în Bridged Adapter cu mașina țintă care rulează Windows. Ambele mașini sunt conectate pe o rețea WLAN.

După cum sugerează și numele atacului, vom otrăvi memoria cache ARP a țintei. Fiecare mașină de pe LAN are o tabelă ARP locală (cache) pe care o întreține. Acest tabel este format din diferitele răspunsuri ARP pe care aparatul le primește pentru diferite cereri ARP.

De exemplu, mașina A (10.0.2.5) dorește să comunice cu mașina B (10.0.2.6). Pentru a comunica, Mașina A necesită adresa MAC a Mașinii B. Deci, Mașina A își caută tabelul ARP (cache) dacă ar putea găsi adresa MAC asociată cu adresa IP 10.0.2.6. Dacă o face, bine și bine poate trimite pachetul către Mașina B, altfel Mașina A va trimite un mesaj de difuzare ARP. Difuzarea ARP este direcționată către ff: ff: ff: ff: ff: ff: ff. Mesajul de solicitare se va deplasa prin rețea către fiecare aparat, întrebându-se dacă adresa IP a aparatului corespunde cu 10.0.2.6. Când mașina B găsește cererea ARP, trimite un răspuns ARP la mașina A (10.0.2.5) spunând care este adresa MAC. Mașina A scrie acest lucru în tabelul său local ARP.

Pentru ao otrăvi, vom trimite răspunsuri ARP false, falsificând adresa IP sursă .

Acum să introducem Scapy.

Scapy este un program Python care permite utilizatorului să trimită, să adulmece și să disecă și să forjeze pachete de rețea. Această capacitate permite construirea de instrumente care pot testa, scana sau ataca rețelele.

Pentru a ști cum să-l instalați, puteți accesa acest link.

În primul rând, să primim mai întâi atâta scapare. Putem adulmeca, diseca și forja pachete folosind Scapy. Deoarece acest articol va vorbi despre otrăvirea ARP, ne vom ocupa doar de forjarea pachetelor.

Pentru a vedea care sunt câmpurile unui strat, putem folosi funcția ls () .

Pentru a crea un pachet, adăugăm două straturi împreună folosind operatorul „/” .

Pentru a trimite un pachet, folosim comanda send().

Destul de ușor, nu? !!

Continuând, să ajungem la otrăvirea ARP.

Pentru a vedea tabelul ARP atât în ​​Windows, cât și în Linux, se poate folosi comanda arp -a .

Deci, configurarea mea de laborator constă în mașina țintă (192.168.43.65), mașina atacatoare (192.168.43.220) și Gateway (192.168.43.1). Ca atacator, voi otrăvi ținta și poarta de acces, pentru a efectua cu succes atacul MITM sniffing.

! Notă: Asigurați-vă că redirecționarea pachetelor este activată. Pentru a-l activa, utilizați următoarea comandă: echo 1 & gt; / proc / sys / net / ipv4 / ip_forward.

Pasul 1: Aflați adresa MAC a țintei și a Gateway-ului

Pentru a găsi adresa MAC a țintei și a gateway-ului, vom trimite un mesaj de difuzare pentru ambele.

Deci proiectăm cererea de difuzare ARP pentru adresa IP = 192.168.43.1 (gateway)

! Notă : în stratul ARP, hwsrc și hwdst reprezintă adresa MAC a sursei și respectiv a destinației , în timp ce psrc și pdst reprezintă adresa IP a sursei și respectiv a destinației.


În mod similar, aflăm adresa MAC a țintei (192.168.43.65).

Pasul 2: trimiterea pachetelor de răspuns ARP false atât la țintă, cât și la gateway.

Răspunsul fals ARP la țintă va conține pdst = ‘192.168.43.65’ hwdst = ‘08: 25: 25: 5c: 9d: 51 & # x27; și psrc = ‘192.168.43.1’. În mod implicit, acest pachet ar avea adresa MAC a atacatorului. Astfel, atunci când ținta primește pachetul, își actualizează tabelul ARP cu adresa MAC necinstită asociată cu adresa IP a gateway-ului. Pentru a ne asigura că otrăvirea noastră nu este vindecată, va trebui să trimitem continuu răspunsurile ARP, care vor fi realizate în scriptul Python.

Deoarece nu trebuie să primim un pachet ca răspuns, așa că vom folosi doar send().

În mod similar, creați un pachet pentru gateway (192.165.43.1, 84: fd: d1: 14: a6: 9f) falsificând psrc ca „192.168.43.65”.

Pasul 3: Odată ce atacul este finalizat. Nu uitați să restaurați tabelele ARP ale mașinilor.

Pentru a restabili tabelele ARP va trebui să creăm pachetele care ar fi trebuit utilizate inițial.


Așa se poate face în Scapy. Dar aceasta a fost doar pentru a demonstra cum să folosiți scapy. Pentru a automatiza întregul proces, am dezvoltat un script python. Scriptul python va converti fiecare pas într-o funcție.



MITM funcționează, de asemenea, dacă se face tshark -i & lt; interface & gt; | grep DNS , pe mașina atacatorului, se pot vedea solicitările DNS ale țintei care trece.

Pentru a afla ce alte lucruri interesante de securitate a rețelei puteți face cu scapy, puteți vizita următoarele link-uri: