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