Scapy は、Python ベースの強力な対話型パケット操作プログラムおよびライブラリです。
さまざまなプロトコルのパケットを偽造またはデコードし、回線上でパケットを送信し、キャプチャし、pcap ファイルを使用して保存または読み取り、要求と応答の照合などを行うことができます。これは、機能するデフォルト値を使用して高速なパケット プロトタイピングを可能にするように設計されています。
スキャン、トレースルーティング、プローブ、単体テスト、攻撃、ネットワーク検出などのほとんどの古典的なタスクを簡単に処理できます ( hping
、 nmap
の 85% 、 arpspoof
、 arp-sk
、 arping
、 tcpdump
、 wireshark
、 p0f
などを置き換えることができます)。また、無効なフレームの送信、独自の 802.11 フレームの挿入、技術の組み合わせ (VLAN ホッピング + ARP キャッシュ ポイズニング、WEP で保護されたチャネルでの VoIP デコードなど) など、他のツールでは処理できない多くの特定のタスクでも非常に優れたパフォーマンスを発揮します。 ..)など
Scapy は Python 3.7 以降をサポートしています。これはクロスプラットフォームであることを目的としており、多くの異なるプラットフォーム (Linux、OSX、*BSD、および Windows) で実行できます。
Scapy はシェルとしてもライブラリとしても使用できます。詳細については、ドキュメントの一部である「Scapy の開始」を参照してください。
Scapy は、ネットワークと対話するための対話型シェルとして簡単に使用できます。次の例は、ICMP エコー リクエスト メッセージをgithub.com
に送信し、応答の送信元 IP アドレスを表示する方法を示しています。
sudo ./run_scapyScapy へようこそ>>> p = IP(dst="github.com")/ICMP()>>> r = sr1(p)エミッションの開始: .1 パケットの送信を完了しました。*2 パケットを受信、1 つの応答を得て、残り 0 パケット>>> r[IP].src'192.30.253.113'
ドキュメントには、より高度な使用例と例が含まれています。
その他の役立つリソース:
20分でスケーピー
インタラクティブなチュートリアル (ドキュメントの一部)
簡単なデモ: インタラクティブなセッション (一部の例は古い可能性があります)
HTTP/2 ノートブック
TLS ノートブック
Scapy は、Linux や BSD のようなオペレーティング システム上で外部 Python モジュールなしで動作します。 Windows では、ドキュメントの説明に従って、いくつかの必須の依存関係をインストールする必要があります。
ほとんどのシステムでは、Scapy の使用は次のコマンドを実行するだけで簡単です。
git clone https://github.com/secdev/scapycd scapy ./run_scapy
プロットなどの Scapy のすべての機能を活用するには、 matplotlib
やcryptography
などの Python モジュールをインストールすることをお勧めします。ドキュメントを参照し、指示に従ってインストールしてください。
Scapy のコード、テスト、ツールは GPL v2 に基づいてライセンスされています。ドキュメント ( doc/
に別のマークが付けられていない限り、ロゴを除くすべて) は CC BY-NC-SA 2.5 に基づいてライセンスされています。
貢献したいですか?素晴らしい!数分かけてこれを読んでください。