Guida Installare Scapy3 (scapy3k) per Python3.

Stato
Discussione chiusa ad ulteriori risposte.

Err0r404

Utente Bronze
27 Marzo 2017
34
7
6
33
In questa guida vi spiego il modo che io ho trovato più facile ed efficace per installare su Kali Linux "Scapy3" più correttamente: scapy3k, ovvero la versione di scapy compatibile con Python3 e vi delucido anche sul nuovo ed unico modo per richiamarne l'import.
Faccio solo due premesse:
  • Porto la guida in questa sezione perchè sebbene l'argomento collida con programmazione in Python3, Scapy è un potentissimo ed utilissimo strumento utilizzato per il penetration testing, scanning, sniffing, spoofing, poisoning, etc.
  • La guida sarà più basilare possibile vista anche la mia davvero poca esperienza. Ciononostante ho deciso di scriverla perchè nella rete si sente tanto la mancanza di una chiara guida (sia in inglese che in italiano) sull'argomento.

Di guide ed indicazioni per l'installazione di Scapy2 ce ne sono a bizzeffe, mentre per quanto riguarda l'ultima versione con contorno di compatibilità Python3 ci si può ritrovare in un mare abbastanza confuso.
Il presupposto è che tu che leggi sia in questo mare, provo a buttarti un salvagente :p

Do per scontato che tu abbia installato la versione di Python3 disponibile.
  1. Apri il terminale.
  2. Codice:
    $ apt-get install python3
Faccio questa specifica perchè io mi sono trovato spiazzato nell'apprendere che Python 2.7 sia un concetto staccato da Python 3 e ti dico questo perchè è bene che tu entri in quest'ottica per capire che anche Scapy 2 è ben diverso da Scapy 3.
Mi spiego meglio: potresti credere che un semplice update di python possa bastare per avere l'ultima versione disponibile, come magari potresti credere lo stesso per scapy, basta apprendere che non è così.

Quindi, abbiamo python2.7 e abbiamo python3, potremmo anche avere scapy:

  • Codice:
    $ apt-get install scapy
Ora siamo al punto. Se:

  1. Apri il terminale
  2. Codice:
    $ scapy
Scapy parte, si, ma scapy2.x.x, se vuoi scrivere in python2.7 non avrai problemi:
  • Aprirai
    Codice:
    $ python tuo_file_scapy.py
  • Che avrai codato con il modulo scapy importato richiamandolo con:
Python:
from scapy.all import *

Eccoci giunti allora al cuore della guida. Tu non vuoi codare con python2.7, vuoi usare python3 e se è vero quello asserito in precedenza riguardo il ponte rotto tra le versioni 2 e 3 (sia di python che di scapy) avremo che tuo_file_scapy.py aperto così:
Codice:
$ python3 tuo_file_scapy.py
riporterà:
Python:
Traceback (most recent call last):
  File "/root/tuo_file_scapy.py", line 1, in <module>
    from scapy.all import *
ModuleNotFoundError: No module named 'scapy'

Questo per due motivi. Vediamoli di seguito.

UNO. Per quanto tu possa aggiornare scapy non otterrai mai scapy3, al secolo "scapy3k" (segnatelo è il suo nome ed il nome repo).
Installiamo quindi scapy3k.
  1. Apri il terminale
  2. Codice:
    $ cd /tmp
    $ git clone https://github.com/phaethon/scapy.git
    $ cd scapy
    $ python3 setup.py install

Se avete fatto tutto correttamente già noterete durante l'installazione che alcuni pacchetti sono nominati "scapy3k", per conferma definitiva dovreste provare:

Codice:
$ scapy3k

WARNING: No route found for IPv6 destination :: (no default route?). This affects only IPv6
INFO: Please, report issues to https://github.com/phaethon/scapy
Welcome to Scapy (3.0.0)
>>>

Siamo a cavallo, qualsiasi errore possiate riscontrare prima o dopo il WARNING o INFO potrebbe dipendere da milioni di cose, non sono un esperto googolate.
Quello che è certo è che ora abbiamo Python3 e Scapy3.
Eppure se provate come detto prima:

Codice:
$ python3 tuo_file_scapy.py

riporterà comunque:

Python:
Traceback (most recent call last):
  File "/root/tuo_file_scapy.py", line 1, in <module>
    from scapy.all import *
ModuleNotFoundError: No module named 'scapy'

DUE. Siamo arrivati anche a questo. In scapy3k su python3 abbiamo anche un unico e nuovo modo di richiamare l'import, si tratta di:

Python:
from scapy3k.all import *



Si, piccola insignificante guida di cui ho sentito estremamente la mancanza in questi ultimi due giorni di estrema sofferenza.
Spero che possa essere utile, spero non sia la sezione sbagliata, spero si sia capito che non sono un esperto ma ho semplicemente portato un argomento che avrei voluto tanto avere a disposizione.
Happy coding!
 
Bella guida, molto utile. Hai offerto spunti interessanti che approfondirò.

Conoscevo scapy ma fino ad ora ho utilizzato solo le raw socket. Al più presto passerò a scapy.

Magari, una cosa aggiuntiva che potresti spiegare è la seguente: come installare scapy3k in un virtual env di Python.
 
Stato
Discussione chiusa ad ulteriori risposte.