Domanda

Provo ad implementare 3-way-hadnshake con una presa grea in Python e usando scappy.

Il codice è:

s=socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.IPPROTO_TCP)
ss=StreamSocket(s)
iph=IPheader()
syn = TCP(sport=TCP_SOURCE_PORT,dport=TCP_DESTINATION_PORT, flags="S")
synack = ss.sr1(iph/syn)
myack = iph/TCP(dport=synack[TCP].sport, sport=synack[TCP].dport, seq=synack[TCP].ack, ack=synack[TCP].seq+1, flags="A")
ss.send(myack)
.

Ipheader () Metodo restituisce un'intestazione IP Scapy.

Quando si esegue lo script ottengo questo errore:

ERROR: --- Error in child 3057
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/scapy/sendrecv.py", line 89, in sndrcv
pks.send(p)
File "/usr/lib/python2.7/dist-packages/scapy/supersocket.py", line 34, in send
return self.outs.send(sx)
error: [Errno 6] No such device or address
.

È stato utile?

Soluzione

Vedo un paio di possibili problemi con il tuo codice:

    .
  • Prima di richiamare StreamSocket() è necessario stabilire una connessione con una presa regolare.Quindi è necessario effettuare una connessione, qualcosa come s.connect(("10.1.1.1",9000)) prima della linea ss=StreamSocket(s).Ulteriori informazioni possono essere trovate qui

    Potrebbe essere necessario correggere il tipo di presa di base.Suggerirei qualcosa come s=socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP).Per ulteriori informazioni check

Altri suggerimenti

Il dispositivo non risponde al tuo pacchetto SYN perché una presa RAW non lo fa.Devi inviare manualmente il syn-ack.Inoltre, Wireshark e TCP mostrano numeri di sequenza come relativo.Per mostrare il numero effettivo è necessario disattivare questa opzione.In terzo luogo, è possibile impostare il numero di sequenza manualmente o randomizzarlo usando

TCP(sport = port1, dport = port2, flags="A", seq = random.getrandbits(32), ack = MY_ACK)
.

o

TCP(sport = port1, dport = port2, flags="A", seq = 01395, ack = MY_ACK)
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top