В данной статье представлен краткий гайд по установке и применению 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-трафиком, атаки на специфические протоколы и многие другие тонкости.