Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
AzureHunter — Модуль PowerShell для облачной криминалистики, предназначенный для запуска сценариев охоты на угрозы по данным из Azure и O365 | Kitploit
Инструменты/GitHubGitHub/darkquasar/azurehunter
Сбор информацииЦифровая криминалистикаБезопасность облачных средРазведка угрозРеагирование на ИнцидентыАнализ Журналов
GitHubdarkquasar/azurehunter

AzureHunter

Модуль PowerShell для облачной криминалистики, предназначенный для запуска сценариев охоты на угрозы по данным из Azure и O365

Репозиторий
795843 лет назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

azurehunter-logo

Модуль PowerShell для запуска сценариев (playbooks) охоты за угрозами на данных из Azure и O365 в целях облачной криминалистики.

ko-fi

CI PS Gallery Coverage Status Documentation Status azurehunter-demo-gif

Начало работы

1. Убедитесь, что у вас есть соответствующие разрешения O365

В Exchange Online требуются следующие роли для получения доступа только для чтения к UnifiedAuditLog: View-Only Audit Logs или Audit Logs.

Эти роли назначаются по умолчанию группе ролей Compliance Management в Центре администрирования Exchange.

ПРИМЕЧАНИЕ: если вы аналитик безопасности, специалист по реагированию на инциденты или охотник за угрозами, и ваша организация НЕ предоставляет вам доступ только для чтения к этим журналам аудита, вам следует серьёзно задуматься о стратегии обнаружения и реагирования!

Дополнительная информация:

  • Как выполнить поиск в журнале аудита с помощью графического интерфейса
  • Управление группами ролей в Exchange Online
  • Как включить UnifiedAuditLog

ПРИМЕЧАНИЕ: ваш администратор может проверить эти требования, выполнив Get-ManagementRoleEntry "*\Search-UnifiedAuditLog" в облачной оболочке вашего арендатора Azure или в локальном экземпляре PowerShell, подключённом к Azure.

2. Убедитесь, что установлен модуль PowerShell ExchangeOnlineManagement v2

Пожалуйста, убедитесь, что у вас установлен ExchangeOnlineManagement (EXOv2). Инструкции можно найти в интернете или обратиться к моей небольшой базе знаний по ссылке the soc analyst scrolls

3. Клонируйте репозиторий или установите AzureHunter из PSGallery

3.1 Клонирование репозитория

  1. Клонируйте этот репозиторий
  2. Импортируйте модуль Import-Module .\source\AzureHunter.psd1

3.2 Установка AzureHunter из PSGallery

Всё, что вам нужно сделать:

root@kitploit:~
Install-Module AzureHunter -Scope CurrentUser
Import-Module AzureHunter

Что такое UnifiedAuditLog?

Единый журнал аудита содержит действия пользователей, групп, приложений, доменов и каталогов, выполняемые в Центре администрирования Microsoft 365 или на портале управления Azure. Полный список событий Azure AD см. в списке RecordTypes.

UnifiedAuditLog — отличный источник облачной криминалистической информации, поскольку он содержит огромное количество данных о различных типах облачных операций, таких как ExchangeItems, SharePoint, Azure AD, OneDrive, управление данными, предотвращение потери данных, оповещения Защитника Windows и события карантина, события аналитики угроз в Microsoft Defender для Office 365, и этот список можно продолжать!

Проверки согласованности данных AzureHunter

AzureHunter реализует полезную логику для обеспечения максимальной плотности журналов при извлечении и экспорте из журналов аудита Azure и O365. Для этого в каждом цикле (пакете) выполняются две различные операции:

  1. Автоматическое уменьшение временного окна: эта проверка гарантирует, что временной интервал уменьшается до оптимального на основе параметра ResultSizeUpperThreshold, который по умолчанию равен 20 тыс. Это означает, что если количество возвращаемых журналов в заданном TimeInterval превышает ResultSizeUpperThreshold, будет выполнена автоматическая корректировка.
  2. Последовательная проверка данных: являются ли возвращаемые индексы записей последовательно допустимыми?

azurehunter-logical-consistency-checks

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

Убедитесь, что вы подключились к ExchangeOnline

Рекомендуется выполнить Connect-ExchangeOnline перед запуском любых команд AzureHunter. Программа проверяет наличие активного удалённого сеанса и пытается подключиться, но некоторые версии PowerShell этого не позволяют, и вам в любом случае нужно сделать это самостоятельно.

Запуск AzureHunter

AzureHunter имеет две основные команды: Search-AzureCloudUnifiedLog и Invoke-AzHunterPlaybook.

Цель Search-AzureCloudUnifiedLog — реализовать сложную логику для обеспечения максимального процента извлечения записей UnifiedAuditLog из Azure. По умолчанию он экспортирует извлечённые и дедуплицированные записи в CSV-файл.

Цель Invoke-AzHunterPlaybook — предоставить гибкий интерфейс для сценариев (playbooks) охоты, хранящихся в папке playbooks. Эти сценарии разработаны так, чтобы каждый мог внести свой вклад со своими аналитическими методами и идеями. На данный момент разработаны только два очень простых сценария: AzHunter.Playbook.Exporter и AzHunter.Playbook.LogonAnalyser. Exporter отвечает за экспорт записей после применения операций дедупликации и сортировки данных. LogonAnalyser находится в бета-режиме и извлекает события, в которых свойство Operations равно UserLoggedIn. Это пример того, что можно сделать с помощью сценариев и как легко их создать.

При запуске Search-AzureCloudUnifiedLog вы можете передать список сценариев для выполнения для каждого пакета журналов. Search-AzureCloudUnifiedLog передаёт пакет сценариям через Invoke-AzHunterPlaybook.

Наконец, Invoke-AzHunterPlaybook можно использовать отдельно. Если у вас есть экспорт записей UnifiedAuditLog, вы можете загрузить их в массив PowerShell и передать этой команде, указав соответствующие сценарии.

Пример 1 | Поиск в Azure UnifiedAuditLog и извлечение записей в CSV-файл (поведение по умолчанию)

root@kitploit:~
Search-AzureCloudUnifiedLog -StartDate "2020-03-06T10:00:00" -EndDate "2020-06-09T12:40:00" -TimeInterval 12 -AggregatedResultsFlushSize 5000 -Verbose

Эта команда:

  • Выполнит поиск данных между датами в StartDate и EndDate
  • Реализует окно в 12 часов между этими датами, которое будет использоваться для сканирования всей длины временного интервала (StartDate --> EndDate). Это окно будет автоматически уменьшаться и корректироваться для обеспечения максимального количества записей в окне, что повышает качество вывода. Временное окно последовательно сдвигается до достижения EndDate.
  • Параметр AggregatedResultsFlushSize определяет пакеты записей, которые будут обрабатываться нижестоящими сценариями. Мы указываем AzureHunter обрабатывать пакет записей, когда общее количество достигает 5000. Таким образом, вы можете получать результаты на лету, не дожидаясь часами, пока огромный диапазон записей будет экспортирован в CSV-файлы.

Пример 2 | Запуск сценариев охоты на CSV-файле

Предположим, что вы экспортировали записи UnifiedAuditLog в CSV-файл; тогда вы можете сделать следующее:

root@kitploit:~
$RecordArray = Import-Csv .\my-exported-records.csv
Invoke-AzHunterPlaybook -Records $RecordArray -Playbooks 'AzHunter.Playbook.UAL.LogonAnalyser'

Вы можете запустить более одного сценария, разделив их запятыми; они будут выполняться последовательно:

root@kitploit:~
$RecordArray = Import-Csv .\my-exported-records.csv
Invoke-AzHunterPlaybook -Records $RecordArray -Playbooks 'AzHunter.Playbook.UAL.Exporter', 'AzHunter.Playbook.UAL.LogonAnalyser'

Пример 3 | Запуск сценария охоты для создания чистого сводного отчёта eDiscovery

Предположим, что вы экспортировали сводный отчёт eDiscovery в CSV-файл; тогда вы можете сделать следующее:

root@kitploit:~
$eDiscoReportFile = .\eDisco-Summary-Report-PersonOfInterest.csv
Invoke-AzHunterPlaybook -Records $eDiscoReportFile -Playbooks 'AzHunter.Playbook.eDisco.SummaryReportCleaner'

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

root@kitploit:~
$eDiscoReportFile = .\eDisco-Summary-Report-PersonOfInterest.csv
Invoke-AzHunterPlaybook -Records $eDiscoReportFile -Playbooks 'AzHunter.Playbook.eDisco.SummaryReportCleaner' -PlayBookParameters @{"CsvRecordsBatchSize" = 700}

Параметр "CsvRecordsBatchSize" указывает сценарию сбрасывать записи на диск пакетами по 700 записей.

Зачем?

После последствий компрометации цепочки поставок SolarWinds появилось множество инструментов, созданных в глубоких кузницах киберкриминалистов и тщательно разработанных кибер-кузнецами-ниндзя. Обычно эти инструменты помогают выполнять облачную криминалистику в Azure. Моё намерение с AzureHunter — не создавать лишний шум в этой переполненной области, однако я столкнулся с необходимостью устранить некоторые пробелы, которые заметил в некоторых инструментах этой области (возможно, я ошибаюсь, так как существует множество инструментов, и я знаю не все из них...):

  1. Инструменты облачной криминалистики Azure обычно не учитывают сложности PowerShell API для UnifiedAuditLog. Этот API очень нестабилен и непоследователен при экспорте больших объёмов данных. Я хотел разработать интерфейс, который был бы (достаточно) отказоустойчивым для решения некоторых из этих проблем, сосредоточившись исключительно на UnifiedAuditLog, поскольку это артефакт Azure, содержащий наиболее релевантные и подробные журналы действий пользователей, приложений и служб.
  2. Инструменты облачной криминалистики Azure обычно не уделяют внимания разработке расширяемых Playbooks. Я хотел придумать простую платформу, которая помогла бы сообществу создавать и делиться новыми сценариями для извлечения различных смыслов из одних и тех же данных.

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

  • CISA Sparrow
  • HAWK
  • Инструмент отчетности CrowdStrike для Azure CRT

Я уверен, что существует более обширный список инструментов, но это те, которые я смог вспомнить. Не стесняйтесь предлагать другие.

Почему PowerShell?

  1. Я не хотел изобретать велосипед
  2. Да, интерфейс PowerShell к UnifiedAuditLog Azure нестабилен, но с точки зрения времени до выхода в production потребовалось бы невероятное количество часов, чтобы добиться того же, написав совершенно новый интерфейс на таких языках, как .NET, Golang или Python, для достижения тех же целей. А пока мир киберзащиты и реагирования не ждёт!

TODO

  • Задать стандартные атрибуты метаданных сценариев, которые должны присутствовать, чтобы AzureHunter мог их использовать.
  • Разрешить сценариям указывать зависимости от других сценариев, чтобы один должен был выполняться перед другим. Сцепление сценариев может дать интересные результаты и избежать дублирования кода.
  • Разработать тесты Pester и результаты Coveralls.
  • Разработать документацию в ReadTheDocs.
  • Разрешить указание сценариев в стандарте правил SIGMA (это может потребовать некоторых PR в репозиторий SIGMA)

Дополнительная информация

Для получения дополнительной информации:

  • AzureHunter.readthedocs.io
  • github.com/darkquasar/AzureHunter
  • ThreatHunterz.com

Благодарности и сторонники

Спасибо всем, кто поддерживает этот и другие проекты с открытым исходным кодом! Вы помогаете таким парням, как я, идти путём кибервоина и предоставлять качественные инструменты сообществу :)

Авторские права

  • Иконка сделана itim2101 с www.flaticon.com
Скачать инструмент