
Strumento di sicurezza per la creazione, l'intercettazione, la manipolazione e la visualizzazione di pacchetti di rete e file pcap. Originariamente fork di scapy nel 2015 e da allora compatibile con python3.
Segui @pkt_kamene per le ultime novità. Documentazione originale aggiornata per kamene
Abbiamo attraversato una transizione di denominazione (del repository github, del nome del pacchetto pip e del nome del pacchetto python), che sarà seguita da nuove funzionalità. Ulteriori aggiornamenti seguiranno.
Kamene è incluso nel Network Security Toolkit Release 28. Era incluso in NST dalla Release 22 con il nome precedente.
Questo è un fork di scapy (http://www.secdev.org) originariamente sviluppato per implementare la compatibilità con python3. È stato utilizzato in produzione su python3 dal 2015 (mentre secdev/scapy ha implementato la compatibilità con python3 nel 2018). Il fork è stato rinominato kamene nel 2018 per ridurre qualsiasi confusione.
Queste funzionalità sono state implementate per la prima volta in kamene e alcune di esse potrebbero essere state reimplementate in scapy nel frattempo:
Installa con python3 setup.py install dall'albero dei sorgenti (ottienilo con git clone https://github.com/phaethon/kamene.git) oppure pip3 install kamene per l'ultima versione pubblicata.
Su tutti i sistemi operativi tranne Linux, libpcap dovrebbe essere installata per l'invio e la ricezione dei pacchetti (non moduli python - solo librerie C) oppure il driver winpcap su Windows. Su alcuni sistemi operativi e configurazioni, l'installazione di libdnet può migliorare l'esperienza (per MacOS: brew install libdnet). Su Windows libdnet non è richiesta. Su alcune configurazioni meno comuni, netifaces può migliorare l'esperienza.
Usa bytes() (non str()) quando converti un pacchetto in byte. La maggior parte degli argomenti si aspetta un valore bytes invece di un valore str, tranne quelli che sono naturalmente adatti all'input umano (ad esempio il nome di dominio).*
Puoi usare kamene eseguendo il comando kamene oppure importando kamene come libreria dalla shell interattiva di python (python o ipython) o dal codice.
Semplice esempio che puoi provare dalla shell interattiva:
from kamene.all import *
p = IP(dst = 'www.somesite.ex') / TCP(dport = 80) / Raw(b'Some raw bytes')
# per vedere il contenuto del pacchetto come byte usa bytes(p) non str(p)
sr1(p)
Nota 'www.somesite.ex' come stringa e b'Some raw bytes' come byte. Il nome di dominio è un normale input umano, quindi è una stringa, il contenuto grezzo del pacchetto è dati byte. Una volta che inizi a usarlo, sembrerà più facile di quanto sembri.
Usa ls() per elencare tutti i layer supportati. Usa lsc() per elencare tutti i comandi.
Attualmente, funziona su Linux, Darwin, Unix e simili. Utilizza python 3.4+ su Ubuntu, MacOS, FreeBSD, Windows 10 per i test.
Compatibile con modulo scapy-http
rdpcap legge l'intero file pcap in memoria. Se devi elaborare un file enorme ed eseguire qualche operazione per pacchetto o calcolare alcune statistiche, puoi usare PcapReader con l'interfaccia iteratore.
with PcapReader('filename.pcap') as pcap_reader:
for pkt in pcap_reader:
#fai qualcosa con il pacchetto