Pythonベースの対話型パケット操作ライブラリ。幅広いプロトコルにわたるネットワークパケットの偽造、デコード、送信、キャプチャ、解析に対応し、スキャン、トレースルーティング、攻撃、ネットワーク探索をサポートします。
ScapyScapyは、強力なPythonベースの対話型パケット操作プログラムおよびライブラリです。
幅広いプロトコルのパケットを偽造またはデコードし、ネットワーク上に送信し、キャプチャし、pcapファイルを使用して保存または読み取り、リクエストと応答を照合するなど、多くの機能を備えています。動作するデフォルト値を使用することで、迅速なパケットプロトタイピングを可能にするように設計されています。
スキャン、トレースルート、プロービング、ユニットテスト、攻撃、ネットワーク発見(、の85%、、、、、、などを置き換え可能)など、ほとんどの古典的なタスクを簡単に処理できます。また、無効なフレームの送信、独自の802.11フレームの注入、手法の組み合わせ(VLANホッピング+ARPキャッシュポイズニング、WEP保護チャネルでのVoIPデコードなど)など、他のほとんどのツールでは扱えない特定のタスクでも非常に優れた性能を発揮します。
hpingnmaparpspoofarp-skarpingtcpdumpwiresharkp0fScapyはPython 3.7+をサポートしています。クロスプラットフォームを意図しており、多くの異なるプラットフォーム(Linux、OSX、*BSD、Windows)で動作します。
Scapyはシェルまたはライブラリとして使用できます。 詳細については、ドキュメントの一部であるScapy入門をご覧ください。
Scapyはネットワークと対話するための対話型シェルとして簡単に使用できます。
次の例は、ICMP Echo Requestメッセージをgithub.comに送信し、応答の送信元IPアドレスを表示する方法を示しています。
sudo ./run_scapy
Welcome to Scapy
>>> p = IP(dst="github.com")/ICMP()
>>> r = sr1(p)
Begin emission:
.Finished to send 1 packets.
*
Received 2 packets, got 1 answers, remaining 0 packets
>>> r[IP].src
'192.30.253.113'
ドキュメントには、より高度なユースケースと例が含まれています。
その他の便利なリソース:
ScapyはLinuxやBSD系のオペレーティングシステムでは外部Pythonモジュールなしで動作します。Windowsでは、ドキュメントに記載されている必須の依存関係をインストールする必要があります。
ほとんどのシステムでは、以下のコマンドを実行するだけでScapyを使用できます。
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy
プロットなどのScapyの全機能を活用するには、matplotlibやcryptographyなどのPythonモジュールをインストールするとよいでしょう。ドキュメントを参照し、指示に従ってインストールしてください。
Scapyのコード、テスト、ツールはGPL v2の下でライセンスされています。ドキュメント(doc/内で特に明記されていないもの、およびロゴを除くすべて)はCC BY-NC-SA 2.5の下でライセンスされています。
コントリビューションしたいですか?素晴らしい!数分かけてこちらをお読みください!