N-PN White-Hat Project
Ip Spoofing - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72)
+--- Forum : Langages interprétés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=27)
+--- Sujet : Ip Spoofing (/showthread.php?tid=2867)



Ip Spoofing - InstinctHack - 01-04-2013

Io,

J'aimerais tester cette technique en local en python avec scapy,
j'ai un peu regarder la doc, mais j'y arrive pas.

voilà mon code
Code PYTHON :

#!/usr/bin/env python

import sys,random
from scapy.all import *

conf.iface="lo"

packetIP = IP();
packetIP.src = '%i.%i.%i.%i' % (random.randint(1,254),random.randint(1,254),random.randint(1,254),random.randint(1,254));#sppofed ip
packetIP.dst = '127.0.0.1';


packetTCP=TCP()/"GET /a.php HTTP/1.1\r\n\r\n"#Host: myframework.vh\r\n\r\n"
packetTCP.sport = RandShort()
packetTCP.dport = 80
packetTCP.flags = 'S'

packet=packetIP/packetTCP;

packet.display()
send(packet, verbose=0);
 


et le code de ma page :
Code PHP :

<?php
    $file=fopen("data_cookie.txt","a+");
    fwrite($file,$_SERVER['REMOTE_ADDR'].PHP_EOL);
    fclose($file);
 


(le code php fonctionne)
Quelqu'un pourrais m'aider sur ce coup-là ?
merci d'avance Smile

edit : j'ai un poil modifié le script (que je lance en root)

voilà la sortie du script :
Code :
khaled@loopinfinity:~/LIFE/Informatique/Programmation/Python/other$ sudo python ip.py
WARNING: No route found for IPv6 destination :: (no default route?)
###[ IP ]###
  version   = 4
  ihl       = None
  tos       = 0x0
  len       = None
  id        = 1
  flags     =
  frag      = 0
  ttl       = 64
  proto     = tcp
  chksum    = None
  src       = 233.168.12.151
  dst       = 127.0.0.1
  \options   \
###[ TCP ]###
     sport     = <RandShort>
     dport     = http
     seq       = 0
     ack       = 0
     dataofs   = None
     reserved  = 0
     flags     = S
     window    = 8192
     chksum    = None
     urgptr    = 0
     options   = {}
###[ Raw ]###
        load      = 'GET /a.php HTTP/1.1\r\n\r\n'

j'ai mis le fichier de capture en pièce jointe.


RE: Ip Spoofing - Junky - 02-04-2013

bonjour.

Est-ce que tu lance bien ton tool python en tant que root? Car pour scapy (si je ne dis pas de conneries) il te faut être root.

Ensuite j'ai un doute dans la construcion de ton "GET". J'avais rencontrais le problème en C.
Je pense qu'il te manque des \r\n a la fin de celle-ci.

Code :
send(packet+'GET /a.php HTTP/1.1\r\nHost: myframework.vh\r\n\r\n', verbose=0);

Ceci ne résoudra peu être pas le problème. Mais en lisant ton topic, c'est les deux premières choses qui me sautent aux yeux.

Junky

EDIT: T'es sur que c'est
Code :
packetTCP.sport= RandomShort();

et pas plutot:
Code :
packetTCP.sport = RandShort()



RE: Ip Spoofing - supersnail - 02-04-2013

Sinon tu peux matter avec wiresark si t'as bien du trafic émis Wink


RE: Ip Spoofing - b0fh - 02-04-2013

Hello,

Déja, pour include un payload dans un paquet tcp, il faut normalement utiliser /, pas +. Je ne crois pas que le + marche (coté calcul des longueurs et des checksums).

Ensuite, il manque le double \r\n a la fin de la requête http

Et enfin, pour établir une connexion tcp tu ne peux pas envoyer directement de données dans un seul paquet, il faut établir la connexion en trois parties, en envoyant un syn, recevoir un syn+ack, extraire le n° de séquence de la réponse, et envoyer un 2e paquet avec la payload et le bon numéro de séquence dans le champ d'acquittement. Si tu ne reçois pas la réponse, c'est problématique vu qu'il faut deviner le bon numéro d'acquittement.


RE: Ip Spoofing - gruik - 02-04-2013

entre trois machines reliées par un hub c'est possible en sniffant le traffic destiné à la machine spoofée, avec un switch non, au delà il reste la prédiction de séquences comme dit b0fh moyennant un BF, pas d'autre choix, c'est dire si l'IP spoofing c'est une technique révolutionnaire en 2013...