В данной статье представлен краткий гайд по установке и применению ettercap.
Дисклеймер: Информация, представленная в данной статье, предназначена исключительно для образовательных целей и использования в рамках легальных тестов на проникновение.
Ettercap — это многофункциональный фреймворк для тестирования безопасности локальных сетей. Он предназначен для выполнения MITM атак , перехвата трафика, анализа протоколов и внедрения данных в сетевой поток.
Содержание
Установка и настройка
Установка на Linux
sudo apt-get install ettercap-gtk ettercap-common
Пакет ettercap-gtk включает графический интерфейс, а ettercap-common — общие файлы и плагины.
Установка на других ОС
Для macOS и Windows загрузите исходный код или бинарные файлы с официального сайта. Для компиляции из исходников могут потребоваться зависимости, такие как libpcap, libnet и cmake.
Для некоторых функций требуется дополнительная настройка через файлы конфигурации.
В статье будет рассмотрена версия ettercap для KaliLinux.
Интерфейс программы
Ettercap поддерживает четыре типа интерфейсов:
Текстовый (-T): Подходит для скриптов и автоматизации.
Curses (-C): Консольный интерфейс с меню.
Графический (-G): Удобный для начинающих, использует GTK.
Демонизированный (-D): Для фонового выполнения без интерфейса.
MITM-атака
Настройка
Запустите графический интерфейс ettercap:
sudo -E ettercap -G
Запустите сканирование хостов (кнопка Scan for hosts).
Откройте перечень найденных устройств (кнопка Hosts list). (Target 1, обычно роутер) и (Target 2, жертва). Укажите цели соответствующими кнопками.
В меню выберите MITM → ARP poisoning → Sniff remote connections → OK. Запустите атаку кнопкой Start sniffing.
-
В меню View → Connections откройте вкладку мониторинга соединений.
Если нужно фильтровать или подменять трафик, используйте плагины : Plugins → Manage plugins. Например, активируйте dns_spoof для подмены DNS или sslstrip для даунгрейда HTTPS в HTTP (требует дополнительной настройки).
Для остановки атаки Mitm → Stop mitm attack(s).
Диссекция протоколов
Диссекция протоколов -процесс активного или пассивного анализа сетевых пакетов, при котором инструмент разбирает трафик на уровне различных протоколов или простыми словами анализ сетевого трафика.
Просмотр сетевого трафика в графическом режиме
Настройте Ettercap для MITM-атаки (аналогично предыдущей главе)
-
Для просмотра и анализа трафика откройте view → connections.
Для примера с ПК жертвы я обратился к python серверу.
В консольном режиме (с созданием файла с логами)
-
Для запуска используйте команду
sudo ettercap -T -q -L log -i eth0
-T: Текстовый режим.
-q: Тихий режим (меньше вывода).
-i eth0: Интерфейс.
-L log: Файл логирования (в данном случае log)
Для просмотра логов используйте команду
etterlog -p log.ecp
Фильтры (подмена трафика на лету)
Одним из самых мощных инструментов в арсенале Ettercap является возможность фильтрации и модификации сетевого трафика в режиме реального времени. Фильтры в Ettercap представляют собой текстовые файлы с расширением .ecf (Ettercap Compiled Filter), содержащие код на специализированном скриптовом языке, синтаксис которого напоминает C. Прежде чем фильтр можно будет использовать, его необходимо скомпилировать в бинарный формат .ef с помощью утилиты etterfilter
.
Процесс создания и применения фильтра
Работа с фильтрами Ettercap включает в себя три основных этапа:
Написание кода фильтра: Создание текстового файла с расширением .ecf, в котором описывается логика обработки пакетов.
Компиляция фильтра: Преобразование .ecf файла в бинарный формат .ef с помощью утилиты etterfilter.
Загрузка и запуск фильтра: Активация скомпилированного фильтра в Ettercap во время проведения MitM-атаки.
Базовый синтаксис:
Условные операторы: В основном используется конструкция if (условие) {...}.Условия могут объединяться логическими операторами && (И) и || (ИЛИ).
Доступ к данным пакета: Для анализа содержимого пакета используются предопределенные переменные, такие как ip.proto (протокол IP-уровня), tcp.src (TCP-порт источника), tcp.dst (TCP-порт назначения) и DATA.data (содержимое пакета).
-
Основные функции:
search(где, что): Ищет определенную строку или последовательность байт в данных пакета.
replace(что, на_что): Заменяет найденную последовательность на другую.
msg(сообщение): Выводит сообщение в консоль Ettercap, что полезно для отладки.
drop(): Помечает пакет на удаление, он не будет перенаправлен адресату.
kill(): Разрывает соединение, которому принадлежит пакет.
Пример: Простой фильтр для замены текста на странице ( РАБОТАЕТ ТОЛЬКО ПО HTTP )
Создадим фильтр replace_text.ecf, который будет заменять все вхождения слова "Google" на "Hacked" в HTTP-трафике.
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding", "Accept-Rubbish!");
}
}
if (ip.proto == TCP && tcp.src == 80) {
replace("Google", "Hacked");
msg("Filter Ran.\n");
}
Первый блок if отключает сжатие данных (gzip), чтобы мы могли работать с незашифрованным HTML-кодом. Второй блок if ищет и заменяет текст в ответах от сервера (трафик, идущий с 80-го порта).
Далее необходимо скомпилировать файл для этого используется команда:
etterfilter replace_text.ecf -o replace_text.ef
Запуск фильтра
-
Из консоли
sudo ettercap -T -M arp:remote -F ./replace_text.ef /IP-адрес-цели/ /IP-адрес-шлюза/
-T: Запуск в текстовом режиме.
-M arp:remote: Выбор ARP poisoning в качестве метода MitM-атаки.
-F ./replace_text.ef: Загрузка нашего скомпилированного фильтра.
-
Загрузка через графический интерфейс:
Запустите Ettercap с правами суперпользователя (sudo ettercap -G).
Настройте и запустите сканирование сети и MitM-атаку.
В меню выберите Filters → Load a filter ...
Укажите путь к вашему .ef файлу.
После загрузки фильтр начнет немедленно обрабатывать трафик, соответствующий заданным в нем условиям.
Плагины
Ettercap обладает модульной архитектурой, которая позволяет значительно расширять его стандартные возможности с помощью плагинов. Эти плагины представляют собой специализированные скрипты и модули, предназначенные для выполнения конкретных задач — от пассивного сбора информации до активных атак на сетевую инфраструктуру.
Управление плагинами
Работа с плагинами в Ettercap может осуществляться как через графический интерфейс, так и через командную строку, что обеспечивает гибкость в различных сценариях использования.
Управление через консоль
1. Получение списка доступных плагинов:
sudo ettercap -P list
2. Активация плагина:
sudo ettercap -T -M arp:remote -P dns_spoof /IP-адрес-цели/ /IP-адрес-шлюза/
Управление через графический интерфейс
В графическом режиме, после запуска MitM-атаки, плагины можно активировать через меню Plugins → Manage the plugins. В открывшемся окне достаточно дважды кликнуть по названию нужного плагина, чтобы запустить его. Активные плагины будут отмечены звездочкой [*].
Плагин |
Описание |
|
|
arp_cop |
Отслеживает подозрительную ARP-активность. |
autoadd |
Автоматически добавляет новые жертвы в атаку ARP-отравления. |
chk_poison |
Проверяет успешность ARP-отравления с помощью ICMP-пакетов. |
dns_spoof |
Подменяет DNS-запросы, используя файл etter.dns. |
mdns_spoof |
Подменяет mDNS-запросы на UDP-порту 5353. |
dos_attack |
Выполняет DoS-атаку, засылая SYN-пакеты на открытые порты. |
dummy |
Шаблон для создания собственных плагинов. |
find_conn |
Отслеживает ARP-запросы для определения целей связи. |
find_ettercap |
Обнаруживает пакеты Ettercap в сети. |
find_ip |
Находит первый свободный IP в диапазоне. |
finger |
Пассивное определение ОС удаленного хоста. |
finger_submit |
Отправляет неизвестные отпечатки ОС на сайт Ettercap. |
fraggle_attack |
Отправляет UDP-пакеты с поддельным IP-адресом. |
gre_relay |
Перехватывает GRE-трафик, требует поддельного IP хоста. |
gw_discover |
Обнаруживает шлюз, отправляя TCP SYN-пакеты. |
isolate |
Изолирует хост от сети, подменяя ARP-кэш. |
krb5_downgrade |
Понижает уровень безопасности Kerberos V5. |
link_type |
Проверяет тип соединения (хаб/свитч). |
pptp_chapms1 |
Заставляет PPTP использовать MS-CHAPv1. |
pptp_clear |
Отключает сжатие/шифрование в PPTP-туннелях. |
pptp_pap |
Заставляет PPTP использовать PAP-аутентификацию (в открытом виде). |
pptp_reneg |
Заставляет PPTP пересогласовать туннель. |
rand_flood |
Засыпает сеть случайными MAC-адресами. |
remote_browser |
Отправляет перехваченные HTTP-URL в браузер. |
reply_arp |
Отвечает на ARP-запросы с MAC-адресом атакующего. |
repoison_arp |
Повторно отравляет ARP-кэш после широковещательных запросов. |
scan_poisoner |
Проверяет наличие отравления между хостами. |
search_promisc |
Обнаруживает хосты в режиме promiscuous. |
smb_clear |
Заставляет SMB использовать пароли в открытом виде. |
smb_down |
Отключает NTLM2 в SMB-аутентификации. |
smurf_attack |
DoS-атака с использованием ICMP-пакетов. |
sslstrip |
Подменяет SSL-сертификаты фальшивыми. |
stp_mangler |
Подменяет BPDU, притворяясь корневым коммутатором. |
DNS spoof
Плагин dns_spoof является одним из самых мощных инструментов в Ettercap для проведения атак типа "человек посередине" (Man-in-the-Middle). Он позволяет перехватывать DNS-запросы от целевых устройств и отправлять им поддельные ответы, эффективно перенаправляя их трафик с легитимных сайтов на IP-адрес, контролируемый злоумышленником.
Прежде чем запускать атаку, необходимо настроить файл etter.dns, в котором хранятся правила для подмены DNS-записей.
sudo nano /etc/ettercap/etter.dns
Формат: имя_домена ТИП_ЗАПИСИ IP-адрес (например: vk.com A 192.168.1.100)
Также для корректной работы необходимо изменить файл etter.conf так как показано на рисунке ниже:
это позволит сервису программы работать от имени суперпользователя.
После первичной настройки можно запустить атаку:
sudo ettercap -T -M arp:remote -P dns_spoof /IP_жертвы/ /IP_шлюза/
либо через графический интерфейс:
запустите MITM-атаку и выберите ПК-жертвы и Шлюз.
В меню управления плагинами запустите плагин dns_spoof.
После запуска проверьте на ПК жертвы работу плагина (При обращении к ресурсу vk.com жертва будет переброшена на указанный нами адрес).
Дополнительные ресурсы
Мы рассмотрели лишь малую часть арсенала Ettercap — фильтры для модификации трафика и плагины для расширения функционала. Вооружившись этими знаниями, вы можете превратить Ettercap из простого сниффера в гибкий инструмент для глубокого анализа и тестирования безопасности сети.
Однако возможности этой программы простираются гораздо дальше. Мы не затронули такие темы, как работа с SSL-трафиком, атаки на специфические протоколы и многие другие тонкости.