Hallo,
Ich bastel grad etwas mit Python und frage mich, ob es ohne Nutzung einer Hochsprache wie C++, etc. möglich ist, ein Paket mit anderer IP zu versenden. Zum Beispiel Pings oder vielleicht einfacher ein HTTP Request. Dort können zwar per urllib /~2 header-Daten geändert werden, aber bei der IP muß man ja tiefer ansetzen. Das ich kein Response erhalte ist mir dann auch bewußt ...mir geht es nur darum, ob es mit ner Skriptsprache wie Python möglich wäre
Wenn jemand mir Tipps bzw. entsprechenden Code geben kann, wäre ich sehr dankbar...
VG,
Spooky
IP Spoofen mit Python
Python ist auch eine höhere Programmiersprache. *Scnr*spooky0815 hat geschrieben:Hallo,
Ich bastel grad etwas mit Python und frage mich, ob es ohne Nutzung einer Hochsprache wie C++, etc. möglich ist
mfg
Thomas :-)
Thomas :-)
-
- User
- Beiträge: 23
- Registriert: Montag 27. Februar 2006, 19:24
Nu gut...habt ihr aber dann auch nen Vorschlag, wie man mittels Python solche Pakete erzeugen kann?
Danke
Spooky
Danke
Spooky
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Spooky!spooky0815 hat geschrieben:Nu gut...habt ihr aber dann auch nen Vorschlag, wie man mittels Python solche Pakete erzeugen kann?
Auch wenn ich es wüsste, würde ich es nicht hier preis geben. Ich möchte nämlich nicht, dass es irgendwann einmal heißt, Python zu installieren sei gefährlich, denn damit kann jeder Hacker seine IP-Adresse verschleiern oder einen Datenstrom zu seinem Computer umleiten.
Auch wenn es technisch evt. nicht das Problem ist, aber ich möchte den guten Ruf von Python wahren.
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Das sehe ich auch so, denn mir ist kein Hackertool bekannt, dass in Python geschrieben wurde. Und das finde ich auch gut so. Falls jemand eins kennt, dann zeigt es mir. Ich lasse mich gerne eines besseren belehren.
mfg
Thomas :-)
Thomas :-)
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich kenne zwar kein Hackertool, aber dafür zwei C(++)-Libs die Python-Wrapper haben und die IP Pakete generieren und somit auch fälschen können.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich werfs jetzt einfach mal so in den Raum:
rawsockets ?!
^^
Mfg,
Kolazomai
rawsockets ?!
^^
Mfg,
Kolazomai
Ich finde diese Geheimniskrämerei etwas seltsam. Wenn jemand schlechte Absichten hat, dann wird er diese auch weiter pflegen, ob man ihm jetzt die Information gibt oder nicht. Aber ich glaube es gab hier schon mal einen Artikel (da ging es um Arp-Spoofing glaube ich), bei dem aus so einer Frage ne Grundsatzdiskussion gemacht wurde. Das hört sich für mich irgendwie an, wie wenn man kleine Kinder erziehen will.
Das hier ist doch ein Forum in dem es um Python Programmierung geht und hier will jemand mit Python, ICMP oder IP Pakete bauen. Man kann einem doch nicht gleich unterstellen, dass er ein "Denial of Service" Tool bauen will, wenn er fragt wie man mit Python Code, einen Ping an einen Rechner sendet.
Um Pakete zu generieren, fallen mir folgende Projekte ein:
- Scapy
- libdnet
Ich würde aber Scapy empfehlen, da man damit sehr schön Pakete generieren und die Resultate auch sehr schön visualisieren kann. Scapy ist auch empfehlenswert, wenn man gerade TCP/IP lernt und mit den Paketen etwas spielen will.
Das weiter oben ist nur meine Meinung und es soll sich niemand angegriffen fühlen, aber was jemand mit bestimmtem Wissen macht liegt glaube ich nicht in unserer Hand und wenn wir die Infos vor ihm verstecken, werden wir damit sicher nicht die Welt verbessern.
Gruss
Jochen
Das hier ist doch ein Forum in dem es um Python Programmierung geht und hier will jemand mit Python, ICMP oder IP Pakete bauen. Man kann einem doch nicht gleich unterstellen, dass er ein "Denial of Service" Tool bauen will, wenn er fragt wie man mit Python Code, einen Ping an einen Rechner sendet.
Um Pakete zu generieren, fallen mir folgende Projekte ein:
- Scapy
- libdnet
Ich würde aber Scapy empfehlen, da man damit sehr schön Pakete generieren und die Resultate auch sehr schön visualisieren kann. Scapy ist auch empfehlenswert, wenn man gerade TCP/IP lernt und mit den Paketen etwas spielen will.
Das weiter oben ist nur meine Meinung und es soll sich niemand angegriffen fühlen, aber was jemand mit bestimmtem Wissen macht liegt glaube ich nicht in unserer Hand und wenn wir die Infos vor ihm verstecken, werden wir damit sicher nicht die Welt verbessern.
Gruss
Jochen
Jabber: lobo@jabber.ccc.de
[url=http://www.c3a.de/]chaostreff augsburg[/url]
[url=http://www.c3a.de/]chaostreff augsburg[/url]
-
- User
- Beiträge: 23
- Registriert: Montag 27. Februar 2006, 19:24
Hallo,
Ich hab ein paar PYthon Bücher befragt und konnte mir dieses Grundgrüst zusammenbasteln (dpkt findet ihr auf http://monkey.org/~dugsong/dpkt/) :
Es _SOLLTE_ ein gefälschtes Paket senden...leider snifft mein Ethereal nix mit Kann das an der fehlenden Prüfsumme bei TCP liegen?
Ist der TCP Teil überhaupt notwendig, oder kann ich das von Python erledigen lassen. Ich will ja nur die IP ändern und nen http-request reinbauen.
Ich bitte nun um kleine oder große Hilfen...ein verbessertes Skript wäre der Traum
Spooky
P.S.: Scapy bricht bei der Ausführung mit der Medung ab:
Traceback (most recent call last):
File "G:\scapy.py", line 1557, in ?
from fcntl import ioctl
ImportError: No module named fcntl
... hat jmd einen Tipp??
Ich hab ein paar PYthon Bücher befragt und konnte mir dieses Grundgrüst zusammenbasteln (dpkt findet ihr auf http://monkey.org/~dugsong/dpkt/) :
Code: Alles auswählen
import socket, dpkt
class rawIpPkt:
def __init__(self):
return
def buildIpPkt(self, protocol, src, dst, data):
ip_p = dpkt.ip.IP()
ip_p.tos = 0
ip_p.off = 0
ip_p.p = protocol #socket.IPPROTO_TCP
ip_p.ttl = 64 # hop limit
ip_p.src = socket.inet_aton(src)
ip_p.dst = socket.inet_aton(dst)
ip_p.data = str(data);
return str(ip_p)
def buildTcpPkt(self, sport, dport, data):
tcp_p = dpkt.tcp.TCP()
tcp_p.urp = 0
tcp_p.ack = 0
tcp_p.seq = 0
tcp_p.win = socket.htons(len(str(data)))
tcp_p.sport = sport #socket.htons(sport)
tcp_p.dport = dport #socket.htons(dport)
tcp_p.data = str(data)
return str(tcp_p)
def main():
req = rawIpPkt()
paket = req.buildIpPkt(socket.IPPROTO_TCP, '127.0.0.2', '127.0.0.3', req.buildTcpPkt(11001, 11002, 'abcdefg'))
sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW)
sock.sendto(paket, 0, ('127.0.0.1', 9999))
main()
Ist der TCP Teil überhaupt notwendig, oder kann ich das von Python erledigen lassen. Ich will ja nur die IP ändern und nen http-request reinbauen.
Ich bitte nun um kleine oder große Hilfen...ein verbessertes Skript wäre der Traum
Spooky
P.S.: Scapy bricht bei der Ausführung mit der Medung ab:
Traceback (most recent call last):
File "G:\scapy.py", line 1557, in ?
from fcntl import ioctl
ImportError: No module named fcntl
... hat jmd einen Tipp??
Sende mal das Paket an eine IP in deinem LAN und nicht an 127.0.0.1 und sniff dann nochmal mit.spooky0815 hat geschrieben: ...
Es _SOLLTE_ ein gefälschtes Paket senden...leider snifft mein Ethereal nix mit
...
Sorry, ich hatte vergessen zu sagen, dass Scapy momentan Windows nicht unterstützt. Es gab zwar schon eine Portierung auf der Mailingliste, aber anscheinend funkionieren dann auch nur die Basis Funktionen von Scapy.spooky0815 hat geschrieben: P.S.: Scapy bricht bei der Ausführung mit der Medung ab:
Traceback (most recent call last):
File "G:\scapy.py", line 1557, in ?
from fcntl import ioctl
ImportError: No module named fcntl
... hat jmd einen Tipp??
http://article.gmane.org/gmane.comp.sec ... eneral/489
Jabber: lobo@jabber.ccc.de
[url=http://www.c3a.de/]chaostreff augsburg[/url]
[url=http://www.c3a.de/]chaostreff augsburg[/url]
-
- User
- Beiträge: 23
- Registriert: Montag 27. Februar 2006, 19:24
getestet...kommt nix an ... Was passt da nicht?? An Ethereal kanns nicht liegen...hat mir bis jetzt immer zuverlässig treue Dienste geleistetSende mal das Paket an eine IP in deinem LAN und nicht an 127.0.0.1 und sniff dann nochmal mit.
!!!NEED HELP!!!
@scapy ... dafür gibts ja VMWare oder Cygwin ... aber danke, ich hätte auch einfach mal auf der scapy-Seite genauer lesen können.
VG
Spooky
Die Klasse `rawIpPkt` ist überflüssig. Die beiden Methoden sollten Funktionen sein.
-
- User
- Beiträge: 23
- Registriert: Montag 27. Februar 2006, 19:24
hallo,
Ok dann bleibt das übrig:
könnte man da jetzt ein Request als Dateninhalt reinpacken und senden. Ich habe da meine Bedenken, weil die Checksumme im TCP-Paket fehlt. Gibt es da eine eingebaute Funktion in Python?
Danke für jede Hilfe,
Spooky
Ok dann bleibt das übrig:
Code: Alles auswählen
import socket, dpkt
def buildIpPkt(protocol, src, dst, data):
ip_p = dpkt.ip.IP()
ip_p.tos = 0
ip_p.off = 0
ip_p.p = protocol #socket.IPPROTO_TCP
ip_p.ttl = 64 # hop limit
ip_p.src = socket.inet_aton(src)
ip_p.dst = socket.inet_aton(dst)
ip_p.data = str(data);
return str(ip_p)
def buildTcpPkt(sport, dport, data):
tcp_p = dpkt.tcp.TCP()
tcp_p.urp = 0
tcp_p.ack = 0
tcp_p.seq = 0
tcp_p.win = socket.htons(len(str(data)))
tcp_p.sport = sport #socket.htons(sport)
tcp_p.dport = dport #socket.htons(dport)
tcp_p.data = str(data)
return str(tcp_p)
paket = buildIpPkt(socket.IPPROTO_TCP, '127.0.0.2', '127.0.0.3', buildTcpPkt(11001, 11002, 'abcdefg'))
sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW)
sock.sendto(paket, 0, ('127.0.0.1', 9999))
Danke für jede Hilfe,
Spooky