Man in the middle скачать программу. Выявление атаки человек-посередине (Man in the middle, MitM-атак)

Атака человек-посередине — это обобщённое название для различных методик, направленных на получение доступа к трафику в качестве посредника. Из-за большого разнообразия этих методик, проблематично реализовать единый инструмент выявления этих атак, который бы работал для всех возможных ситуаций. Например, при атаке человек-посередине в локальной сети, обычно используется ARP-спуфинг (травление). И многие инструменты по «выявлению атаки человек-посередине» следят за изменением пар адресов Ethernet / или сообщают о подозрительной ARP-активности пассивным мониторингом ARP запросов/ответов. Но если эта атака используется на злонамеренно настроенном прокси-сервере, VPN, либо при других вариантах, когда не используется ARP-травление, то такие инструменты оказываются беспомощными.

Цель этого раздела — рассмотреть некоторые методики выявления атак человек-посередине, а также некоторые инструменты, предназначенные для определения, что в отношении вас осуществляется MitM-атака. Из-за разнообразия методик и сценариев реализации, невозможно гарантировать 100-процентное выявление.

1. Выявление модификации трафика

Как уже было сказано, при атаках человек-посередине не всегда используется ARP-спуфинг. Поэтому хотя обнаружение активности на уровне ARP является самым популярным способом выявления, более универсальным способом является обнаружение модификации трафика. В этом нам может помочь программа mitmcanary .

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

Примеры, как могут «наследить» некоторые инструменты:

  • MITMf , по умолчанию меняет все HTTPS URL в HTMLкоде на HTTP. Выявляется по сравнению содержимого HTTP.
  • Zarp + MITMProxy , MITMProxy имеет функционал, позволяющий очищать HTTP сжатие, это применяется для прозрачности передаваемого трафика, эта связка выявляется по исчезновению ранее присутствующего сжатия
  • Responder , выявляется по внезапным изменениям в преобразовании ответов mDNS: неожиданный ответ; ответ является внутренним, а ожидается внешний; ответ отличен от ожидаемого IP
  • MITMCanary vs MITMf:

  • MITMCanary vs Responder:

  • MITMCanary vs Zarp + MITMProxy:

Sudo pip install Cython sudo apt-get install python-kivy python-dbus sudo pip install plyer uuid urlopen analysis request simplejson datetime git clone https://github.com/CylanceSPEAR/mitmcanary.git cd mitmcanary/

Как уже было сказано, работу mitmcanary нужно начать с контрольных запросов. Для этого перейдите в каталог

Cd service/

И запустите файл setup_test_persistence.py :

Python2 setup_test_persistence.py

Это займёт некоторое время — дождитесь окончания. Не должны выводиться сообщения об ошибках (если так, то у вас не хватает каких-то зависимостей).

Будет выведено что-то вроде этого:

[email protected]:~/bin/mitmcanary/service$ python2 setup_test_persistence.py Older configuration version detected (0 instead of 14) Upgrading configuration in progress. Purge log fired. Analysing... Purge finished! Record log in /home/mial/.kivy/logs/kivy_16-11-01_0.txt v1.9.1 v2.7.12+ (default, Sep 1 2016, 20:27:38)

После окончания этого процесса, в этой же директории выполните (это запустит фоновый процесс):

Python2 main.py

После этого откройте новое окно терминала и перейдите в коневую директорию с mitmcanary. У меня это директория bin/mitmcanary/, поэтому я ввожу

Cd bin/mitmcanary/

и выполните там:

Python2 main.py

В первом окне выводиться что-то вроде:

[email protected]:~/bin/mitmcanary/service$ python2 main.py Record log in /home/mial/.kivy/logs/kivy_16-11-01_1.txt v1.9.1 v2.7.12+ (default, Sep 1 2016, 20:27:38) using for socket listening for Tuio on 127.0.0.1:3000 Sleeping for 60 seconds Sleeping for 60 seconds Sleeping for 60 seconds Sleeping for 60 seconds Sleeping for 60 seconds Sleeping for 60 seconds

Т.е. программа раз в минуту делает контрольные запросы и ищет в них признаки атаки человек-посередине.

Во втором окне также присутствует вывод + открывается тёмное окно, авторы программы называют это окно «графическим интерфейсом»:

Можно подождать некоторое время, посёрфить по Интернету, чтобы убедиться, что программа не делает никаких ложных предупреждений.

Попробуем классическую программу Ettercap .

Я запускаю обычную MitM-атаку с ARP-спуфингом. На само травление mitmcanary не реагирует. Инструмент mitmcanary сам генерирует трафик, т. е. действий со стороны пользователя не требуется. Спустя некоторое время появляется одно единственное предупреждение, которое при последующих ближайших проверках не подтверждается. Но подобное же предупреждение появляется через несколько минут. Без дополнительного анализа я затрудняюсь сказать, является ли это примером ложного срабатывания — очень похоже на это. Вполне возможно, что это предупреждение вызвано нарушением связи, обусловленное необходимостью прохождения трафиком дополнительных маршрутов, либо особенностями моего некачественного Интернет-подключения.

Поскольку результат неочевиден (скорее «нет», чем «да»), то давайте попробуем программу Bettercap , которая имеет разнообразные модули. Не сомневаюсь, что при использовании различных плагинов Ettercap и/или дополнительных программ для расширения функциональности, мы бы также «засветились» для mitmcanary.

Для чистоты эксперимента я перезапускаю оборудование, запускаю mitmcanary на атакуемой машине и Bettercap на атакующей. При этом на атакуемой машине необязательно заново делать контрольные запросы — они сохраняются в файле внутри директории с программой. Т.е. достаточно запустить службу и графический интерфейс.

А в атакующей машине мы запустим Bettercap с включёнными парсерами:

Sudo bettercap -X

Появляются отдельные предупреждения, которые также больше похожи на ложные срабатывания.

Зато запуск такой команды:

Sudo bettercap -X --proxy

На атакуемой машине вызывает большое количество предупреждений о возможной атаке человек-посередине:

Итак, чем функциональней инструмент для атаки человек-посередине, тем больше следов он оставляет в трафике. Для практического использования mitmcanary необходимо соблюсти следующие условия:

  • делать первоначальные запросы в доверенной сети, когда вы уверены, что посредник при передаче трафика отсутствует;
  • отредактировать ресурсы, к которым делаются проверочные запросы, поскольку профессиональный злоумышленник может добавить дефолтные ресурсы в исключения, что сделает его невидимым для этого инструмента.

2. Выявление ARP-спуфинга (травления кэша ARP)

Очень часто атака человек-посередине в локальной сети начинается с ARP травления. Именно поэтому в основе многих инструментов, предназначенных для выявления MitM-атак, лежит механизм слежения за изменением ARP кэша, в котором приписаны соответствия между Ethernet (MAC-адресами) и IP адресами.

В качестве примера таких программ можно вспомнить arpwatch , arpalert и большое количество новых программ. Программа ArpON не только следит за изменениями ARP кэша, но и защищает его от них.

В качестве примера запустим arpwatch в режиме отладки, без создания форков в фоне и отправки сообщений по почте. Вместо этого сообщения отправляются в stderr (стандартный вывод ошибок).

Sudo /usr/sbin/arpwatch -d

На атакующей машине запустим Ettercap и начнём ARP-спуфинг. На атакуемой машине наблюдаем:

Программа arpwatch поможет быстро узнать о новых подключившихся устройствах в вашу локальную сеть, а также об изменениях ARP кэша.

Ещё один инструмент для выявления ARP спуфинга в реальном времени, это плагин самой Ettercap , который называется arp_cop . На атакуемой машине запустим Ettercap следующим образом:

Sudo ettercap -TQP arp_cop ///

А на атакующей начнём ARP-травление. На атакуемой машине сразу начинают выводиться предупреждения:

3. Выявление DNS спуфинга

DNS спуфинг свидетельствует, что между вами и пунктом назначения присутствует посредник, который может модифицировать ваш трафик. Как можно обнаружить, что DNS записи были подменены? Самый простой способ это сделать — сравнить с ответами сервера имён, которому вы доверяете. Но ведь записи в ответе, присланный на ваш запрос, также могут быть подменены…

Т.е. проверять нужно либо через зашифрованный канал (например, через Tor), либо использовать нестандартные настройки (другой порт, TCP вместо UDP). Примерно для этого предназначена программа sans от XiaoxiaoPu (по крайней мере, я так понял). У меня получилось с помощью этой программы перенаправлять DNS запросы через Tor и через нестандартные настройки на свой DNS сервер. Но я так и не смог от неё добиться, чтобы она показывала мне сообщения о спуфинге DNS ответов. А без этого смысл программы теряется.

Более достойных альтернатив мне найти не удалось.

В принципе, учитывая, что DNS спуферы, обычно, следят только за 53 портом, и только за протоколом UDP, то даже вручную достаточно просто проверить факт DNS спуфинга, правда для этого нужен свой собственный DNS сервер с нестандартной конфигурацией. Например, на атакующей машине я создал файл dns.conf со следующим содержанием:

Local mi-al.ru

Т.е. при запросе DNS записи для сайта mi-al.ru вместо реального IP будет присылаться IP машины злоумышленника.

Запускаю на атакующей машине:

Sudo bettercap --dns dns.conf

А на атакуемой делаю две проверки:

Dig mi-al.ru # и dig mi-al.ru -p 4560 @185.117.153.79

Результаты:

[email protected]:~$ dig mi-al.ru ; <<>> DiG 9.10.3-P4-Debian <<>> mi-al.ru ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51993 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 86400 IN A 192.168.1.48 ;; Query time: 2 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Wed Nov 02 09:25:20 MSK 2016 ;; MSG SIZE rcvd: 42 [email protected]:~$ dig mi-al.ru -p 4560 @185.117.153.79 ; <<>> DiG 9.10.3-P4-Debian <<>> mi-al.ru -p 4560 @185.117.153.79 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 401 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 3799 IN A 185.26.122.50 ;; Query time: 304 msec ;; SERVER: 185.117.153.79#4560(185.117.153.79) ;; WHEN: Wed Nov 02 09:25:27 MSK 2016 ;; MSG SIZE rcvd: 53

Видно, что для «обычного» DNS запроса прислан локальный IP 192.168.1.48, а при запросе к DNS на нетипичном порту присылается верный IP сервера.

Если бы сервер был настроен для работы с протоколом TCP (а не UDP), тогда команда выглядела бы так:

Dig mi-al.ru -p 4560 +tcp @185.117.153.79

Явно не хватает инструмента, который сам бы отслеживал DNS ответы в трафике, перепроверял бы их по альтернативному источнику и поднимал тревогу в случае спуфинга.

Чтобы обойтись без настройки своего собственного удалённого DNS, можно сделать запросы к серверу имён через Tor. Поскольку весь трафик Tor шифруется, то полученные таким образом DNS ответы не по зубам посреднику. Если Tor ещё не установлен, то установите его.

Sudo apt-get install tor

Sudo pacman -S tor

Запустите службу:

Sudo systemctl start tor

Если это вам нужно, добавьте эту службу в автозагрузку:

Sudo systemctl enable tor

Откройте файл /etc/tor/torrc и добавьте туда следующие строки:

DNSPort 530 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit,.onion

Обратите внимание на цифру 530. Это номер порта, вместо 530 можно указать любой другой (незанятый) порт. Главное, запомните его.

Опять делаем проверки:

Dig mi-al.ru # и dig mi-al.ru -p 530 @localhost

Теперь в качестве сервера мы указываем localhost , а номер порта пишите тот, который указали в настройках /etc/tor/torrc.

Как видно из следующего скриншота, в отношении машины, на которой сделана проверка, осуществляется атака DNS спуфинг:

4. Поиск сетевых интерфейсов в неразборчивом режиме (promiscuous mode)

Если в вашей локальной сети есть (а особенно если внезапно появилось) оборудование в неразборчивом режиме , это очень подозрительно, хотя и не свидетельствует однозначно об атаке человек-посередине.

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

В нормальном состоянии на Ethernet-интерфейсе используется фильтрация пакетов канального уровня и если MAC-адрес в заголовке назначения принятого пакета не совпадает с MAC-адресом текущего сетевого интерфейса и не является широковещательным, то пакет отбрасывается. В «неразборчивом» режиме фильтрация на сетевом интерфейсе отключается и все пакеты, включая непредназначенные текущему узлу, пропускаются в систему.

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

Для поиска сетевых интерфейсов в неразборчивом режиме имеется плагин Ettercap , который называется search_promisc .

Пример запуска плагина:

Sudo ettercap -TQP search_promisc ///

Работа плагина не является полностью надёжной, могут иметь место ошибки в определении режима сетевого интерфейса.

Заключение

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

При котором взломщик, подключившись к каналу между контрагентами, осуществляет вмешательство в протокол передачи, удаляя или искажая информацию.

Энциклопедичный YouTube

    1 / 3

    ✪ №4 КАК СТАТЬ ХАКЕРОМ? «Атака Посредника»! |ХАКИНГ от А до Я|

    ✪ MiTM-нападение на iOS. Техника и последствия

    ✪ Биткоин Хронология Хакерских Атак и Взломов Бирж на Криптовалютном Рынке (2012 - 2018)

    Субтитры

Принцип атаки

Атака обычно начинается с прослушивания канала связи и заканчивается тем, что криптоаналитик пытается подменить перехваченное сообщение, извлечь из него полезную информацию, перенаправить его на какой-нибудь внешний ресурс.

Предположим, объект A планирует передать объекту B некую информацию. Объект C обладает знаниями о структуре и свойствах используемого метода передачи данных, а также о факте планируемой передачи собственно информации, которую С планирует перехватить. Для совершения атаки С «представляется» объекту А как В, а объекту В - как А. Объект А, ошибочно полагая, что он направляет информацию В, посылает её объекту С. Объект С, получив информацию, и совершив с ней некоторые действия (например, скопировав или модифицировав в своих целях) пересылает данные собственно получателю - В; объект В, в свою очередь, считает, что информация была получена им напрямую от А.

Пример атаки

Внедрение вредоносного кода

Атака «человек посередине» позволяет криптоаналитику вставлять свой код в электронные письма, SQL-выражения и веб-страницы (то есть позволяет осуществлять SQL-инъекции , HTML/script-инъекции или XSS-атаки), и даже модифицировать загружаемые пользователем бинарные файлы для того, чтобы получить доступ к учетной записи пользователя или изменить поведение программы, загруженной пользователем из интернета.

Downgrade Attack

Термином «Downgrade Attack» называют такую атаку, при которой криптоаналитик вынуждает пользователя использовать менее безопасные функции, протоколы, которые всё ещё поддерживаются из соображений совместимости. Такой вид атаки может быть проведён на протоколы SSH , IPsec и PPTP .

Для защиты от Downgrade Attack небезопасные протоколы должны быть отключены как минимум на одной стороне; просто поддержки и использования по умолчанию безопасных протоколов недостаточно!

SSH V1 вместо SSH V2

Атакующий может попытаться изменить параметры соединения между сервером и клиентом при установлении между ними соединения. Согласно докладу, сделанному на конференции Blackhat Conference Europe 2003, криптоаналитик может «заставить» клиента начать сессию SSH1 , вместо SSH2 изменив номер версии «1.99» для SSH-сессии на «1.51», что означает использование SSH V1. Протокол SSH-1 имеет уязвимости, которыми может воспользоваться криптоаналитик.

IPsec

При таком сценарии атаки криптоаналитик вводит свою жертву в заблуждение, заставляя её думать, что IPsec-сессия не может начаться на другом конце (сервере). Это приводит к тому, что сообщения будут пересылаться в явном виде, в случае если хост-машина работает в rollback-режиме.

PPTP

На этапе согласования параметров сессии PPTP атакующий может вынудить жертву использовать менее безопасную PAP -аутентификацию, MSCHAP V1 (то есть «откатиться» с MSCHAP V2 до версии 1), либо не использовать шифрование вообще.

Атакующий может вынудить свою жертву повторить этап согласования параметров PPTP-сессии (послать Terminate-Ack-пакет), выкрасть пароль из существующего туннеля и повторить атаку.

Публичные средства коммуникаций без защиты достоверности, конфиденциальности, доступности и целостности информации

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

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

Спасёт ли шифрование?

Рассмотрим случай стандартной HTTP-транзакции. В этом случае злоумышленник достаточно легко может разбить оригинальное TCP-соединение на два новых: одно между собой и клиентом, другое между собой и сервером. Это довольно просто сделать, так как очень редко соединение между клиентом и сервером прямое, и в большинстве случаев они связаны через некоторое количество промежуточных серверов. MITM-атаку можно проводить на любом из этих серверов.

Однако в случае, если клиент и сервер общаются по HTTPS - протоколу, поддерживающему шифрование - тоже может быть проведена атака «человек посередине». При таком виде соединения используется TLS или SSL для шифрования запросов, что, казалось бы, делает канал защищённым от сниффинга и MITM-атак. Атакующий может для каждого TCP-соединения создать две независимые SSL-сессии. Клиент устанавливает SSL-соединение с атакующим, тот, в свою очередь, создает соединение с сервером. Браузер в таких случаях обычно предупреждает о том, что сертификат не подписан доверенным центром сертификации, но рядовые пользователи устаревших браузеров легко обходят данное предупреждение. К тому же у злоумышленника может оказаться сертификат, подписанный корневым центром сертификации (например, такие сертификаты иногда используются для DLP ) и не создающий предупреждений. Кроме того, существует ряд атак на HTTPS. Таким образом, HTTPS протокол нельзя считать защищенным от MITM-атак у рядовых пользователей. [ ] Существует ряд мер, предотвращающих часть атак MITM на https сайты, в частности, HSTS , который запрещает использовать http-соединение с сайтов, Certificate pinning и HTTP Public Key Pinning , запрещающие подмену сертификата.

Обнаружение MITM-атаки

Для обнаружения атаки «человек посередине» необходимо проанализировать сетевой трафик. К примеру, для детектирования атаки по SSL следует обратить внимание на следующие параметры:

  • IP-адрес сервера
  • DNS-сервер
  • X.509 -сертификат сервера
    • Подписан ли сертификат самостоятельно?
    • Подписан ли сертификат центром сертификации ?
    • Был ли сертификат аннулирован?
    • Менялся ли сертификат недавно?
    • Получали ли другие клиенты в интернете такой же сертификат?

Реализации MITM-атаки

Перечисленные программы могут быть использованы для осуществления атак «человек посередине», а также для их обнаружения и тестирование системы на уязвимости.

См. также

  • Aspidistra (англ.) - британский радиопередатчик, использовавшийся во время Второй мировой войны «вторжения», вариант MITM-атаки.
  • Заговор Бабингтона (англ.) - заговор против Елизаветы I , в ходе которого Уолсингем перехватывал корреспонденцию.

Другие атаки

  • «Человек-в-браузере» (Man in the Browser) - вид атаки, при которой злоумышленник получает возможность мгновенно менять параметры транзакции, менять страницы совершенно прозрачно для жертвы.
  • «Встреча посередине » (Meet-in-the-middle attack) - криптографическая атака, которая так же, как и атака «дней рождения» , использует компромисс между временем и памятью .
  • «Потеря посередине» (Miss in the middle attack) - эффективный метод так называемого impossible differential cryptanalysis.
  • Relay attack - вариант MITM-атаки, основанный на пересылке перехваченного сообщения допустимому получателю, но не тому, которому это сообщение предназначалось.

Добиваться желаемого результата почти всегда можно несколькими способами. Это применимо и к области ИБ. Иногда для достижения цели можно брутить, самостоятельно искать дыры и разрабатывать сплоиты или же прислушаться к тому, что передается по сети. Причем последний вариант зачастую бывает оптимальным. Именно поэтому сегодня мы поговорим об инструментах, которые помогут вылавливать ценную для нас информацию из сетевого трафика, привлекая для этого MITM-атаки.

MITMf

Начнем с одного из наиболее интересных кандидатов. Это целый фреймворк для проведения man-in-the-middle атак, построенный на базе sergio-proxy. С недавнего времени включен в состав Kali Linux. Для самостоятельной установки достаточно клонироватьрепозиторий и выполнить пару команд:

# setup.sh # pip install -r requirements.txt

# pip install -r requirements.txt

Имеет расширяемую за счет плагинов архитектуру. Среди основных можно выделить следующие:

  • Spoof - позволяет перенаправлять трафик при помощи ARP/DHCP-спуфинга, ICMP-редиректов и модифицировать DNS-запросы;
  • Sniffer - этот плагин отслеживает попытки логина для различных протоколов;
  • BeEFAutorun - позволяет автоматически запускать модули BeEF, исходя из типа ОС и браузера клиента;
  • AppCachePoison - осуществляет атаку «отравление кеша»;
  • SessionHijacking - угоняет сессии и сохраняет полученные куки в профиле огнелиса;
  • BrowserProfiler - пытается получить список используемых браузером плагинов;
  • FilePwn - позволяет подменять пересылаемые по HTTP файлы с помощью Backdoor Factory и BDFProxy;
  • Inject - внедряет произвольный контент в HTML-страницу;
  • jskeylogger - внедряет JavaScript-кейлоггер в клиентские страницы.

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

PuttyRider

Еще одна достойная внимания утилита. Правда, в отличие от всех остальных рассматриваемых сегодня инструментов, она очень узко специализирована. Как рассказывает сам автор проекта, на мысль создать такую утилиту его натолкнуло то, что во время проведения тестов на проникновение наиболее важные данные располагались на Linux/UNIX-серверах, к которым админы подключались по SSH/Telnet/rlogin. Причем в большинстве случаев получить доступ к машине администраторов было намного проще, чем к целевому серверу. Проникнув на машину сисадмина, остается только убедиться в наличии запущенного PuTTY и с помощью данной тулзы выстроить обратный мостик до атакующего.

Утилита позволяет не только снифать «общение» между админом и удаленным сервером (включая пароли), но и выполнять произвольные shell-команды в рамках данной сессии. Причем все это будет происходить абсолютно прозрачно для пользователя (админа). Если интересуют технические детали, например как реализовано внедрение в процесс PuTTY, рекомендую ознакомиться спрезентацией автора.

Довольно старая утилита, появившаяся на свет более восьми лет назад. Предназначается для клонирования сессий путем кражи кукисов. Для угона сессий имеет базовые навыки обнаружения хостов (в случае подключения к открытой беспроводной сети или хабу) и проведения ARP poisoning. Единственная проблема - сегодня, в отличие от того, что было восемь лет назад, почти все крупные компании, такие как Yahoo или Facebook, используют SSL-шифрование, что делает эту тулзу абсолютно бесполезной. Несмотря на это, в Сети еще остается достаточно ресурсов, не использующих SSL, так что списывать утилиту со счетов пока рано. К ее плюсам можно отнести то, что она автоматически интегрируется в Firefox и создает отдельный профиль для каждой перехваченной сессии. Исходный код доступен в репозитории, а самостоятельно собрать ее можно с помощью такой последовательности команд:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip sessionthief

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev

# g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp

# setcap cap_net_raw,cap_net_admin=eip sessionthief

ProxyFuzz

Непосредственно к проведению MITM-атак ProzyFuzz не имеет никакого отношения. Как можно догадаться из названия, тулза предназначена для фаззинга. Это маленький недетерминированный сетевой фаззер, реализованный на питоне, который произвольно меняет содержимое пакетов сетевого трафика. Поддерживает протоколы TCP и UDP. Можно настроить, чтобы производился фаззинг только одной стороны. Пригодится, когда нужно быстренько проверить какое-нибудь сетевое приложение (или протокол) и разработать PoC. Пример использования:

Python proxyfuzz -l -r -p

python proxyfuzz -l -r -p

Список опций включает в себя:

  • w - задает число запросов, отправленных перед началом фаззинга;
  • c - фаззить только клиента (иначе обе стороны);
  • s - фаззить только сервер (иначе обе стороны);
  • u - UDP-протокол (в противном случае используется TCP).

The Middler

Представленная в рамках конференции DEF CON утилита для проведения MITM-атак на различные протоколы. Альфа-версия поддерживала протокол HTTP и имела в своем арсенале три крутых плагина:

  • plugin-beef.py - внедряет Browser Exploitation Framework (BeEF) в любой HTTP-запрос, приходящий из локальной сети;
  • plugin-metasploit.py - внедряет в незашифрованные (HTTP) запросы IFRAME, который подгружает эксплойты для браузеров из Metasploit;
  • plugin-keylogger.py - встраивает JavaScript обработчик события onKeyPress для всех текстовых полей, которые будут передаваться по HTTPS, заставляя браузер посимвольно отправлять вводимый пользователем пароль на сервер атакующего, до того как произойдет отправка всей формы.

The Middler не только автоматически анализирует сетевой трафик и находит в нем кукисы, но и самостоятельно запрашивает их со стороны клиента, то есть процесс автоматизирован по максимуму. Программа гарантирует сбор всех незащищенных аккаунтов в компьютерной сети (или публичном хотспоте), к трафику которой она имеет доступ. Для корректной работы программы в системе должны быть установлены следующие пакеты: Scapy, libpcap, readline, libdnet, python-netfilter. К сожалению, репозиторий давно не обновляется, поэтому новую функциональность придется добавлять самостоятельно.

Консольная утилита, которая в интерактивном режиме позволяет исследовать и модифицировать HTTP-трафик. Благодаря таким навыкам утилита используется не только пентестерами/хакерами, но и обычными разработчиками, применяющими ее, например, для отладки веб-приложений. С ее помощью можно получать подробную информацию о том, какие запросы делает приложение и какие ответы оно получает. Также mitmproxy может помочь в изучении особенностей функционирования некоторых REST API, в особенности плохо документированных.

Установка предельно проста:

$ sudo aptitude install mitmproxy

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

Dsniff

Ну а эта утилита вообще одно из первых, что должно приходить на ум, как только услышишь
«MITM-атака». Инструмент довольно старый, но продолжает активно обновляться, что не может не радовать. Подробно рассказывать про его возможности смысла нет, за четырнадцать лет существования он не раз освещался в сети. Вот к примеру в руководстве наподобие этого:

ну или инструкцию с нашего сайта:

На последок..

Как обычно, мы рассмотрели не все утилиты, а лишь наиболее популярные, есть еще немало малоизвестных проектов, о которых мы, возможно, как-нибудь поговорим. Как видишь, недостатка в инструментах для проведения MITM-атак не наблюдается, причем, что бывает не так уж часто, одна из крутых тулз реализована под винду. Про nix-системы и говорить нечего - целое разнообразие. Так что, думаю, ты всегда сможешь найти подходящий инструмент для угона
чужих credentials. Упс, то есть для проведения тестирований.

MTProto использует оригинальный метод для того, чтобы достичь надёжности в ныне уязвимой мобильной связи и скорости в доставке больших файлов (например, фотографий, видеороликов и документов размером до 1 ГБ). Этот документ предназначен для разъяснения деталей нашей системы и рассмотрения элементов, которые на первый взгляд трудно понять.

Детальная документация протокола доступна на этой странице . Если у вас есть вопросы - пишите в Твиттер .

Примечание: Каждое сообщение, зашифрованное через MTProto, всегда содержит следующие данные, которые будут проверены во время дешифрования, для того чтобы сделать систему надёжной от известных проблем:

  • идентификатор сессии - session id;
  • длина сообщения - message length;

Note 2: Смотрите дополнительные комментарии по поводу использования , и модифицированной схемы .

Почему вы не используете X [ваш вариант]

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

Почему вы опираетесь на классические криптоалгоритмы?

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

Я — эксперт в области безопасности, и я считаю, что ваш протокол небезопасен.

Вы можете принять участие в нашем конкурсе: Павел Дуров предлагает $200 000 в биткойнах тому, кто первый взломает MTProto. Можете ознакомиться с объявлением и Конкурсным FAQ . Если у вас есть другие замечания, будем рады услышать их на [email protected] .

Защита от известных атак

Атаки на основе открытых текстов (Known-Plaintext Attacks)

Согласно определению, атака на основе открытого текста - вид криптоаналитической атаки, при которой у атакующего есть обе версии текста: зашифрованная и исходная. Используемый в MTProto AES IGE устойчив к таким атакам. К тому же незашифрованный текст в MTProto всегда содержит соль сервера и идентификатор сессии.

Атака на основе адаптивно подобранного открытого текста

Согласно определению , атака на основе адаптивно подобранного открытого текста - вид атаки в криптоанализе, предполагающий, что криптоаналитик может выбирать открытый текст и получать соответствующий ему шифротекст. MTProto использует AES в режиме IGE, который безопасен против таких атак. Известно, что IGE неустойчив к blockwise-adaptive атакам, но MTProto исправляет это нижеописанным способом. Каждое сообщение с открытым текстом, которое предстоит зашифровать, содержит следующие данные, которые проверяются при расшифровке:

  • соль сервера (64-битная) - server salt (64-Bit);
  • порядковый номер сообщения - message sequence number;
  • время отправки сообщения - time.

Вдобавок к этому, чтобы заменить открытый текст, также придётся использовать верные AES-ключ и вектор инициализации, зависящие от auth_key . Это делает MTProto устойчивым против атак на основе адаптивно подобранного открытого текста.

Атаки на основе подобранного шифротекста

Согласно определению , атака на основе подобранного шифротекста — это криптографическая атака, при которой криптоаналитик собирает информацию о шифре путём подбора зашифрованного текста и получения его расшифровки при неизвестном ключе. При такой атаке злоумышленник может ввести в систему один или несколько известных шифротекстов и получить открытые тексты. При помощи этих данных атакующий может попытаться восстановить ключ, используемый для расшифровки. В MTProto при каждой дешифровке сообщения производится проверка на соответствие msg_key к SHA-1 расшифрованных данных. Открытый текст (дешифрованные данные) также всегда содержит информацию о длине сообщения, его порядкового номера и соли сервера. Это сводит на нет атаки на основе подобранного шифротекста.

Атаки повторного воспроизведения

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

Атака «Человек посередине» (MitM)

Telegram имеет два режима общения: обычные чаты, использующие шифрование клиент-сервер, и секретные чаты, использующие оконечное шифрование и защищённые от атак посредника. Передача данных между клиентом и сервером защищена от подобных атак во время генерации ключей по протоколу Диффи —Хеллмана благодаря алгоритму с открытым ключом RSA, который встроен в клиенты Telegram. После этого, если клиенты собеседников доверяют программному обеспечению сервера, секретные чаты между ними защищаются сервером от атак посредника. Специально для тех, кто не доверяет серверу, в приложении доступно сравнение секретных кодов. Ключи визуализируются в виде изображений. Сравнивая визуализированные ключи, пользователи могут удостовериться, что атака «человек посередине» не была осуществлена.

Шифрование

Вы используете IGE? Он же взломан!

Да, мы используем IGE, но в нашей реализации с ним всё в порядке. Тот факт, что мы не используем IGE вместе с другими элементами нашей системы так же, как и MAC, делает попытки взлома IGE бессмысленными. IGE, ровно как и распространённый режим сцепления блоков шифротекста (CBC), подвержен blockwise-adaptive атакам . Но адаптивные атаки являются угрозой лишь тогда, когда один и тот же ключ используется в нескольких сообщениях (в это не так).

Адаптивные атаки даже теоретически невозможны в MTProto, потому что для расшифровки сообщений последние должны быть сперва полностью набраны, так как ключ сообщения зависит от его содержания. Что же касается неадаптивных CPA-атак, IGE защищён от них, как и CBC.

Атака «человек посередине» (англ. Man in the middle, MitM-атака) - термин в криптографии, обозначающий ситуацию, когда атакующий способен читать и видоизменять по своей воле сообщения, которыми обмениваются корреспонденты, причём ни один из последних не может догадаться о его присутствии в канале.

Метод компрометации канала связи, при котором взломщик, подключившись к каналу между контрагентами, осуществляет активное вмешательство в протокол передачи, удаляя, искажая информацию или навязывая ложную.

Принцип атаки:

Предположим, объект "A" планирует передать объекту "B" некую информацию. Объект "C" обладает знаниями о структуре и свойствах используемого метода передачи данных, а также о факте планируемой передачи собственно информации, которую "С" планирует перехватить.

Для совершения атаки "С" «представляется» объекту "А" как "В", а объекту "В" - как "А". Объект "А", ошибочно полагая, что он направляет информацию "В", посылает её объекту "С".

Объект "С", получив информацию, и совершив с ней некоторые действия (например, скопировав или модифицировав в своих целях) пересылает данные собственно получателю - "В"; объект "В", в свою очередь, считает, что информация была получена им напрямую от "А".

Пример MitM-атаке:

Предположим, у Алисы финансовые проблемы и используя программу для обмена мгновенными сообщениями, решила попросить у Джона сумму денег, отправляя сообщение:
Алиса : Джон, привет!
Алиса : Отправь, пожалуйста, ключ шифрования, есть маленькая просьба!
Джон : Привет! Подожди секундочку!

Но, в это время, Мистер-Х, который, анализируя трафик с помощью сниффера, заметил эту сообщению, а слова "ключ шифрования", вызвала любопытство. Вот почему решил перехватить следующие сообщения и подменить их на нужные ему данные, и когда получил следующую сообщению:
Джон : Вот, мой ключ: 1111_Д

Он менял ключ Джона на свой, и отправил сообщение Алисе:
Джон : Вот, мой ключ: 6666_М

Алиса, ничего не подозревая и думая, что это ключ Джона, используя секретный ключ 6666_М , отправляет Джону зашифрованные сообщения:
Алиса : Джон, у меня проблемы и мне срочно нужны деньги, переведи, пожалуйста, $300 на мой счёт: Z12345. Спасибо. p.s. Мой ключ: 2222_А

Получив сообщение, Мистер-Х, расшифровывает её с помощью его ключа, читает, и радуясь, меняет номер счёта и ключ шифрования Алисы на свой, зашифровывает сообщение ключом 1111_Д , и отправляет Джону сообщение:
Алиса : Джон, у меня проблеммы и мне срочно нужны деньги, переведи пожалуйста $300 на мой счёт: Z67890. Спасибо. p.s. Мой ключ: 6666_А

После того как получил сообщение, Джон расшифровывает её с помощью ключа 1111_Д , и даже не сомневаясь, переведёт деньги на счёт Z67890 ...

И таким образом, Мистер-Х используя атаку «человек посередине», заработал $300, но Алисе теперь придётся объяснить, что она не получила деньги... А Джон? Джон должен доказать Алисе, что он их отправил...

Реализация:

Подобный тип атак используется в некоторых программных продуктах для прослушивания сети, например:
NetStumbler - программа, с помощью которой можно собрать множество полезных данных о беспроводной сети и решить некоторые проблемы, связанные с ее эксплуатацией. NetStumbler позволяет определить радиус действия сети и поможет точно направить антенну для связи на дальние расстояния. Для каждой найденной точки доступа можно узнать MAC-адрес, соотношение сигнал/шум, название сервиса и степень его защищенности. Если трафик не шифруется, то полезной окажется способность программы обнаруживать неавторизованное подключение.

dsniff - представляет собой набор программ для сетевого аудита и проверок на возможность проникновения, обеспечивают пассивный мониторинг сети для поиска интересующих данных (пароли, адреса электронной почты, файлы и т. п.), перехват сетевого трафика, в обычных условиях недоступного для анализа (например, в коммутируемой сети), также возможность организации MITM-атак для перехвата сессий SSH и HTTPS за счет использования недостатков PKI.

Cain & Abel - бесплатная программа, позволяющая восстанавливать утерянные пароли для операционных систем семейства Windows. Поддерживается несколько режимов восстановления: грубый взлом методом перебора, подбор по словарю, просмотр скрытых звездочками паролей и т.д. Также присутствуют опции для выявления пароля путем перехвата информационных пакетов и их последующего анализа, записи переговоров по сети, анализа кэша и другие.

Ettercap - представляет собой сниффер, перехватчик пакетов и регистратор для локальных Ethernet-сетей, который поддерживает активный и пассивный анализ множества протоколов, а также возможны «подбрасывание» собственных данных в имеющееся соединение и фильтрация «на лету» без нарушения синхронизации соединения. Программа позволяет перехватывать SSH1, HTTPS и другие защищенные протоколы и предоставляет возможность расшифровывать пароли для следующих протоколов: TELNET, ftp, POP, RLOGIN, SSH1, icq, SMB, Mysql, HTTP, NNTP, X11, NAPSTER, IRC, RIP, BGP, SOCKS 5, IMAP 4, VNC, LDAP, NFS, SNMP, HALF LIFE, QUAKE 3, MSN, YMSG.

KARMA – набор утилит для оценки безопасности беспроводных клиентов, представляет собой беспроводной сниффер, который, пассивно прослушивая 802.11 Probe Request фреймы, позволяет обнаруживать клиентов и их предпочтительные/доверенные сети. Затем может быть создана поддельная точка доступа для одной из запрашиваемой сети, к которым он может быть автоматически подключен. Высокоуровневые поддельные службы могут использоваться для кражи персональных данных или эксплуатации клиентских уязвимостей на хосте.

AirJack - комплект программ, который, по мнению экспертов из области WiFi-хакинга, это наилучший инструмент для генерирования различных фреймов 802.11. AirJack включает в себя ряд утилит, предназначенные для обнаружения скрытого ESSID, посылки фреймов прекращения сеанса с поддельным MAC, проведения MitM-атак и её модификацию.

Противодействие:

Для избежания атак подобного типа абонентам "A" и "B" достаточно с помощью достоверного канала передать друг другу цифровые подписи публичных ключей шифрования. Тогда при сравнении подписей ключей в сеансах шифрования можно будет установить, каким ключом шифровались данные, и не произошла ли подмена ключей.