"Falsche" IP-Adresse an Server schicken

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Area51
User
Beiträge: 27
Registriert: Donnerstag 24. Juli 2008, 11:38
Wohnort: Heidelberg
Kontaktdaten:

Servus, ich mal wieder.

Ich habe einen kleinen IP-Adressen-Filter gebastelt. Nun möchte mit Python einen Test machen, ob dieser auch wirklich funktioniert.
Um die Datei aufzurufen, verwende ich urllib. Nun würde ich gerne wissen, ob es ein Modul gibt, mit dem man eine andere IP-Adresse an den Server schicken kann.

Nehmen wir an, meine IP wäre sowas wie "88.45.212.34", aber das Script soll nun z.B diese IP verschicken: "32.112.32.54".

Gibt es sowas in der Art? Wäre ganz gut :)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Dann wirst du allerdings niemals eine Antwort vom Server bekommen ;-) Das macht höchstens Sinn bei UDP-Packeten, oder in einem lokalen Netz im Promiscuous Mode.
Area51
User
Beiträge: 27
Registriert: Donnerstag 24. Juli 2008, 11:38
Wohnort: Heidelberg
Kontaktdaten:

Ob ich ne Antwort vom Server bekomme ist mir egal, ich will bloss schaun, ob der Filter das macht, was er soll :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Letztendlich wirst du tiefer greifen müssen als Layer 7 (Anwendungsschicht: HTTP), denn die IP-Adresse des Senders wird logischerweise in Layer 3 (Vermittlungsschicht: IP) eingetragen. Ich denke mit Scrapy könntest du HTTP-Pakete von Hand zusammensetzen und schicken.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

Dafür musst du auf raw sockets zurückgreifen und das komplette TCP Paket selbst aufbauen. Das ist aber keineswegs trivial und auch nicht "mal ebenso implementiert", insofern wurde ich dir raten, da was fertiges zu nehmen.
Area51
User
Beiträge: 27
Registriert: Donnerstag 24. Juli 2008, 11:38
Wohnort: Heidelberg
Kontaktdaten:

Leonidas hat geschrieben:Ich denke mit Scrapy könntest du HTTP-Pakete von Hand zusammensetzen und schicken.
Muss ich Scrapy lokal oder auf einen Server installieren? Das Problem ist, dass ich normalen Webspace habe und letzteres somit nicht machen kann.
lunar hat geschrieben:insofern wurde ich dir raten, da was fertiges zu nehmen
Könntest du mir da etwas empfehlen, was auf Windows beim Client lauffähig ist?
bughunter
User
Beiträge: 19
Registriert: Montag 28. Juli 2008, 13:51

falls Du kein "Hacker-Tool" benutzen möchtest :wink: kannst Du auch bei Heise einen Portscan machen - einfach mal nach "Heise Security Portscan" suchen, die IP des scannenden Server ist üblicherweise angegeben.
Ich glaube man sollte sehen können ob Port 80 dann offen ist.

Gruß
bughunter
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Scrapy brauchst du auf dem Client, denn logischerweise konstruierst du die Pakete die du senden willst auch auf dem Client und schickst die dann zum Server und nicht andersrum.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Area51
User
Beiträge: 27
Registriert: Donnerstag 24. Juli 2008, 11:38
Wohnort: Heidelberg
Kontaktdaten:

Ich hab mir jetzt Scrapy heruntergeladen, jedoch kann man das, was die Anbeiten, nicht wirklich "Dokumentation" nennen.

Wenn ich das richtig sehe, sollte man das Paket "http" importieren.
Mal schauen, ob ich einen Header zusammenfriemeln kann :)
Area51
User
Beiträge: 27
Registriert: Donnerstag 24. Juli 2008, 11:38
Wohnort: Heidelberg
Kontaktdaten:

Ich hab mich eben wieder drangesetzt, aber ich glaube, ich bin zu doof scrapy zu "installieren". Ich hab den Ordner schon in den Installationsordner von Python und in meinen Projektordner rein kopiert, aber die Imports scheitern...
Ich geh mal davon aus, dass der Import richtig ist, wenn nicht, bitte ich um Hilfestellung :)

Code: Alles auswählen

from scrapy.http import request
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Naja, eigentlich sollte es reichen, ``scrapy.py`` in ``site-packages`` zu kopieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Werden hier gerade Scapy und Scrapy verwechselt? Ersteres ist *das* Tool (ok, aber eines der besten) für Packet Forgery und dergleichen. Das läuft soweit ich weiß jedoch nicht auf Windows-uffuff-XP (oder zumindest nicht mehr seit in SP 2 der Zugriff auf Raw Sockets eingeschränkt wurde).
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ja, tatsächlich meinte ich Scapy, welches tatsächlich nur eine Python-Datei enthält.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
epsilon
User
Beiträge: 71
Registriert: Freitag 20. Juni 2008, 19:48

Habe mich schon gefragt, was ein Webscraper mit IP-Spoofing zu tun haben soll. Jetzt frage ich mich nur noch, was HTTP-Pakete damit zu tun haben (Vermutlich meintest du IP-Pakete, du hattest ja geschrieben, dass das Ganze "weiter unten" abläuft).

@ Area51:

Warum so kompliziert? Schnapp' dir einfach 'nen Proxy, ban seine IP und ruf die Datei über den Proxy auf. Wenn du die Datei über HTTP aufrufen willst (wovon ich ausgehe, wenn du urllib verwenden willst) reicht ein Webproxy, ansonsten verwendest du beispielsweise Tor ("The Onion Router").
Area51
User
Beiträge: 27
Registriert: Donnerstag 24. Juli 2008, 11:38
Wohnort: Heidelberg
Kontaktdaten:

Tagchen :)
Bin eben endlich dazugekommen, Scapy auszuprobieren.
Import hat geklappt, aber das Tel hat das Modul "pcap" vermisst. Also hab ich das auch heruntergeladen.
Jetzt vermisst das Modul pcap das Modul "_pcap".

Wo bekomme ich dieses Modul nun her? Hab überall im kleinen g gesucht, aber nichts dazu gefunden.

@epsilon:
Ich möchte gezielte IP-Adress-Bereiche verbannen, da bringt mir Tor herzlich wenig, da ich ja immer zufällig eine IP bekomme, soweit ich weiß ^^
Fabian Kochem
User
Beiträge: 36
Registriert: Mittwoch 5. April 2006, 14:11
Wohnort: Köln

Wenn es nur darum geht, die Funktionalität von der Funktion zu testen, die prüft, ob eine IP erlaubt ist oder nicht, warum musst du dann unbedingt die IP spoofen?
Schick doch einfach einen String an die Funktion und überprüfe den Output. Sollte reichen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Area51 hat geschrieben:Jetzt vermisst das Modul pcap das Modul "_pcap".

Wo bekomme ich dieses Modul nun her? Hab überall im kleinen g gesucht, aber nichts dazu gefunden.
Ist in python-libpcap enthalten.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
epsilon
User
Beiträge: 71
Registriert: Freitag 20. Juni 2008, 19:48

@epsilon:
Ich möchte gezielte IP-Adress-Bereiche verbannen, da bringt mir Tor herzlich wenig, da ich ja immer zufällig eine IP bekomme, soweit ich weiß ^^
Du verbindest dich nicht bei jedem Request über andere Tor Server. Default-mäßig wird die Server-Kette alle 7 Minuten gewechselt (es sei denn, ein Server ist nicht zu erreichen, dann werden sofort neue Tor nodes genommen).

Außerdem kann man das Alles über die Konfigurationsfile ändern.
Soweit ich mich erinnere, kann auch eingestellt werden, dass nur exit nodes aus bestimmten Ländern genommen werden.
Area51
User
Beiträge: 27
Registriert: Donnerstag 24. Juli 2008, 11:38
Wohnort: Heidelberg
Kontaktdaten:

pylibpcap hab ich bereits heruntergeladen. Ich habe die pcap.py in meinen Projektordner kopiert, aber ich erhalte den Fehler "No module named _pcap".

Wenn ich die Datei pcap.py direkt über die Python-Shell ausführe, gehts auch in die Hose.

Hab ich irgendetwas vergessen?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Area51 hat geschrieben:Hab ich irgendetwas vergessen?
Ja, kompilieren. _pcap ist ein C-Modul, das musst do vorher kompilieren. Normalerweise muss man Python Module immer mit ``python setup.py install`` installieren, aber wenn es reine Python-Module sind, dann reicht es, diese in den richtigen Ordner zu kopieren. Bei C-Modulen sieht das anders aus.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten