Руководства, Инструкции, Бланки

Mitmf инструкция img-1

Mitmf инструкция

Рейтинг: 4.1/5.0 (1893 проголосовавших)

Категория: Инструкции

Описание

MitM-атака (Man in the middle) - Информационная безопасность

Термины → MitM-атака (Man in the middle)

Атака «человек посередине» (англ. 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' достаточно с помощью достоверного канала передать друг другу цифровые подписи публичных ключей шифрования. Тогда при сравнении подписей ключей в сеансах шифрования можно будет установить, каким ключом шифровались данные, и не произошла ли подмена ключей.

[ Administrator. 19 апреля 2010, 14:06 | Просмотров: 18125 | Комментариев: 0 ]

Информация

Посетители, находящиеся в группе Гости. не могут оставлять комментарии к данной публикации.

Другие статьи

Понимание Man-In-The-Middle Attacks - атак 4: Перехват SSL

Понимание Man-In-The-Middle Attacks - атак 4: Перехват SSL

Если вы хотите прочитать другие части этого цикла статей, перейдите по ссылкам:

Введение

Итак, мы уже обсудили ARP cache poisoning, подделку DNS и перехват сеанса в нашем путешествии по миру распространенных типов man-in-the-middle атак. В этой части мы рассмотрим подделку SSL, которая по своей природе является одной самых сильных атак MITM, поскольку использует службы, которые люди считают надежными. Я начну с обсуждения теоретической информации о SSL подключениях и того, что делает эти подключения надежными, а затем покажу вам, как их можно использовать для атак. И, как всегда, последний раздел этой части будет посвящен способам обнаружения и предотвращения таких атак.

SSL и HTTPS

Secure Socket Layers (SSL) или Transport Layer Security (TLS) в более современном применении представляют собой протоколы, созданные для обеспечения безопасности сетевых подключений посредством шифрования. Этот протокол чаще всего связывают с другими протоколами для обеспечения безопасного применения служб, которые предоставляет данный протокол. Сюда входит SMTPS, IMAPS и чаще всего HTTPS. Конечной целью является создание защищенных каналов в незащищенной сети.

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

Процесс, используемый протоколом HTTPS для обеспечения безопасности данных, основан на распределении сертификатов между сервером, клиентом и доверенной третьей стороной. Допустим, пользователь пытается подключиться к учетной записи на Gmail. Это включает несколько четких шагов, которые в упрощенном виде показаны на рисунке 1.

Процесс, изображенный на рисунке 1, отображен не полностью, но, по сути, работает по следующему принципу:

  1. Клиентский браузер подключается к http://mail.google.com на порт 80, используя HTTP.
  2. Сервер перенаправляет клиентскую HTTPS версию этого сайта, используя HTTP code 302 перенаправление.
  3. Клиент подключается к https://mail.google.com на порт 443.
  4. Сервер предоставляет клиенту сертификат, содержащий его цифровую подпись. Этот сертификат используется для проверки идентификации сайта.
  5. Клиент получает этот сертификат и сверяет его в своем списке доверенных центров сертификации.
  6. Создается зашифрованное соединение.

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

Взлом HTTPS

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

Moxie Marlinspike, широко известный сотрудник безопасности ИТ, высказал гипотезу о том, что в большинстве случаев SSL практически нигде не встречается в чистом виде. То есть, в большинстве случаев SSL подключение создается через HTTPS, поскольку кто-то был перенаправлен на HTTPS через код ответа HTTP 302 или нажав на ссылку, которая перенаправляет их на HTTPS сайт, например, кнопка входа. Суть в том, что если попытаться осуществить атаку на точку перехода от незащищенного на защищенное соединение, в данном случае с HTTP на HTTPS, вы будете атаковать мост и можете выполнить атаку на SSL подключение до того, как оно будет создано. Чтобы этого добиться, Moxie создал инструмент SSLstrip, который мы будем использовать в этой статье.

Этот процесс довольно прост и напоминает некоторые атаки, которые мы выполнили в предыдущих частях цикла. Принцип его работы приведен на рисунке 2.

Процесс, показанный на рисунке 2, работает следующим образом:

  1. Трафик между клиентом и веб сервером перехватывается.
  2. Когда HTTPS URL адрес обнаруживается, инструмент sslstrip заменяет его HTTP ссылкой и сопоставляет все изменения.
  3. Атакующая машина предоставляет сертификаты веб серверу и олицетворяет клиента.
  4. Трафик принимается с защищенного веб сайта и предоставляется клиенту.

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

Использование SSLStrip

Программа, позволяющая выполнить такой процесс атаки, называется SSLstrip и ее можно загрузить отсюда. Эта программа работает только под управлением Linux, поэтому вы можете загрузить и установить ее самостоятельно, или если вы не хотите возиться с установкой самостоятельно, вы можете загрузить и запустить Backtrack 4, на котором она предустановленна.

После того, как вы обзавелись SSLstrip, есть ряд предварительных шагов, которые нужно выполнить. Прежде всего, дистрибутив Linux, который вы используете, должен быть настроен на пересылку IP. Для этого введите команду echo "1" > /proc/sys/net/ipv4/ip_forward в интерпретатор команд.

После этого нужно направлять весь HTTP трафик, который будет перехватываться, на порт, на котором будет слушать SSLstrip. Для этого нужно изменить конфигурацию межсетевого экрана iptables. Используем следующую команду iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port <listenPort>.

Конечно, нужно будет заменить <listenPort> портом, который вы выберите. После настройки этих параметров можно запустить sslstrip и настроить ее на прослушивание указанного порта с помощью команды sslstrip -l <listenPort>.

Последним шагом в этом процессе будет настройка ARP спуфинга для перехвата трафика с целевого узла. Ранее для этого мы использовали Cain и Abel в Windows, но в этом случае мы будем использовать утилиту arpspoof, которая встроена в Backtrack 4. Для этого нужно выполнить команду arpspoof -i <interface> -t <targetIP> <gatewayIP>.

Используя эту команду, нужно заменить <interface> на сетевой интерфейс, с которого вы выполняете эти действия (eth0, eth1, и т.д.), <targetIP> на IP адрес целевого клиента, и <gatewayIP> на IP адрес роутера шлюза, который используется целевым клиентом.

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

Защита от перехвата SSL

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

  • Необходимо убедиться в том, что используется защищенное HTTPS подключение - когда выполняется вышеописанная атака, она убирает все аспекты защиты подключения, что можно увидеть в браузере. Это означает, что если вы входите в свой банковский аккаунт через интернет и замечаете, что это простое HTTP подключение, высока вероятность того, что что-то не так. Независимо от модели браузера, необходимо уметь различать защищенные подключения и незащищенные.
  • Выполняйте свои сетевые банковские операции дома - шансы того, что кто-то перехватит трафик в домашней сети, гораздо меньше, чем шансы перехвата трафика в корпоративной сети. Дело не в том, что ваш домашний компьютер более безопасный (давайте смотреть правде в глаза, он даже менее защищен), а просто в том, что если у вас дома всего один или два компьютера, вам лишь нужно беспокоиться (относительно перехвата сеанса) о том, что ваш 14 летний ребенок будет просматривать какие-то видеоролики с YouTube, которые могут использоваться для перехвата сеанса. В корпоративной сети вы не знаете, что происходит этажом ниже или в офисе филиала, расположенном в 200 милях от главного офиса, поэтому количество потенциальных источников атак значительно возрастает. Одной из основных целей перехвата сеанса являют банковские интернет услуги, но этот же принцип может быть применен к чему угодно.
  • Защищайте свои внутренние машины - и снова, такие атаки чаще всего осуществляются из внутренней сети. Если ваши сетевые устройства защищены, то меньше вероятность того, что скомпрометированные узлы будут использоваться для инициации перехвата сеанса.
Заключение

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

Если вы хотите прочитать другие части этого цикла статей, перейдите по ссылкам:

Крис Сандерс -старший консультант по сетевым технологиям в Practical Packet Analysis. Его персональный сайт находящийся по адресу: www.chrissanders.org содержит много статей и руководств по сетевому администрированию, сетевой безопасности, анализу пакетов, и много другой полезной информации.

Эта статья переведена и опубликована с разрешения www.windowsecurity.com

Эта статья переведена силами и средствами компании Red Line Software. Размещение данного переведенного материала на других сайтах без разрешения компании Red Line Software запрещается.

MITM для HTTPS - Security

Возможно ли выполнить MITM для HTTPS так, чтобы «жертва» не догадалась?

Провайдер проксирует все HTTP соединения. Раньше прокси оставлял неаккуратные заголовки в пакетах (какой-то неизвесный кэширующий прокси). Потом заголовки убрали, но если подключаться к ya.ru, а в заголовках написать Host: google.com. то скачается google.com — явно прозрачный прокси. Ну и вэб-сокеты ломаются.

Вчера не работали почти все HTTPS соединения. Работал только гугл. DNSCrypt на 443 порт подключался без проблем. Явно пытались вмешаться в HTTPS-трафик.

Отпечатки сертификатов правильные, CA тоже правильный. Реально ли «вклиниться» в HTTPS не вызывая подозрений? В каких случаях браузер не будет бить тревогу?

Ну и вообще: что делать?

Ответ на: комментарий от Black_Roland 09.10.2014 17:01:25

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

Ради траффика можно и на $10 тариф перейти где 2 Тб. Не говоря о том, что в случае превышения стоимость траффика всего 2 цента за гигабайт.

Ответ на: комментарий от Black_Roland 09.10.2014 18:39:17

MITMF - фреймворк для MITM атак на Python

/// MITMF – фреймворк для MITM атак на Python

MITMF – это фреймворк для man-in-the-middle атак. Инструмент базируется на утилите sergio-proxy. которая в настоящее время уже не развивается. Инструмент организован в виде плагинов, применяемых для решения различных задач. По-умолчанию программа работает в режиме SSLStrip. В состав фреймворка входят следующие плагины:

– Spoof – предназначен для перенаправления трафика с использованием ARP-спуфинга, ICMP Redirect, DHCP спутника или модификации DNS запросов;

– AppCachePoison – для выполнения атаки типа “app cache poison”;

– BrowserProfiler – предназначен для получения списка плагинов браузера на клиенте;

– CacheKill – предназначен для удаления страниц из кэша на стороне клиента путём изменения заголовков;

– FilePwn – позволяет на лету инфицировать исполняемые файлы (ELF и PE), а также ZIP архивы, на основе the-backdoor-factory;

– Inject – позволяет вставлять произвольное содержимое в HTML страницу;

– JavaPwn – работает в связке с Metasploit (через msgrpc сервер), в автоматическом режиме определяет версию Java на клиенте и подсовывает нужный эксплойт;

– jskeylogger – позволяет внедрить в страницу браузера keylogger и смотреть все, что вводит клиент;

– Replace – позволяет заменить произвольный HTML контент;

– SMBAuth – пытается авторизоваться методом вызова SMB запрос-ответ;

– Upsidedownternet – переворачивает картинку на 180 градусов.

Для установки на Kali Linux запустить setup.sh для установки библиотек и Python модулей. Для установки используется учетная запись суперпользователя root.

Быстрый старт и примеры использования можно найти по ссылке: http://sign0f4.blogspot.it

Понятие термина MITM-атака

Понятие термина MITM-атака

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

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

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


Пример
Объект A передает объекту B некую информацию. Объект C обладает знаниями о структуре и свойствах используемого метода передачи данных, планирует перехватить эту информацию. Для совершения атаки С "представляется" объекту А - объектом В, а объекту В — объектом А. Таким образом, объект А отправляя информацию объекту В, неосознано посылает её объекту С. В свою очередь объект С, получив информацию и совершив с ней некоторые действия пересылает данные настоящему объекту В. Объект В считает, что информация была получена им напрямую от А.


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


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


Внедрение вредоносного кода
Внедрение кода в MITM-атаке главным образом применяется для захвата уже авторизованной сессии, выполнения собственных команд на сервере и отправки ложных ответов клиенту.

Атака человек посередине позволяет криптоаналитику:

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


Обнаружение MITM-атаки
Для обнаружения MITM-атаки необходимо проанализировать сетевой трафик. Например, для детектирования атаки по SSL, следует обратить внимание на следующие параметры:

  • IP адрес сервера;
  • DNS-сервер;
  • X.509 сертификат сервера
    • Подписан ли сертификат самостоятельно;
    • Подписан ли сертификат CA;
    • Был ли сертификат аннулирован;
    • Менялся ли сертификат недавно;
    • Получали ли другие клиенты в интернете такой же сертификат;
  • dsniff — инструмент для SSH и SSL атак.
  • Cain — инструмент для проведения MITM-атаки.
  • Ettercap — инструмент для проведения атак в локальной сети.
  • Karma — использует 802.11 Evil Twin attacks для проведения MITM-атак.
  • AirJack — программа демонстрирует основанные на стандарте 802.11 MITM-атаки.
  • SSLStrip — инструмент для MITM-атаки на SSL.
  • SSLSniff — инструмент для MITM-атаки на SSL.
  • Mallory — прозрачный прокси-сервер, осуществляющий TCP и UDP MITM-атаки. Может быть также использован для атаки на протоколы SSL, SSH и многие другие.
  • wsniff — инструмент для проведения атак на 802.11 HTTP/HTTPS протокол.


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

Схема удаленной MITM-атаки на систему WSUS

Схема удаленной MITM-атаки на систему WSUS

Сетевые атаки наподобие WPAD Injection, HTTP/WSUS MITM, SMB Relay очень эффективны и полезны в тех случаях, когда вы хотите атаковать не в лоб, а зайти со стороны.

Автор: Justin Warner

Сетевые атаки наподобие WPAD Injection, HTTP/WSUS MITM, SMB Relay очень эффективны и полезны в тех случаях, когда вы хотите атаковать не в лоб, а зайти со стороны. Существует множество кейсов, когда злоумышленники удаленно проникают глубоко в сети, используя вышеуказанные методы. Схожий функционал активно используется и во вредоносных программах. Яркий тому пример - Duqu 2.0.

Я познакомился с этими техниками еще более подробно благодаря наглядным примерам и историям от двух людей – Джеффа Диммока (Jeff Dimmock, @bluscreenofjeff ) и Энди Роббинса (Andy Robbins, @_wald0 ), с которыми работаю в ежедневном режиме. После ознакомления с утилитой Responder я изучал возможности фреймворка MITMf. содержащего набор утилит, упрощающих реализацию MITM-атак. Если вы не знакомы с этими инструментами, рекомендую почитать следующие статьи:

Вредонос Duqu 2.0, упомянутый выше, содержит в себе отдельный модуль, в котором не используются публичные утилиты и внешние скрипты. К сожалению, длительное время инструменты, предназначенные для реализации MiTM/relay атак, требовали физического присутствия в локальной сети жертвы. В начале 2015 года Кевин Робертсон (Kevin Robertson, @kevin_robertson ) выпустил сетевую утилиту Inveigh. написанную на PowerShell на базе сырых сокетов (raw sockets). В Inveigh был реализован ограниченный набор техник, включая LLMNR spoofing, MDNS spoofing и SMB relay. Inveigh помогает реализовать многие виды удаленных атак, а также позволяет эмулировать угрозы по этим направлениям. Если вы заинтересовались темой эмуляции угроз, у Рафаэля Маджа (Raphael Mudge) есть много идей и мыслей на эту тему.

Атака через протокол WPAD

Прежде чем перейти к изучению MITM-атак через систему WSUS, рассмотрим протокол WPAD (Web Proxy Auto-Discovery), который используется клиентами Microsoft Windows для автоматического конфигурирования локальных настроек прокси-сервера. В компаниях этот протокол позволяет клиентам автоматически настраивать прокси для доступа к корпоративной сети. Процесс конфигурации выглядит следующим образом:

Проверяем, получены ли настройки прокси по протоколу DHCP?

Если нет, подключаемся к серверу “wpad.domain.com” и считываем настройки.

В случае неудачи в шаге 2 используем широковещательную рассылку через NetBIOS (NBT-NS) для поиска сервера с именем "WPAD”.

Если сервер найден, выполняем запрос http://<SERVER>/wpad.dat для получения настроек.

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

Осуществить MITM-атаку через iframe (HTA, Exploit, Java Applet и т. д.).

Осуществить атаку при помощи социальной инженерии и HTTP Auth Prompt.

Реализовать WSUS Injection.

MITM-атака через систему WSUS

Windows Server Update Services (WSUS) – система, позволяющая компаниям управлять и выпускать обновления из централизованного интранет-хранилища. На конференции Blackhat USA 2015 Пол Стоун (Paul Stone, @pdjstone ) и Алекс Чапман (Alex Chapman), исследователи из компании Context. рассказали об очевидной проблеме, связанной с тем, что обновления передаются по сети в незашифрованном виде. Если не используется протокол SSL, то злоумышленник может осуществить MITM-атаку и подсунуть вредонос вместо настоящего обновления. Кстати, по умолчанию в WSUS используется протокол HTTP. Единственное препятствие: обновление должно быть подписано компанией Microsoft. Проблема решается при помощи утилиты PsExec от SysInternals, которая позволяет выполнять произвольные Windows-команды из подписанного бинарного файла. На конференции данная атака была продемонстрирована, что меня очень сильно заинтриговало, поскольку этот небольшой недочет в настройках позволял получить доступ в самое сердце корпоративной системы.

Более подробную информацию по теме атак через WSUS можно узнать из данной статьи. Также рекомендую ознакомиться с утилитой. специально написанной под эту задачу. Тема незашифрованных обновлений весьма обширна и выходит за рамки данной статьи. Пытливые умы могут ознакомиться с исследованием Джоша Пита (Josh Pitt, @midnite_runr ) и утилитой Backdoor Factory (BDF).

Объединяем все вместе

Пока что на данный момент я лишь рассказывал об известных уязвимостях и стратегиях атак. Самое интересное начинается в тот момент, когда мы объединим все вместе на базе платформе наподобие Cobalt Strike и сможем выполнить MITM-атаку из-за пределов локального интранета. Предполагается, что мы имеем извне доступ к хосту, присоединенному к домену.

Предупреждение: Это лишь демо пример. В реальной жизни существует масса ограничений, которые потребуют изменения образа действий. Главная мысль в том, что эти, на первый взгляд продвинутые, техники доступны не только исполнителям с самописными утилитами, спонсируемым государством. Обычные исследователи также могут эмулировать действия злоумышленников и эффективно выполнять подобного рода атаки.

1. Поиск возможностей

Первый шаг – идентификация ошибок в конфигурации системы WSUS. В большинстве утилит, предназначенных для удаленного администрирования, эта задача решается посредством вытаскивания настроек WSUS из реестра. Затем мы считываем настройки прокси-сервера через Internet Explorer. Если URL для WSUS имеет вид HTTP://<SERVER>, и в браузере настроена автоматическая конфигурация прокси, мы можем продолжать дальше!

В реестре нужно посмотреть содержимое следующих ключей:

HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\DefaultConnectionSettings (Примечание: Если 5 байт – четный, весьма вероятно, что в Internet Explorer настроено автоматическое обнаружение прокси-сервера, где доступен протокол WPAD).

Рисунок 1: Считываем настройки WSUS

Рисунок 2: Используются автоматические настройки (см. 5 байт)

После всех проверок при помощи команды ARP ищем дополнительные хосты внутри подсети, которые могут стать нашей целью.

Рисунок 3: Ищем дополнительные хосты

2. Сетевые манипуляции

Очевидная проблема, возникающая во время атаки – как использовать нашего агента в качестве прокси-сервера для WSUS. Для решения этой задачи мы можем использовать полезную нагрузку Beacon, входящую в состав Cobalt Strike, где есть возможность обратного обращения портов (reverse port forward). Во время подмены настроек для WPAD мы указываем браузеру жертвы на наш «прокси-сервер», представляющего собой обратный туннель на наш C2 сервер, находящийся вне локальной сети. Затем при помощи передающих SOCKS-туннелей (SOCKS forward tunnel) мы можем вернуть трафик обратно жертве и вместе с поддельными пакетами подсунуть обновления под WSUS.

Рисунок 4: Настройка портов и туннелей

После подготовки туннелей настала очередь осуществления атаки. Вначале я конфигурирую вредоносную полезную нагрузку и запускаю скрипт WSUSpectProxy. WSUSpectProxy берет полезную нагрузку из файла payload.ini (см. пример ниже). По рекомендации других исследователей я использовал PsExec.exe с определенным набором параметров. Я запустил powershell.exe в комбинации с командами «net user» и «net localgroup», чтобы добавить поддельного пользователя с именем «bob».

Рисунок 5: Содержимое файла payload.ini

Теперь настала очередь запустить Invoke-Inveigh с набором флагов, чтобы формализовать то, что мы хотим от скрипта:

-IP <IP-адрес, откуда будет заражение жертвы>. IP-адрес для привязки сырого сокета.

-NBNS Y. Включение NBNS-спуфинга.

-LLMNR Y. Включение LLMNR-спуфинга.

-HTTP Y. Включение HTTP-сервера для раздачи файлов WPAD.dat.

-SMB N. Отключение SMB relay.

-StatusOutput Y. Вывод текущего статуса.

-Tool 2. Эта настройка позволяет запускать скрипт из внешних утилит. Настройки агента Empire хорошо работают для Cobalt Strike.

-SpooferIPsReply <TARGET IP>. IP-адрес цели или перечень целей в формате CSV.

-WPADAuth Anonymous. Не выводим окно для авторизации в WPAD.

-WPADIp <ProxyHost>. IP-адрес хоста, где запущена команда rportfwd.

-WPADPort 8080. порт команды rportfwd.

Эта команда выполняет целенаправленное заражение через протокол WPAD. В файле WPAD.dat браузер жертвы перенаправляется на ранее созданный туннель, играющего роль внешнего контура, который перенаправляет далее на наш С2 сервер и порт 8080.

Рисунок 6: Запуск Invoke-Inveigh с нужными параметрами

4. Передача поддельного обновления

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

Рисунок 7: Передача поддельного обновления на компьютер жертвы

Рисунок 8: Так выглядит полученное обновление глазами жертвы

Предупреждение: при добавлении нового пользователя жертва может заподозрить неладное. Тем не менее, для демонстрационных целей этот метод вполне подходит. В боевых условиях рекомендую запускать агента только в памяти (возможно, при помощи PowerShell).

Ура! Теперь у нас есть доступ, и мы можем запустить агента Beacon, используя только что добавленного пользователя.

Рисунок 9: Запуск агента Beacon

Как устранить уязвимости

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

Правильная настройка WPAD

Чтобы правильно настроить WPAD, необходимо добавить записи DNS A или CNAME с именем «wpad» во внутренний DNS-сервер. Эта мера предотвратит выполнение широковещательных запросов по протоколам MDNS/LLMNR. В дальнейшем вы сможете отключить автоматические настройки через групповую политику, если в данном функционале нет необходимости.

Устранение уязвимостей в WSUS

Любые обновления должны ВСЕГДА проводиться через защищенные соединения (как минимум, через протокол SSL). Существует множество проектов, связанных с заражением через сетевые обновления. Многие плохие ребята пользуются этой техникой, чтобы зайти в систему жертвы со стороны. Конкретно для WSUS я нашел полезный материал, где описана правильная настройка: https://technet.microsoft.com/en-us/library/hh852346.aspx#bkmk_3.5.ConfigSSL.

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

В PowerShell v4 и v5 есть множество средств, которые придутся вам по душе. Я уже упоминал о некоторых из них, когда рассказывал про запуск Inveigh.ps1, но этот скрипт не имеет отношения детектированию, а только к вторжению. Относительно детектирования рекомендую вам ознакомиться со статьей. где описано множество мер касательно этой темы. Всем, кто так или иначе связан с безопасностью и хочет улучшить качество детектирования сетевых угроз, следует обратить особое внимание на атаки, реализуемые при помощи PowerShell. Подобного рода вторжения сейчас на подъеме, и эта тенденция вряд ли изменится в ближайшее время.

Мониторинг журналов событий (Event Log)

Качественный мониторинг журнала событий особенно в большой организации может быть затруднительным. Однако полученные результаты не следует недооценивать. По моему мнению, затраченное время полностью окупается. Чтобы вовремя обнаружит атаку, описанную в этой статье, следует начать мониторинг журнала c:\windows\windowsupdate.log. Журнал системных событий от источника “WindowsUpdateClient” и идентификатором 17 или 19 покажет вам имена загруженных/установленных обновлений. Сравнивая эти журналы по отдельным хостам, вы сможете обнаружить (поддельные) обновления, которые были установлены на выбранных системах.

Мониторинг DNS-логов также будет полезен. Предположим, что в организации полностью отключили использование протокола WPAD. В случае появления новой рабочей станции с включенным протоколом, по журналу вы увидите ошибки при попытке преобразовать имя WPAD.

Подписка на WMI-события

Наша команда является большим сторонником использования WMI во всех аспектах. В одном из недавних твитов Мэтт Гребер (Matt Graeber) предоставил WMI-сигнатуры, которые полезно мониторить. Джаред Аткинсон (Jared Atkinson) разработал утилиту Uproot. в сущности являющуюся системой IDS, которая работает на базе подписки на WMI-события. Система серверная и не требует установки никаких агентов.

В нашем случае, мы могли бы создать фильтр WMI-событий, и система срабатывала бы при изменении вложенных ключей, имеющих отношение к сетевому профилю, в разделе “HKEY_USERS\<USER-GUID>\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad”. Далее можно подписаться на события, связанные с созданием или модификацией файла wpad.dat, который временно помещается в директорию “<USER APP DATA>\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\”.

Если вас заинтересовала возможность фильтрации WMI-событий, рекомендую ознакомиться с утилитой WmiEvent.

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