2. scapy
Read
rdpcap: 이미 저장된 pcap 파일 읽을 때 사용
sniff: 실시간으로 네트워크 인터페이스 캡쳐
1
2
3
4
5
6
7
8
from scapy.all import rdpcap, sniff
packets = rdpcap("capture.pcap")
print(len(packets))
packets[0].show()
packets = sniff(iface="eth0", count=10, filter="tcp")
packets.summary()
bytes(pkt): Ethernet, IP, TCP, Raw등 모든 하위 레이어까지 합쳐진 전체 프레임 반환
raw(pkt): 지정한 레이어부터 끝까지 바이트로 추출
※ Raw: 패킷의 마지막 Raw layer, 즉 Scapy가 더이상 해석할 수 없는 데이터 부분을 가리킴
1
2
3
4
5
6
7
8
9
10
from scapy.all import Raw, raw
pkt = packets[0]
# 다음 두개는 같은 결과를 반환
print(bytes(pkt)) # packet 전체를 binary code로
print(raw(pkt)) # packet 전체를 binary code로
# 다음 두개는 같은 결과를 반환
print(pkt[Raw].load) # payload 부분을 binary code로
print(raw(pkt[Raw])) # payload 부분을 binary code로
Trasnform
Load
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.