
Netzwerk-Paket- und pcap-Datei-Erstellungs-/Sniffing-/Manipulations-/Visualisierungs-Sicherheitstool. Ursprünglich 2015 von scapy abgezweigt und bietet seitdem Python-3-Kompatibilität.
Folge @pkt_kamene für aktuelle Neuigkeiten. Originaldokumentation, aktualisiert für kamene
Wir haben eine Namensumstellung durchlaufen (des GitHub-Repos, des Pip-Paketnamens und des Python-Paketnamens), der neue Funktionen folgen werden. Weitere Updates folgen.
Kamene ist im Network Security Toolkit Release 28 enthalten. Es war seit Release 22 unter dem früheren Namen in NST enthalten.
Dies ist ein Fork von scapy (http://www.secdev.org), der ursprünglich entwickelt wurde, um Python3-Kompatibilität zu implementieren. Er wird seit 2015 produktiv mit Python3 eingesetzt (während secdev/scapy die Python3-Kompatibilität 2018 implementierte). Der Fork wurde 2018 in kamene umbenannt, um Verwirrung zu reduzieren.
Diese Funktionen wurden zuerst in kamene implementiert, und einige davon könnten inzwischen in scapy neu implementiert worden sein:
Installiere mit python3 setup.py install aus dem Quellbaum (erhalte ihn mit git clone https://github.com/phaethon/kamene.git) oder pip3 install kamene für die neueste veröffentlichte Version.
Auf allen Betriebssystemen außer Linux sollte libpcap für das Senden und Empfangen von Paketen installiert sein (keine Python-Module – nur C-Bibliotheken) oder der winpcap-Treiber auf Windows. Auf einigen Betriebssystemen und Konfigurationen kann die Installation von libdnet die Erfahrung verbessern (für MacOS: brew install libdnet). Auf Windows ist libdnet nicht erforderlich. Auf einigen weniger verbreiteten Konfigurationen kann netifaces die Erfahrung verbessern.
Verwende bytes() (nicht str()), wenn du Pakete in Bytes umwandelst. Die meisten Argumente erwarten einen bytes-Wert anstelle eines str-Werts, außer denjenigen, die von Natur aus für menschliche Eingaben geeignet sind (z. B. Domainnamen).*
Du kannst kamene verwenden, indem du den Befehl kamene ausführst oder kamene als Bibliothek aus der interaktiven Python-Shell (python oder ipython) oder aus Code importierst.
Einfaches Beispiel, das du aus der interaktiven Shell ausprobieren kannst:
from kamene.all import *
p = IP(dst = 'www.somesite.ex') / TCP(dport = 80) / Raw(b'Some raw bytes')
# um den Paketinhalt als Bytes zu sehen, verwende bytes(p) nicht str(p)
sr1(p)
Beachte 'www.somesite.ex' als String und b'Some raw bytes' als Bytes. Der Domainname ist normale menschliche Eingabe, daher ist er ein String; der rohe Paketinhalt sind Bytedaten. Sobald du anfängst, es zu verwenden, wird es einfacher erscheinen, als es aussieht.
Verwende ls(), um alle unterstützten Schichten aufzulisten. Verwende lsc(), um alle Befehle aufzulisten.
Funktioniert derzeit auf Linux, Darwin, Unix und ähnlichen Systemen. Verwendung von Python 3.4+ auf Ubuntu, MacOS, FreeBSD, Windows 10 zum Testen.
Kompatibel mit dem scapy-http-Modul
rdpcap liest die gesamte pcap-Datei in den Speicher. Wenn du eine große Datei verarbeiten und eine Operation pro Paket durchführen oder Statistiken berechnen musst, kannst du PcapReader mit der Iterator-Schnittstelle verwenden.
with PcapReader('filename.pcap') as pcap_reader:
for pkt in pcap_reader:
#etwas mit dem Paket tun