Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pyshark — tshark用のPythonラッパーで、Wiresharkのディセクタを使用したPythonパケット解析を可能にします。 | Kitploit
ツール/GitHubGitHub/kiminewt/pyshark
パケットスニッフィングと分析Wi-Fi監査暗号化/復号化ツールネットワークフォレンジックフォレンジックネットワークセキュリティワイヤレスセキュリティデジタルフォレンジック
GitHubkiminewt/pyshark

pyshark

tshark用のPythonラッパーで、Wiresharkのディセクタを使用したPythonパケット解析を可能にします。

リポジトリを見る
2.5k45285ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

pyshark

tshark の Python ラッパー。Wireshark のディセクタを使用して Python でパケット解析を可能にします。

拡張ドキュメント: http://kiminewt.github.io/pyshark

コントリビューター募集中 - 様々な理由により、現在パッケージのメンテナンスと機能強化に時間を割くのが難しい状況です。プルリクエストはすべて確認します。興味があり、適任と思われる方は、プロジェクトに参加していただけると嬉しいです。[email protected] までご連絡ください。

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)
# And some new attributes as well:
>>> 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 ライセンスの下で提供されています。このプロジェクトへのコントリビューションは、同じライセンスの下で受け付けられます。

ツールをダウンロード