
네트워크 패킷 및 pcap 파일 제작/스니핑/조작/시각화 보안 도구. 원래 2015년에 scapy에서 포크되었으며, 그 이후로 python3 호환성을 제공하고 있습니다.
최신 소식은 @pkt_kamene를 팔로우하세요. kamene용으로 업데이트된 원본 문서
우리는 명칭 전환(github 저장소, pip 패키지 이름, python 패키지 이름)을 진행했으며, 이후 새로운 기능이 추가될 예정입니다. 더 많은 업데이트가 곧 이어질 것입니다.
Kamene는 Network Security Toolkit 릴리스 28에 포함되어 있습니다. 이전 명칭으로 릴리스 22부터 NST에 포함되어 있었습니다.
이 프로젝트는 원래 python3 호환성을 구현하기 위해 개발된 scapy(http://www.secdev.org)의 포크입니다. 2015년부터 python3 환경에서 프로덕션 용도로 사용되어 왔습니다(secdev/scapy는 2018년에 python3 호환성을 구현했습니다). 혼동을 줄이기 위해 2018년에 포크 이름이 kamene로 변경되었습니다.
이러한 기능들은 kamene에서 처음 구현되었으며, 일부는 현재 scapy에도 재구현되었을 수 있습니다:
소스 트리에서 python3 setup.py install로 설치하거나(로 받기), 최신 게시 버전의 경우 로 설치합니다.
git clone https://github.com/phaethon/kamene.gitpip3 install kameneLinux를 제외한 모든 OS에서는 패킷 송수신을 위해 libpcap(파이썬 모듈이 아닌 C 라이브러리) 또는 Windows의 경우 winpcap 드라이버가 설치되어 있어야 합니다. 일부 OS 및 구성에서는 libdnet 설치가 경험을 개선할 수 있습니다(MacOS의 경우: brew install libdnet). Windows에서는 libdnet이 필요하지 않습니다. 일부 덜 일반적인 구성에서는 netifaces가 경험을 개선할 수 있습니다.
패킷을 바이트로 변환할 때는 str()이 아닌 bytes()를 사용하세요. 대부분의 인자는 str 값 대신 bytes 값을 기대하지만, 도메인 이름과 같이 사람의 입력에 자연스럽게 적합한 인자는 예외입니다.*
kamene 명령을 실행하거나 대화형 파이썬 셸(python 또는 ipython) 또는 코드에서 라이브러리로 kamene을 가져와 사용할 수 있습니다.
대화형 셸에서 시도할 수 있는 간단한 예제:
from kamene.all import *
p = IP(dst = 'www.somesite.ex') / TCP(dport = 80) / Raw(b'Some raw bytes')
# 패킷 내용을 바이트로 보려면 str(p)가 아닌 bytes(p)를 사용하세요
sr1(p)
'www.somesite.ex'가 문자열이고 b'Some raw bytes'가 바이트임을 주목하세요. 도메인 이름은 일반적인 사람 입력이므로 문자열이고, 원시 패킷 내용은 바이트 데이터입니다. 사용을 시작하면 보이는 것보다 쉬울 것입니다.
ls()를 사용하여 지원되는 모든 레이어를 나열하세요. lsc()를 사용하여 모든 명령을 나열하세요.
현재 Linux, Darwin, Unix 등에서 작동합니다. 테스트에는 Ubuntu, MacOS, FreeBSD, Windows 10에서 python 3.4+를 사용합니다.
scapy-http 모듈과 호환됩니다.
rdpcap은 전체 pcap 파일을 메모리로 읽습니다. 대용량 파일을 처리하고 패킷별로 일부 작업을 수행하거나 통계를 계산해야 하는 경우, 반복자 인터페이스가 있는 PcapReader를 사용할 수 있습니다.
with PcapReader('filename.pcap') as pcap_reader:
for pkt in pcap_reader:
#패킷으로 무언가를 수행