Kali Linux, Kali Linux для продвинутого тестирования на проникновение

#112 Kali Linux для продвинутого тестирования на проникновение. Domain fronting. Использование Amazon CloudFront для C2.

Здравствуйте, дорогие друзья.

Domain fronting — это метод, используемый злоумышленниками или красными командами, чтобы избежать обнаружения своих серверов C2. Это искусство сокрытия компьютера злоумышленника за доменами с высоким уровнем доверия путем маршрутизации трафика через приложение, использующее чужое доменное имя (или, в случае HTTPS, чужой сертификат SSL).
Наиболее популярные сервисы включают CloudFront от Amazon, Microsoft Azure и Google App Engine. Те же методы доменного фронтинга можно использовать в корпоративной веб-почте для C2 и утечке данных через протоколы SMTP.
Обратите внимание, что Google и Amazon реализовали стратегии защиты от фронтирования доменов в апреле 2018 года. В этом разделе мы рассмотрим, как использовать Amazon CloudFront и Microsoft Azure для C2, используя два разных метода.

Использование Amazon CloudFront для C2


Чтобы повысить скорость загрузки, Amazon предоставляет сеть доставки контента (CDN) в глобально распределенной сети прокси-серверов, которая кэширует такой контент, как объемные медиафайлы и видео. Amazon CloudFront — это CDN, предлагаемый Amazon Web Services. Создание CDN включает следующие шаги:

  1. Сначала откройте учетную запись AWS по адресу https://aws.amazon.com/.
  2. Войдите в свою учетную запись на странице https://console.aws.amazon.com/cloudfront/home.
  3. Нажмите «Начать» в разделе «Интернет» и выберите «Создать распространение».
  4. Введите правильные данные для каждой настройки:
  • Исходное доменное имя: доменное имя, контролируемое злоумышленником.
  • Исходный путь: значение может быть установлено как корень /.
  • Идентификатор исходного пути: любое пользовательское имя, например demo или C2C.
  • Исходные протоколы SSL: по умолчанию включены TLS v1.2, TLS v1.1 и TLS v1.0.
  • Политика исходного протокола: существует три варианта: HTTP, HTTPS и просмотр совпадений. Я рекомендую использовать Match Viewer, который использует как HTTPS, так и HTTP в зависимости от протокола запроса зрителя.
  • Разрешенные методы HTTP: выберите GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE в настройках поведения кэша по умолчанию.
  • Убедитесь, что для параметров «Кэш и исходный запрос» выбран параметр «Использовать устаревшие настройки кэша».
  • Убедитесь, что для параметра «Пересылаемые файлы cookie» установлено значение «Все».
  • Убедитесь, что для параметра «Пересылка и кэширование строки запроса» установлено значение «Пересылать все, на основе кэша» на все.
Enabling the legacy cache settings and selecting the right options in AWS

5. Теперь все готово, поэтому нажмите «Создать распространение». Вы должны увидеть следующий экран, где имя домена отображается как .cloudfront.net:

Successfully creating a cloud front distribution

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

  1. После создания дистрибутива на AWS Вы готовы настроить агент PoshC2 для подготовки к атаке. Прежде чем запустить PoshC2, нам необходимо убедиться, что мы определили уязвимый домен, который может быть фасадом нашего злого сервера.
  2. Найти фронтальные домены можно с помощью различных скриптов; здесь мы будем использовать скрипт, найденный по адресу https://github.com/rvrsh3ll/FindFrontableDomains, и использовать один из уязвимых хостов для выполнения атаки.
  3. Давайте теперь продолжим и создадим новый слушатель в PoshC2. Первый шаг — создать проект PoshC2, запустив: posh-project –n domfront, а затем внести изменения в файл конфигурации, найдя /var/poshc2/domfront/config.yml и отредактировав PayLoadCommsHost для уязвимого хоста, DomainFrontHeader для Вашего AWS. имя хоста облачного распространения, а затем BindPort 80, как показано на рисунке ниже:
Configuring the PoshC2 to run on port 80 along with the domain front header with a vulnerable host

Злоумышленники могут выбрать запуск C2 через порт 443. Убедитесь, что Вы создали правильный сертификат с помощью таких служб, как Letsencrypt, иначе CloudFront CDN не сможет установить связь с сервером C2.

  1. Как только все настройки нашего PoshC2 будут завершены, злоумышленники смогут увидеть следующее:
 Launching PoshC2 using the AWS cloud distribution that we created

В этом примере мы будем использовать хост vijayvelu.com для пересылки запроса домена на наш сервер C2. Прежде чем подключиться к веб-службам Amazon, приложение выполнит поиск DNS, чтобы преобразовать имя домена в сетевой IP-адрес. Запрос будет отправлен непосредственно на хост vijayvelu.com с заголовком хоста, который мы создали в дистрибутиве Amazon CloudFront.
Захват пакета запроса от Wireshark будет выглядеть примерно так, как показано на рисунке ниже:

TCP stream of the communication of DomainFrontHost to our hosting server

10. Как только полезная нагрузка будет выполнена на компьютере жертвы, Вы сможете увидеть отчет об имплантате без каких-либо следов IP-адреса злоумышленника в сети жертвы. Весь трафик будет выглядеть как законные подключения к AWS и домену, на который он направлен:

Successful implanting of the exploit to the target with domain fronting

Злоумышленники также могут использовать Metasploit. Мы создадим эксплойт для предоставления обратной HTTP-оболочки Meterpreter с использованием msfvenom, с доменом, который выполняет пересылку, с внедрением заголовка следующим образом:

Выполнение этой полезной нагрузки должно получить обратную оболочку на сервере C2, который находится за Amazon CDN. Эту технику активно использовала APT29 (российская государственная хакерская группа) для проведения скрытых атак:

Reverse shell to Meterpreter when the exploit was run on the target system using the domain fronting technique

Злоумышленники могут использовать службы Microsoft CDN для C2. К сожалению, параметры CDN недоступны для пользователей бесплатного уровня; следовательно, пользователям, возможно, придется зарегистрироваться с оплатой по мере использования, а затем создать подписку и следовать инструкциям на странице https://docs.microsoft.com/en-us/azure/cdn/cdn-create-endpoint-how-to. Однако тестировщикам необходимо убедиться, что доменное имя Azure или Amazon имеет действительную запись A. Для Microsoft Azure Вам также необходимо убедиться, что CNAME указывает на правильный личный домен, чтобы фронтинг домена работал.
Хотя многие поставщики контента уязвимы для атак такого типа, некоторые поставщики контента, такие как Google, похоже, быстро устранили эту атаку, внеся серьезные изменения в свою облачную инфраструктуру. Например, если домен компании A использует домен Amazon в качестве фронта с дополнительным заголовком хоста, указывающим на компанию B, запрос будет отброшен на первом узле CDN.
Аналогичным образом, другие провайдеры пытаются заблокировать эти методы пересылки или фронтирования, требуя дополнительный токен авторизации или другой механизм.

На этом все. Всем хорошего дня!

Полный цикл статей по Kali Linux для продвинутого тестирования на проникновение.