Библиотека для интерактивной работы с сетевыми пакетами на Python: создание, декодирование, отправка, захват и анализ пакетов для широкого спектра протоколов, с поддержкой сканирования, трассировки маршрутов, атак и обнаружения сети.
ScapyScapy — это мощная программа и библиотека для интерактивной работы с пакетами на Python.
Она позволяет формировать или декодировать пакеты множества протоколов, отправлять их в сеть, захватывать, сохранять или читать из pcap-файлов, сопоставлять запросы и ответы и многое другое. Она спроектирована для быстрого прототипирования пакетов, используя значения по умолчанию, которые работают.
Она легко справляется с большинством типовых задач, таких как сканирование, трассировка, зондирование, модульное тестирование, атаки или обнаружение сети (может заменить hping, 85% nmap, arpspoof, arp-sk, arping, tcpdump, wireshark, p0f и т.д.). Она также отлично работает со многими другими специфическими задачами, которые большинство других инструментов не могут выполнить, например, отправка некорректных фреймов, внедрение собственных 802.11 фреймов, комбинирование техник (VLAN hopping + ARP-отравление кэша, декодирование VoIP на канале, защищённом WEP, ...) и т.д.
Scapy поддерживает 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 работает без каких-либо внешних модулей Python на Linux и BSD-подобных операционных системах. На Windows необходимо установить некоторые обязательные зависимости, как описано в документации.
На большинстве систем использование Scapy так же просто, как выполнение следующих команд:
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy
Чтобы воспользоваться всеми возможностями Scapy, такими как построение графиков, возможно, потребуется установить модули Python, например matplotlib или cryptography. Смотрите документацию и следуйте инструкциям по их установке.
Код, тесты и инструменты Scapy лицензированы под GPL v2.
Документация (всё, что не отмечено иначе в doc/, и за исключением логотипа) лицензирована под CC BY-NC-SA 2.5.
Хотите внести вклад? Отлично! Пожалуйста, уделите несколько минут прочтению этого!