
Herramienta de seguridad para la creación, captura, manipulación y visualización de paquetes de red y archivos pcap. Originalmente bifurcada de scapy en 2015 y con compatibilidad con python3 desde entonces.
Sigue a @pkt_kamene para noticias recientes. Documentación original actualizada para kamene
Hemos pasado por una transición de nombre (del repositorio de github, del nombre del paquete pip y del nombre del paquete python), que será seguida por nuevas funcionalidades. Más actualizaciones próximamente.
Kamene está incluido en el Network Security Toolkit Release 28. Solía estar incluido en NST desde el Release 22 bajo su nombre anterior.
Este es un fork de scapy (http://www.secdev.org) desarrollado originalmente para implementar compatibilidad con python3. Se ha utilizado en producción con python3 desde 2015 (mientras que secdev/scapy implementó compatibilidad con python3 en 2018). El fork fue renombrado a kamene en 2018 para reducir cualquier confusión.
Estas características se implementaron por primera vez en kamene y algunas de ellas podrían haber sido reimplementadas en scapy hasta ahora:
Instala con python3 setup.py install desde el árbol de fuentes (consíguelo con git clone https://github.com/phaethon/kamene.git) o pip3 install kamene para la última versión publicada.
En todos los sistemas operativos excepto Linux, libpcap debe estar instalado para enviar y recibir paquetes (no módulos de python, solo bibliotecas C) o el controlador winpcap en Windows. En algunos sistemas operativos y configuraciones, instalar libdnet puede mejorar la experiencia (para MacOS: brew install libdnet). En Windows no se requiere libdnet. En algunas configuraciones menos comunes, netifaces puede mejorar la experiencia.
Usa bytes() (no str()) al convertir paquetes a bytes. La mayoría de los argumentos esperan un valor bytes en lugar de un valor str, excepto aquellos que son naturalmente adecuados para entrada humana (por ejemplo, nombres de dominio).*
Puedes usar kamene ejecutando el comando kamene o importando kamene como biblioteca desde el shell interactivo de python (python o ipython) o desde código.
Ejemplo simple que puedes probar desde el shell interactivo:
from kamene.all import *
p = IP(dst = 'www.somesite.ex') / TCP(dport = 80) / Raw(b'Some raw bytes')
# para ver el contenido del paquete como bytes usa bytes(p) no str(p)
sr1(p)
Observa 'www.somesite.ex' como cadena, y b'Some raw bytes' como bytes. El nombre de dominio es entrada humana normal, por lo tanto es una cadena; el contenido bruto del paquete son datos de bytes. Una vez que empieces a usarlo, parecerá más fácil de lo que parece.
Usa ls() para listar todas las capas soportadas. Usa lsc() para listar todos los comandos.
Actualmente, funciona en Linux, Darwin, Unix y similares. Se usa python 3.4+ en Ubuntu, MacOS, FreeBSD, Windows 10 para pruebas.
Compatible con el módulo scapy-http
rdpcap lee todo el archivo pcap en memoria. Si necesitas procesar un archivo enorme y realizar alguna operación por paquete o calcular algunas estadísticas, puedes usar PcapReader con la interfaz de iterador.
with PcapReader('filename.pcap') as pcap_reader:
for pkt in pcap_reader:
#haz algo con el paquete