как установить scapy kali linux
Download and InstallationпѓЃ
OverviewпѓЃ
Run Scapy with root privileges.
Each of these steps can be done in a different way depending on your platform and on the version of Scapy you want to use. Follow the platform-specific instructions for more detail.
Scapy versionsпѓЃ
Installing Scapy v2.xпѓЃ
The following steps describe how to install (or update) Scapy itself. Dependent on your platform, some additional libraries might have to be installed to make it actually work. So please also have a look at the platform specific chapters on how to install those requirements.
The following steps apply to Unix-like operating systems (Linux, BSD, Mac OS X). For Windows, see the special chapter below.
Make sure you have Python installed before you go on.
Latest releaseпѓЃ
To get the latest versions, with bugfixes and new features, but maybe not as stable, see the development version.
In fact, since 2.4.3, Scapy comes in 3 bundles:
Scapy & IPython. Highly recommended
Scapy & all its main dependencies
Current development versionпѓЃ
If you always want the latest version with all new features and bugfixes, use Scapy’s Git repository:
Check out a clone of Scapy’s repository:
You can also download Scapy’s latest version in a zip file:
Install Scapy in the standard distutils way:
If you used Git, you can always update to the latest version afterwards:
You can run scapy without installing it using the run_scapy (unix) or run_scapy.bat (Windows) script or running it directly from the executable zip file (see the previous section).
Optional DependenciesпѓЃ
Plotting. plot() needs Matplotlib.
Matplotlib is installable via pip install matplotlib
2D graphics. psdump() and pdfdump() need PyX which in turn needs a LaTeX distribution: texlive (Unix) or MikTex (Windows).
Graphs. conversations() needs Graphviz and ImageMagick.
Graphviz and ImageMagick need to be installed separately, using your platform-specific package manager.
3D graphics. trace3D() needs VPython-Jupyter.
VPython-Jupyter is installable via pip install vpython
WEP decryption. unwep() needs cryptography. Example using a Weplap test file:
Cryptography is installable via pip install cryptography
PKI operations and TLS decryption. cryptography is also needed.
Fingerprinting. nmap_fp() needs Nmap. You need an old version (before v4.23) that still supports first generation fingerprinting.
VOIP. voip_play() needs SoX.
Platform-specific instructionsпѓЃ
As a general rule, you can toggle the libpcap integration on or off at any time, using:
Linux nativeпѓЃ
Scapy can run natively on Linux, without libpcap.
Make sure your kernel has Packet sockets selected ( CONFIG_PACKET )
If your kernel is CONFIG_FILTER )
Debian/Ubuntu/FedoraпѓЃ
Make sure tcpdump is installed:
Then install Scapy via pip or apt (bundled under python-scapy ) All dependencies may be installed either via the platform-specific installer, or via PyPI. See Optional Dependencies for more information.
Mac OS XпѓЃ
On Mac OS X, Scapy DOES work natively since the recent versions. However, you may want to make Scapy use libpcap. You can choose to install it using either Homebrew or MacPorts. They both work fine, yet Homebrew is used to run unit tests with Travis CI.
Libpcap might already be installed on your platform (for instance, if you have tcpdump). This is the case of OSX
Install using HomebrewпѓЃ
Enable it In Scapy:
Install using MacPortsпѓЃ
Enable it In Scapy:
OpenBSDпѓЃ
In a similar manner, to install Scapy on OpenBSD 5.9+, you may want to install libpcap, if you do not want to use the native extension:
Then install Scapy via pip or pkg_add (bundled under python-scapy ) All dependencies may be installed either via the platform-specific installer, or via PyPI. See Optional Dependencies for more information.
SunOS / SolarisпѓЃ
Solaris / SunOS requires libpcap (installed by default) to work.
WindowsпѓЃ
Section author: Dirk Loss
Scapy is primarily being developed for Unix-like systems and works best on those platforms. But the latest version of Scapy supports Windows out-of-the-box. So you can use nearly all of Scapy’s features on your Windows machine as well.
You need the following software in order to install Scapy on Windows:
Python: Python 2.7.X or 3.4+. After installation, add the Python installation directory and its Scripts subdirectory to your PATH. Depending on your Python version, the defaults would be C:\Python27 and C:\Python27\Scripts respectively.
Npcap: the latest version. Default values are recommended. Scapy will also work with Winpcap.
If really nothing seems to work, consider skipping the Windows version and using Scapy from a Linux Live CD – either in a virtual machine on your Windows host or by booting from CDROM: An older version of Scapy is already included in grml and BackTrack for example. While using the Live CD you can easily upgrade to the latest Scapy version by using the above installation methods.
ScreenshotпѓЃ
Known bugsпѓЃ
You may bump into the following bugs, which are platform-specific, if Scapy didn’t manage work around them automatically:
Packets sometimes cannot be sent to localhost (or local IP addresses on your own host).
Winpcap/Npcap conflictsпѓЃ
As Winpcap is becoming old, it’s recommended to use Npcap instead. Npcap is part of the Nmap project.
If you get the message ‘Winpcap is installed over Npcap.’ it means that you have installed both Winpcap and Npcap versions, which isn’t recommended.
You may first uninstall winpcap from your Program Files, then you will need to remove:
And if you are on an x64 machine:
To use Npcap instead, as those files are not removed by the Winpcap un-installer.
Build the documentation offlineпѓЃ
The Scapy project’s documentation is written using reStructuredText (files *.rst) and can be built using the Sphinx python library. The official online version is available on readthedocs.
HTML versionпѓЃ
The instructions to build the HTML version are:
You can now open the resulting HTML file _build/html/index.html in your favorite web browser.
To use the ReadTheDocs’ template, you will have to install the corresponding theme with:
UML diagramпѓЃ
Using pyreverse you can build a UML representation of the Scapy source code’s object hierarchy. Here is an example of how to build the inheritance graph for the Fields objects :
This will generate a classes_fields.png picture containing the inheritance hierarchy. Note that you can provide as many modules or packages as you want, but the result will quickly get unreadable.
To see the dependencies between the DHCP layer and the ansmachine module, you can run:
In this case, Pyreverse will also generate a packages_dhcp_ans.png showing the link between the different python modules provided.
Мощь Scapy
Scapy — инструмент создания и работы с сетевыми пакетами. Программа написана на языке python, автор Philippe Biondi. Познакомиться с основным функционалам можно здесь. Scapy — универсальный, поистине мощный инструмент для работы с сетью и проведения исследований в области информационной безопасности. В статье я попытаюсь заинтересовать Вас использовать scapy в своей работе/проектах. Думаю, что лучше всего этого можно добиться, показав на примерах основные преимущества scapy.
В качестве примеров я возьму простые и наглядные задачи, которые можно решить средствами scapy. Основным направлением будет формирование пакетов для реализации того или иного вида атак.
ARP-spoofing
Сформированный таким образом пакет «отравит» arp кэш targetIP. Одна из сильных черт scapy — наглядность, то есть Вам необходимо понимать, что Вы хотите сделать, конечно это может создать некоторые трудности, но зато поможет сформировать целостную картину и защитит от «выстрела в ногу». Например, взглянув на сформированный таким образом пакет, становится понятно, что ARP-spoofing не вылечить с помощью port security потому, что MAC адрес отправителя не меняется, в таком случае нас спасет только arp инспекция. Хотя, давайте попробуем реализовать защиту с использованием scapy. Предположим, что весь трафик коммутатора мы зеркалируем на порт, где у нас будет происходить анализ. Выявлять атаку предлагаю по принципу, если компьютер не отправлял arp запрос, то и arp ответа он получать не должен.
Скрипт отрабатывает заложенную логику и такие программы, как например «cain & abel» не смогут бесшумно провести ARP-spoofing. Но мы с Вами знаем, что есть особенности реализации arp в некоторых операционных системах, а именно если компьютеру приходит arp запрос с просьбой сообщить информацию о себе, он автоматически доверяет ему и заносит соответствие ip-mac отправителя к себе в таблицу. Т.е. следующий пакет так же «отравит» arp кэш.
В этом случае наш скрипт не будет эффективен. Получается, что работая со scapy Вы изучаете не только программу, но и сами протоколы, их логику.
VLAN Hooping
Следующим достоинством scapy, считаю — гибкость. Классическим примером(гибкости) является ситуация, когда нам необходимо произвести arp-spoofing в соседнем vlan, нам не придется писать новую программу, надо правильно собрать пакет.
К сожалению, даже в случае успешной реализации, мы получим одностороннюю связь и для организации MITM внутри соседнего vlan нам будет нужен «свой агент».
CAM Table Overflow
RandMAC() — функция возвращает произвольное значение, в формате MAC адреса; параметр loop — зацикливает отправку, что в итоге приводит к исчерпанию буфера таблицы коммутатора. Наверное, это пример простоты реализации некоторых атак.
Больше примеров
Далее я покажу примеры практически без описания, они просты и, возможно, некоторые из них послужат отправной точкой для использования scapy в Вашей работе. Например, исчерпание DHCP пула выглядит следующим образом.
HSRP spoofing
src mac – HSRP virtual MAC (возможный диапазон 00:00:0C:9F:F0:00 — 00:00:0C:9F:FF:FF); dst mac – IP v4 multicast MAC (возможный диапазон 01:00:5E:00:00:00 — 01:00:5E:00:00:FF); ip dst – ipv4 multicast address (224.0.0.0/24); priority – приоритет маршрута, значения от 0 до 255; inter=3 — в соответствии с интервалом по умолчанию на оборудовании cisco; все остальные настройки, аналогичны настройкам по умолчанию оборудования cisco. Такой пакет сделает attacerIP активным HSRP маршрутом.
Различные способы сканирование портов.
Посмотреть результат можно таким образом.
Или так.
Следующая положительная особенность scapy — возможность создавать протоколы самостоятельно.Протокол DTP не реализован в рамках штатного набора, зато его можно загрузить как модуль.
Опасность DTP состоит в том, что мы самостоятельно можем перевести порт коммутатора в режим trunk и получить расширенный доступ. Если взглянуть в исходники модуля, то увидим там функцию которая нам поможет включить режим trunk на интерфейсе.
Вместе с загрузкой протокола DTP, мы загружаем и функцию negotiate_trunk, можем её выполнить прямо из консоли интерпретатора и результат не заставит себя долго ждать.
802.11
Scapy может успешно работать с беспроводными сетями, в большинстве функционала способен заменить Aircrack-ng. Например, посмотреть список доступных сетей можно так.
Довольно просто, давайте что-нибудь посложнее. Предположим, что Вам поставлена задача не допустить работы беспроводных устройств на контролируемой территории. Каким образом это организовать, если не прибегать к радиочастотным глушителям? Одним из вариантов может являться подавление работы устройств пользователей. Организовать это можно путем отправки клиентам Deauth пакета.
Начинающие исследователи могут упростить подход к задачам фаззинга протоколов, в scapy реализован простейший функционал. Например, простейший фаззинг Beacon пакетов может выглядеть так.
Нагрузочное тестирование
Последним в списке примеров, но далеко не последним по значению, у меня будет использование scapy для проведения нагрузочного тестирования на каналы связи. Я в этом вопросе не специалист и возможно объём генерируемого трафика не самый важный параметр, но все же. В scapy это делается просто, как и многое другое.
По выполнению команды, должен появится подобный результат.
На стороне приема трафика замер wireshark’ом подтверждает цифры отправителя.
Итоги
Итак, перечислим достоинства.
1) Наглядность (понимание того, что будет происходить)
2) Гибкость (пакеты можно собирать как угодно)
3) Расширяемость (создание собственных протоколов)
4) Python
Надеюсь, мне удалось достичь поставленных целей и в случае необходимости Вы вспомните о существовании такого инструмента, как scapy. Если будет интерес к статье, я постараюсь написать(перевести и адаптировать) материал по созданию собственных протоколов в scapy.
Русские Блоги
Модуль scapy в Python
Каталог статей
Введение в модуль
По сравнению с Nmap, модуль Scapy покажет вам только полученный пакет данных и не скажет вам, что этот пакет означает.
Например, когда вы пойдете в больницу, чтобы проверить свое тело, в больнице вам выдадут результаты проверки по различным показателям вашего тела, а врач также скажет вам, какое у вас заболевание или нет. Тогда Nmap похож на врача, он сделает это за вас и предоставит вам результаты на основе своего опыта. Scapy похож на прибор для физического осмотра. Он расскажет вам только результаты различных обследований. Если вы опытный врач, очевидно, что результаты обследования заслуживают большего внимания, чем предложения ваших коллег.
Основное использование
Scapy уже интегрирован в Kali, и мы можем запустить его, набрав Scapy в терминале.
Scapy предоставляет ту же интерактивную командную строку, что и Python. Мне нужно поговорить об этом здесь. Я выполню следующие примеры в этой командной строке.
Основные операции Scapy
Наиболее важными атрибутами пакета данных IP являются адрес источника и адрес назначения. Эти два атрибута можно установить с помощью src и dst. Например, вы можете написать это для создания пакета данных, отправленного на адрес «192.168.1.107».
Как показано на рисунке после исполнения.
Если вы хотите создать пакет HTTP, вы также можете использовать следующий метод.
В настоящее время Scapy использует наиболее часто используемые категорииEther, IP, TCP и UDP, Но какие атрибуты у этих классов? Очевидно, что в классе Ether требуются исходный адрес, адрес назначения и тип. Атрибуты класса IP намного сложнее: помимо наиболее важных адресов источника и назначения, существуют также версия, длина, тип протокола, контрольная сумма и т. Д. Класс TCP требует порта источника и порта назначения. Здесь можно использоватьls() Функция, чтобы узнать, какие свойства имеет класс.
Например, используйте ls (Ether ()) для просмотра свойств класса Ether.
Вы также можете посмотреть атрибуты в классе IP ().
Вы можете установить соответствующие атрибуты внутри, например, чтобы установить значение ttl равным 32, вы можете использовать следующие методы.
Функции в модуле Scapy
В дополнение к этим соответствующим классам протоколов и их атрибутам также необходимы некоторые функции, которые могут выполнять различные функции. Следует отметить, что функция IP (), используемая только что, заключается в создании пакета данных IP, но он не отправлял его. Поэтому теперь первое, на что нужно обратить внимание, это как отправить сгенерированный пакет. Scapy предоставляет Несколько функций используются для завершения отправки пакетов данных, давайте сначала рассмотрим одну из них.send()с участиемsendp(). Разница между этими двумя функциями в том, что send () работает на третьем уровне, а sendp () работает на втором уровне. Проще говоря, send () используется для отправки IP-пакетов, а sendp () используется для отправки пакетов Ether.
Например, чтобы создать пакет ICMP с адресом назначения «192.168.1.107» и отправить его, можно использовать следующее предложение.
Результаты. В случае успеха появится экран «Отправлено 1 пакетов».
Результаты.
Примечание: эти две функции только отправляются, но не принимаются
Если вы хотите отправить пакет данных, содержимое которого заполняется случайным образом, и вы хотите убедиться в правильности этого пакета данных, то его можнофункция fuzz (). Например, вы можете использовать следующую команду для создания TCP-пакета, отправляемого на 192.168.1.107.
Результаты.
предоставляет три функции для отправки и получения пакетов данных в Scapy: ** sr (), sr1 () и srp () **, где sr () и sr1 ( ) Работает на третьем уровне, например, IP и ARP, а srp () работает на втором уровне.
Здесь мы по-прежнему отправляем пакет ICMP на адрес 192.168.1.107, чтобы сравнить разницу между sr () и send ().
Функция sr1 () в основном такая же, как функция sr (), но значение возвращает пакет ответа. Только нужно использовать список, чтобы сохранить возвращаемое значение этой функции. Например, используйте p, чтобы сохранить возвращаемое значение sr1 (IP (dst = «192.168.1.107») / ICMP ()).
Вы можете использовать функцию sr1 (), чтобы проверить, открыт ли определенный порт цели, используя метод полуоткрытого сканирования (SYN).
Результат выполнения показан на рисунке.
Из значения p выше видно, что 192.168.1.107 ответил TCP-пакетом с установленным битом флага SYN, что указывает на открытие порта 80.
Здесь есть небольшая ловушка, то есть он не может отвечать в реальном времени, вы должны перестать обнюхивать его, чтобы повторить пакеты, которые он обнюхал.
Сила этой функции заключается в том, что вы можете использовать фильтр сладкого картофеля для фильтрации пакетов данных. Например, чтобы указать захват пакетов данных, относящихся к 192.168.1.107, вы можете использовать «host 192.168.1.107»:
Точно так же вы также можете использовать фильтр для фильтрации указанного протокола, например пакетов данных типа ICMP.
Если вы хотите выполнить несколько условий одновременно, вы можете использовать реляционные операторы, такие как «и» и «или», чтобы выразить:
Два других очень важных параметра:iface、count. iface можно использовать для указания отслеживаемой сетевой карты, например, чтобы указать eth0 в качестве сетевой карты мониторинга, вы можете использовать:
Счетчик используется для указания количества отслеживаемых пакетов, и мониторинг остановится, когда будет достигнуто указанное количество. Например, отслеживаются только 30 пакетов:
Теперь разработайте комплексный приемник, который будет прослушивать пакеты ICMP с адресом источника или назначения 192.168.1.107 на сетевой карте eth0 и останавливаться, когда он получит три таких пакета:
результат операции: Если вы хотите просмотреть содержимое этих трех пакетов, вы можете использовать «_». В Scapy этот символ указывает результат выполнения предыдущего оператора. Например:
результат операции: Только что использованная функция pkt.summary () используется для отображения содержимого pkt в форме сводки, длина сводки составляет одну строку.
результат операции: Примечание. Функция pkt.summary такая же, как и у pkt.nsummary (), за исключением того, что объект операции представляет собой отдельный пакет данных.
Общие простые примеры модулей Scapy
Поскольку scapy чрезвычайно мощный, он может создавать пакеты данных различных распространенных типов протоколов, поэтому вы можете использовать этот модуль для выполнения практически любых задач.Давайте взглянем на некоторые простые приложения.
Используйте scapy для реализации сканирования портов типа ACK, чтобы проверить, заблокированы ли порты 21, 22, 23, 135, 443, 445 из 192.168.1.107,Учтите, что он экранирован, а не закрыт! Используя режим сканирования ACK, вы можете создать следующий командный режим.
результат операции:
Обычно, если открытый порт отвечает пакетом ACK, а закрытый, он отвечает пакетом RST. В сети некоторые устройства безопасности будут фильтровать некоторые порты. Эти порты не будут отвечать на пакеты данных извне. Все пакеты данных, отправленные на эти порты, разваливаются. Состояние этих портов не открыто и не закрыто. Это обычно используется в управлении сетевой безопасностью. метод.
Сначала проверьте нефильтрованные порты:
результат операции:
Напишите сканер портов
Затем сгенерируйте SYN-пакет с адресом «192.168.1.107» на порту 80 и установите для этого флага значение «S»:
результат операции:
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Как установить все устройства для этичного хакинга в Kali Linux
Что такое Kali?
Kali Linux является одним из лучших инструментов для проверки вашей системы на защищенность и очень знаменитым инструментом для этичного хакинга. И мало того, что уже после установки в нем доступно огромное количество инструментов, так еще есть и большое сообщество людей, которые постоянно развивают экосистему этого проекта. У нас до этого была небольшая статья, где мы подробно разбирали что такое пентестинг и зачем он делается.
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
В 2015 году Kali начали двигаться в сторону Agile подхода, для того, чтобы компоненты операционной системы и приложения обновлялись гораздо чаще и имели меньшее число зависимостей, и старый тип перестал поддерживаться 15 апреля 2016 года.
Если вы любите тестировать свои системы и приложения на проникновения, то частый ритм обновлений инструментов для взлома вам подойдет лучше всего: сейчас в Kali находятся самые последние версии таких знаменитых инструментов как Metasploit, Kismet и aircrack-ng. Кроме того, сам Debian Linux, на котором Kali всегда базировался тоже будет обновляться гораздо чаще.
Нужно больше инструментов
Не все знают, что когда вы скачиваете ISO файл для установки Kali Linux, вы получаете далеко не весь доступный инструментарий для тестирования на проникновение – разработчики пытаются найти золотую середину между необходимым набором приложений и постоянно увеличивающимся размером образа. Кроме того, есть такие вещи как инструменты для брутфорса с аппаратным графическим ускорением – они будут работать только на определенных конфигурациях компьютеров, поэтому совершенно точно их не имеет смысла добавлять в образ системы, который скачивают большинство людей.
Но хорошей новостью является то, что получить весь набор инструментов – совершенно тривиальная задача. Чтобы этого добиться, нужно совершить ряд примитивных шагов.
Сначала необходимо открыть терминал и проверить, что вы находитесь в системе, используя права суперпользователя. Для этого введите команду su или просто введите sudo перед командой apt-get update для обновления всех имеющихся пакетов.
Но, конечно, есть и обратная сторона медали – ваш Kali Linux начнет занимать гораздо больше места чем прежде, как минимум на 5 Гб больше. Это может быть важным, если вы установили Kali на что-то вроде Raspberry Pi с небольшой картой памяти.
Хотелось бы напомнить, что не стоит использоваться Kali Linux для совершения различных «темных» дел – это совершенно неэтично и в РФ уголовно наказуемо. Правда, не надо – лучше побалуйтесь на своих виртуалках, поймите, где могут находится типичные дыры, которые присущи большинству информационных систем и избавьтесь от них в своей организации – так будет спокойнее спать ночью и снизится шанс того, что ваши данные или данные вашей организации будут в сохранности. Надеемся, статья была вам полезна.
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии