
Outil de sécurité pour la création, la capture, la manipulation et la visualisation de paquets réseau et de fichiers pcap. Initialement forké depuis scapy en 2015 et offrant une compatibilité python3 depuis lors.
Suivez @pkt_kamene pour les actualités récentes. Documentation originale mise à jour pour kamene
Nous avons procédé à une transition de nom (du dépôt github, du nom du paquet pip et du nom du paquet python), qui sera suivie de nouvelles fonctionnalités. D'autres mises à jour suivront.
Kamene est inclus dans le Network Security Toolkit version 28. Il était inclus dans NST depuis la version 22 sous son ancien nom.
Il s'agit d'un fork de scapy (http://www.secdev.org) développé à l'origine pour implémenter la compatibilité python3. Il est utilisé en production sur python3 depuis 2015 (tandis que secdev/scapy a implémenté la compatibilité python3 en 2018). Le fork a été renommé kamene en 2018 pour réduire toute confusion.
Ces fonctionnalités ont été implémentées en premier dans kamene et certaines d'entre elles ont peut-être été réimplémentées dans scapy depuis :
Installez avec python3 setup.py install à partir de l'arborescence source (obtenez-la avec git clone https://github.com/phaethon/kamene.git) ou pip3 install kamene pour la dernière version publiée.
Sur tous les systèmes d'exploitation sauf Linux, libpcap doit être installé pour l'envoi et la réception de paquets (pas les modules python - uniquement les bibliothèques C) ou le pilote winpcap sur Windows. Sur certains systèmes d'exploitation et configurations, l'installation de libdnet peut améliorer l'expérience (pour MacOS : brew install libdnet). Sur Windows, libdnet n'est pas requis. Sur certaines configurations moins courantes, netifaces peut améliorer l'expérience.
Utilisez bytes() (et non str()) lors de la conversion d'un paquet en octets. La plupart des arguments attendent une valeur bytes au lieu d'une valeur str, à l'exception de ceux qui sont naturellement adaptés à une saisie humaine (par exemple, le nom de domaine).*
Vous pouvez utiliser kamene en exécutant la commande kamene ou en important kamene comme bibliothèque depuis le shell python interactif (python ou ipython) ou depuis du code.
Exemple simple que vous pouvez essayer depuis le shell interactif :
from kamene.all import *
p = IP(dst = 'www.somesite.ex') / TCP(dport = 80) / Raw(b'Some raw bytes')
# pour voir le contenu du paquet en octets, utilisez bytes(p) et non str(p)
sr1(p)
Remarquez 'www.somesite.ex' comme chaîne de caractères, et b'Some raw bytes' comme octets. Le nom de domaine est une saisie humaine normale, c'est donc une chaîne de caractères, le contenu brut du paquet est des données octets. Une fois que vous commencerez à l'utiliser, cela semblera plus facile que cela n'en a l'air.
Utilisez ls() pour lister toutes les couches prises en charge. Utilisez lsc() pour lister toutes les commandes.
Actuellement, fonctionne sur Linux, Darwin, Unix et autres. Utilisation de python 3.4+ sur Ubuntu, MacOS, FreeBSD, Windows 10 pour les tests.
Compatible avec le module scapy-http
rdpcap lit l'intégralité du fichier pcap en mémoire. Si vous devez traiter un fichier volumineux et effectuer une opération par paquet ou calculer des statistiques, vous pouvez utiliser PcapReader avec l'interface itérateur.
with PcapReader('filename.pcap') as pcap_reader:
for pkt in pcap_reader:
#faire quelque chose avec le paquet