Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pyshark — tshark용 Python 래퍼로, Wireshark 디섹터를 사용하여 Python 패킷 파싱을 가능하게 합니다. | Kitploit
도구/GitHubGitHub/kiminewt/pyshark
Packet Sniffing & AnalysisWi-Fi AuditingEncryption/Decryption ToolsNetwork ForensicsForensicsNetwork SecurityWireless SecurityDigital Forensics
GitHubkiminewt/pyshark

pyshark

tshark용 Python 래퍼로, Wireshark 디섹터를 사용하여 Python 패킷 파싱을 가능하게 합니다.

저장소 보기
2.5k45285개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

pyshark

Python wrapper for tshark, allowing python packet parsing using wireshark dissectors.

확장 문서: http://kiminewt.github.io/pyshark

기여자 찾습니다 - 여러 가지 이유로 현재 패키지를 유지 관리하고 개선할 시간을 내기 어렵습니다. 모든 풀 리퀘스트는 검토될 것이며, 관심이 있고 적합한 분이 계시다면 프로젝트에 포함시키게 되어 기쁩니다. dorgreen1 at gmail.com으로 메일 주시기 바랍니다.

꽤 많은 Python 패킷 파싱 모듈이 있지만, 이 모듈은 실제로 패킷을 파싱하지 않고 단지 tshark(wireshark 명령행 유틸리티)의 XML 내보내기 기능을 사용하여 파싱한다는 점에서 다릅니다.

이 패키지는 캡처 파일이나 라이브 캡처에서 파싱을 수행하며, 설치된 모든 wireshark 디섹터를 사용합니다. Windows/Linux에서 테스트되었습니다.

설치

버전 지원

Python 3.7+가 지원됩니다. 지원되지 않는 Python 2 버전은 pyshark-legacy로 존재합니다.

tshark / wireshark의 모든 최신 버전을 지원하지만 일부 기능은 이전 버전에서 사용하지 못할 수 있습니다.

모든 플랫폼

다음을 실행하여 pypi에서 최신 버전을 설치하세요.

root@kitploit:~
pip install pyshark

또는 git 저장소에서 설치:

root@kitploit:~
git clone https://github.com/KimiNewt/pyshark.git
cd pyshark/src
python setup.py install

Mac OS X

예상치 못한 libxml 설치가 필요할 수 있습니다. clang 오류 또는 libxml 관련 오류 메시지가 발생하면 다음을 실행하세요:

root@kitploit:~
xcode-select --install
pip install libxml

XCode에 대한 EULA에 동의해야 할 수 있으므로 GUI에서 "동의" 대화상자를 클릭할 준비를 하세요.

사용법

캡처 파일 읽기:

root@kitploit:~
>>> import pyshark
>>> cap = pyshark.FileCapture('/tmp/mycapture.cap')
>>> cap
<FileCapture /tmp/mycapture.cap (589 packets)>
>>> print cap[0]
Packet (Length: 698)
Layer ETH:
        Destination: BLANKED
        Source: BLANKED
        Type: IP (0x0800)
Layer IP:
        Version: 4
        Header Length: 20 bytes
        Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))
        Total Length: 684
        Identification: 0x254f (9551)
        Flags: 0x00
        Fragment offset: 0
        Time to live: 1
        Protocol: UDP (17)
        Header checksum: 0xe148 [correct]
        Source: BLANKED
        Destination: BLANKED
  ...

기타 옵션

  • param keep_packets: next()로 패킷을 읽은 후에도 유지할지 여부. 큰 캡 파일을 읽을 때 메모리를 절약하는 데 사용됩니다.
  • param input_file: 패킷 캡처 파일(PCAP, PCAP-NG..) 또는 TShark xml이 포함된 경로 또는 파일류 객체.
  • param display_filter: 캡을 읽기 전에 적용할 디스플레이(wireshark) 필터.
  • param only_summaries: 패킷 요약만 생성하며, 훨씬 빠르지만 정보가 매우 적습니다.
  • param disable_protocol: 프로토콜 감지 비활성화 (tshark > 버전 2)
  • param decryption_key: 캡처된 트래픽을 암호화 및 복호화하는 데 사용되는 키.
  • param encryption_type: 캡처된 트래픽에 사용된 암호화 표준 ('WEP', 'WPA-PWD', 'WPA-PWK' 중 하나여야 함. 기본값은 WPA-PWK).
  • param tshark_path: tshark 바이너리 경로

라이브 인터페이스에서 읽기:

root@kitploit:~
>>> capture = pyshark.LiveCapture(interface='eth0')
>>> capture.sniff(timeout=50)
>>> capture
<LiveCapture (5 packets)>
>>> capture[3]
<UDP/HTTP Packet>

for packet in capture.sniff_continuously(packet_count=5):
    print('Just arrived:', packet)

기타 옵션

  • param interface: 스니핑할 인터페이스 이름. 지정하지 않으면 사용 가능한 첫 번째 인터페이스 사용.
  • param bpf_filter: 패킷에 사용할 BPF 필터.
  • param display_filter: 사용할 디스플레이(wireshark) 필터.
  • param only_summaries: 패킷 요약만 생성하며, 훨씬 빠르지만 정보가 매우 적습니다.
  • param disable_protocol: 프로토콜 감지 비활성화 (tshark > 버전 2)
  • param decryption_key: 캡처된 트래픽을 암호화 및 복호화하는 데 사용되는 키.
  • param encryption_type: 캡처된 트래픽에 사용된 암호화 표준 ('WEP', 'WPA-PWD', 'WPA-PWK' 중 하나여야 함. 기본값은 WPA-PWK).
  • param tshark_path: tshark 바이너리 경로
  • param output_file: 캡처된 패킷을 추가로 이 파일에 저장합니다.

링 버퍼를 사용한 라이브 인터페이스 읽기

root@kitploit:~
>>> capture = pyshark.LiveRingCapture(interface='eth0')
>>> capture.sniff(timeout=50)
>>> capture
<LiveCapture (5 packets)>
>>> capture[3]
<UDP/HTTP Packet>

for packet in capture.sniff_continuously(packet_count=5):
    print('Just arrived:', packet)

기타 옵션

  • param ring_file_size: 링 파일 크기 (kB 단위), 기본값은 1024
  • param num_ring_files: 유지할 링 파일 개수, 기본값은 1
  • param ring_file_name: 링 파일 이름, 기본값은 /tmp/pyshark.pcap
  • param interface: 스니핑할 인터페이스 이름. 지정하지 않으면 사용 가능한 첫 번째 인터페이스 사용.
  • param bpf_filter: 패킷에 사용할 BPF 필터.
  • param display_filter: 사용할 디스플레이(wireshark) 필터.
  • param only_summaries: 패킷 요약만 생성하며, 훨씬 빠르지만 정보가 매우 적습니다.
  • param disable_protocol: 프로토콜 감지 비활성화 (tshark > 버전 2)
  • param decryption_key: 캡처된 트래픽을 암호화 및 복호화하는 데 사용되는 키.
  • param encryption_type: 캡처된 트래픽에 사용된 암호화 표준 ('WEP', 'WPA-PWD', 'WPA-PWK' 중 하나여야 함. 기본값은 WPA-PWK).
  • param tshark_path: tshark 바이너리 경로
  • param output_file: 캡처된 패킷을 추가로 이 파일에 저장합니다.

라이브 원격 인터페이스에서 읽기:

root@kitploit:~
>>> capture = pyshark.RemoteCapture('192.168.1.101', 'eth0')
>>> capture.sniff(timeout=50)
>>> capture

기타 옵션

  • param remote_host: 캡처를 수행할 원격 호스트 (IP 또는 호스트명). rpcapd가 실행 중이어야 합니다.
  • param remote_interface: 원격 머신에서 캡처할 원격 인터페이스. Windows에서는 장치 표시 이름이 아니라 실제 인터페이스 이름(예: \Device\NPF_..)입니다.
  • param remote_port: rpcapd 서비스가 수신 대기 중인 원격 포트
  • param bpf_filter: 캡을 읽기 전에 적용할 BPF(tcpdump) 필터.
  • param only_summaries: 패킷 요약만 생성하며, 훨씬 빠르지만 정보가 매우 적습니다.
  • param disable_protocol: 프로토콜 감지 비활성화 (tshark > 버전 2)
  • param decryption_key: 캡처된 트래픽을 암호화 및 복호화하는 데 사용되는 키.
  • param encryption_type: 캡처된 트래픽에 사용된 암호화 표준 ('WEP', 'WPA-PWD', 'WPA-PWK' 중 하나여야 함. 기본값은 WPA-PWK).
  • param tshark_path: tshark 바이너리 경로

패킷 데이터 접근:

데이터는 여러 방식으로 접근할 수 있습니다. 패킷은 레이어로 나뉘며, 먼저 적절한 레이어에 도달한 후 필드를 선택해야 합니다.

다음은 모두 작동합니다:

root@kitploit:~
>>> packet['ip'].dst
192.168.0.1
>>> packet.ip.src
192.168.0.100
>>> packet[2].src
192.168.0.100

패킷에 레이어가 있는지 확인하려면 이름을 사용할 수 있습니다:

root@kitploit:~
>>> 'IP' in packet
True

가능한 모든 필드 이름을 보려면 packet.layer.field_names 속성(예: packet.ip.field_names)이나 인터프리터의 자동 완성 기능을 사용하세요.

필드의 원본 이진 데이터나 그에 대한 예쁜 설명도 얻을 수 있습니다:

root@kitploit:~
>>> p.ip.addr.showname
Source or Destination Address: 10.0.0.10 (10.0.0.10)
# 그리고 몇 가지 새로운 속성도 있습니다:
>>> p.ip.addr.int_value
167772170
>>> p.ip.addr.binary_value
b'\n\x00\x00\n'

패킷 캡처 복호화

Pyshark는 WEP, WPA-PWD, WPA-PSK 표준을 사용한 트레이스 자동 복호화를 지원합니다(WPA-PWD가 기본값입니다).

root@kitploit:~
>>> cap1 = pyshark.FileCapture('/tmp/capture1.cap', decryption_key='password')
>>> cap2 = pyshark.LiveCapture(interface='wi0', decryption_key='password', encryption_type='wpa-psk')

지원되는 암호화 표준의 튜플인 SUPPORTED_ENCRYPTION_STANDARDS가 각 캡처 클래스에 존재합니다.

root@kitploit:~
>>> pyshark.FileCapture.SUPPORTED_ENCRYPTION_STANDARDS
('wep', 'wpa-pwd', 'wpa-psk')
>>> pyshark.LiveCapture.SUPPORTED_ENCRYPTION_STANDARDS
('wep', 'wpa-pwd', 'wpa-psk')

디스플레이 필터를 사용한 파일 읽기

Pyshark 디스플레이 필터는 애플리케이션 중심 트래픽을 분석하는 데 유용할 수 있습니다. BPF 필터는 Wireshark의 디스플레이 필터만큼 유연하지 않습니다.

root@kitploit:~
>>> cap1 = pyshark.FileCapture('/tmp/capture1.cap', display_filter="dns")
>>> cap2 = pyshark.LiveCapture(interface='en0', display_filter="tcp.analysis.retransmission")

라이선스

이 프로젝트는 MIT 라이선스로 제공됩니다. 이 프로젝트에 대한 기여는 동일한 라이선스 하에 수락됩니다.

도구 다운로드