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/) :
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()
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??