Автоматизация удаления Entra ID тенанта с помощью ИИ

Браузерная автоматизация на базе ИИ способна превратить Microsoft Graph Explorer в деструктивный интерфейс администрирования Entra ID, если авторизованная учетная запись уже имеет привилегированный доступ. Используя Claude для Chrome, клиентский JavaScript и пакетные запросы Microsoft Graph, такие разрушительные действия, как удаление пользователей, деактивация аккаунтов, сброс паролей, аннулирование сессий и удаление политик условного доступа, можно выполнять непосредственно из сессии браузера.

Как ИИ может автоматизировать удаление тенанта Entra ID через Microsoft Graph, Graph Explorer и браузерную автоматизацию

Эта статья демонстрирует, как браузерная автоматизация с поддержкой ИИ может использоваться для выполнения разрушительных операций Microsoft Graph против тенанта Entra ID, если авторизованный аккаунт обладает необходимыми разрешениями.

Как ИИ автоматизирует Graph Explorer для удаления тенанта Entra ID

Microsoft Graph Explorer – это браузерный инструмент для отправки API-запросов Microsoft Graph к тенанту Entra ID. Обычно он используется администраторами и разработчиками для тестирования вызовов API, проверки ответов и понимания того, какие разрешения требуются. В этой статье инструмент применяется для демонстрации того, как доступ к Microsoft Graph может быть использован для автоматизированных операций удаления тенанта, и почему те же самые рабочие процессы становятся опасными в сочетании с ИИ-ассистентом, способным управлять браузером.

Реальные примеры

Удаление тенанта больше не ограничивается шифрованием серверов с помощью программ-вымогателей.

ИнцидентВывод
Stryker attack (март 2026)Компания Stryker сообщила о кибератаке, нарушившей работу ее среды Microsoft, а позже Sygnia заявила, что злоумышленник использовал Microsoft Intune для стирания внутренней виртуальной инфраструктуры, в частности ноутбуков, мобильных устройств и виртуальных серверов.
Storm-0501 campaign (август 2025)Microsoft задокументировала использование Storm-0501 облачных методов программ-вымогателей после перехода с локального Active Directory в Entra ID. Злоумышленник получил привилегии глобального администратора, повышенный доступ к подписке Azure, а также удалил облачные данные и резервные копии, чтобы сделать невозможным восстановление перед выдвижением требований о выкупе.

Использование Claude для Chrome, Developer Tools и клиентского JavaScript для автоматизации действий в Microsoft Graph

Claude для Chrome интегрирует Claude непосредственно в браузер, где он может взаимодействовать с веб-страницами, проверять элементы UI и помогать выполнять действия через тот же интерфейс, который обычно применяется вручную. В сочетании с инструментами Chrome Developer и клиентским JavaScript это выходит за рамки простого ввода промптов и позволяет автоматизировать рабочие процессы внутри Graph Explorer, включая разрушительные операции Microsoft Graph против тенанта Entra ID.

Предварительные условия

В этой публикации рассматривается процесс применения Claude для Chrome для автоматизации разрушительных операций Entra ID непосредственно в Microsoft Graph Explorer с помощью клиентского JavaScript, что делает рабочий процесс быстрым и не требует ручного вмешательства.

Перед началом работы необходимо открыть Microsoft Graph Explorer, войдя в тестовый тенант с активным сеансом учетной записи с ролью глобального администратора, и оставить Claude for Chrome открытым.

Выполнение контролируемого удаления тенанта в тестовой среде

Перед выполнением любых действий был отправлен запрос к Claude одновременно перечислить четыре категории объектов: всех участников ролей каталога, все регистрации приложений Entra ID, все политики условного доступа и все зарегистрированные устройства. Скорость этого этапа была обусловлена способом получения токенов Graph API. Вместо копирования из инструментов разработчика браузера была модифицирована нативная функция fetch браузера с помощью небольшого перехватчика.

window._originalFetch = window.fetch;

window.fetch = function (...args) {
  const url = args[0];
  const options = args[1] || {};

  if (url.includes("graph.microsoft.com")) {
    const auth = (options.headers || {})["Authorization"];

    if (auth) {
      window._capturedToken = auth;
    }
  }

  return window._originalFetch.apply(this, args);
};

Во время следующего вызова API со стороны Graph Explorer этот перехватчик незаметно извлек токены Bearer прямо из заголовка авторизации запроса. После этого Claude использовал этот токен, чтобы одновременно запустить все четыре запроса на перечисление через Promise.all(). Поэтому, вместо ожидания завершения четырех отдельных вызовов один за другим, они выполнялись параллельно, а результаты поступили почти мгновенно. В частности, для ролей каталога сначала был получен список активных ролей, после чего произошло одновременное скачивание участников каждой отдельной роли, вместо их последовательного перебора. Конечным результатом стала полная инвентаризация всего тенанта за считанные секунды.

Изначально перехваченный токен содержал только разрешения на чтение, поэтому любая операция записи или удаления возвращала ошибку 403. Claude решил эту проблему с помощью встроенной вкладки Modify Permissions в Graph Explorer.

Для каждой операции, требующей более широких разрешений, Claude переходил в Graph Explorer к соответствующим конечным точкам с соответствующими методами HTTP, переключался на вкладку Modify Permissions, где автоматически появлялись необходимые разрешения, и нажимал Consent.

После каждого предоставления разрешения инициировалось новое действие Run Query

Чтобы Graph Explorer выдал новый токен с областями доступа, после чего он снова извлекался тем же перехватчиком. Было получено согласие на следующие разрешения: Application.ReadWrite.All для удаления регистраций приложений, Policy.ReadWrite.ConditionalAccess для удаления политик условного доступа, RoleManagement.ReadWrite.Directory для исключения аккаунтов из ролей каталога и User.DeleteRestore.All для удаления учетных записей пользователей.

После получения токена доступа с необходимыми разрешениями Claude выполнил единый блок JavaScript, который осуществил разрушительные действия параллельно. Для каждого типа объектов применялся одинаковый паттерн: получение полного списка, сопоставление каждого объекта с запросом DELETE, выполнение запросов через Promise.all() и фиксирование кода состояния HTTP для каждого ответа.

Эти журналы аудита Entra ID показывают, как очистка происходит в режиме реального времени.

В 8:06:19 было успешно зафиксировано несколько операций удаления, включая удаление устройств, приложений и служб.

На этом снимке экрана видно, как Claude для Chrome генерирует блок JavaScript справа, тогда как та же самая логика выполняется в инструментах Chrome Developer внутри сессии Graph Explorer. Вывод в консоли показывает, что скрипт нашел 2551 пользователя, пометил 2550 для удаления, исключил одну защищенную учетную запись из удаления. После этого для запросов на удаление начали поступать успешные ответы с кодом HTTP 204.

Здесь изображен этап удаления пользователей в рамках рабочего процесса. В 8:14:05 в разделе Core Directory были зафиксированы многочисленные события удаления пользователя со статусом «успешно».

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

Эти журналы аудита демонстрируют этап безвозвратного удаления. Entra ID зафиксировал многочисленные безвозвратные удаления пользователей в разделах Core Directory и UserManagement, все с пометкой «успешно». Это отличается от предыдущей стадии мягкого удаления. Указанные пользователи были удалены из контейнера объектов, что означает их недоступность для восстановления через стандартный механизм восстановления Entra ID.

Блокировка тенанта

Блокировка тенанта происходит, когда организация теряет административный доступ к своему тенанту Microsoft 365 или Entra ID. Такое случается, если все аккаунты уровня глобального администратора или аналогичные учетные записи удалены, деактивированы, заблокированы взломанной политикой условного доступа, либо защищены настройками MFA, которые больше никто не может пройти. В этот момент тенант может все еще существовать, но компания теряет способность управлять пользователями, приложениями, политиками, устройствами или настройками восстановления.

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

Внутренне Claude использовал тот же клиентский токен доступа из сессии Graph Explorer и сформировал запрос Microsoft Graph $batch из браузера. Вместо ручной отправки отдельного запроса для каждого пользователя, произошло группирование по 20 записей, для которых отправлялись три пакетные операции на каждую группу: одна для сброса пароля, вторая для отзыва активных сессий входа, и третья для отключения аккаунта.

Каждый пакет отправлялся на https://graph.microsoft.com/v1.0/$batch с перехваченным токеном в заголовке Authorization. Это позволило выполнять рабочий процесс быстро и многократно из браузера, тогда как Graph обрабатывал действия по блокировке аккаунтов в массовом порядке.

Данные журналов аудита демонстрируют, что этап деактивации аккаунтов в Entra ID был успешно выполнен. Несколько пользователей были отключены в течение одинакового короткого промежутка времени, и каждое событие записывалось в Core Directory со статусом «успешно». Это подтверждает, что процесс блокировки внес реальные изменения в тестовый тенант.

Здесь показано массовое обновление временной метки StsRefreshTokenValidFrom для многих учетных записей пользователей за очень короткий промежуток времени. Эта активность обновляется во время инициации действия Revoke Refresh Tokens, что аннулирует все существующие токены обновления для соответствующих пользователей и принуждает пройти повторную аутентификацию.

Вывод

Этот пример показывает, насколько мало инструментов нужно, если необходимые разрешения уже предоставлены. С помощью лишь браузера, Graph Explorer, браузерного ИИ-ассистента и JavaScript на стороне браузера удалось автоматизировать разрушительные операции в Entra ID без создания отдельного инструмента, компиляции кода или запуска внешних скриптов.

Ключевая проблема заключается не в том, что ИИ самостоятельно создает новый вектор атаки. Реальная опасность в том, что он ускоряет существующие административные процессы, упрощает их последовательное объединение и делает выполнение таких действий через браузер значительно более доступным.

JavaScript на стороне браузера выполнял роль уровня автоматизации. Он превратил ручные действия в Graph Explorer в повторяющиеся API-вызовы, которые могли выполняться параллельно. Всеми процессами можно было управлять в рамках одной браузерной сессии. К ним относились выявление необходимых разрешений, предоставление согласия и обновление токенов. В той же сессии выполнялись запросы Microsoft Graph, пакетная обработка и удаление данных. Также можно было сбрасывать пароли, отзывать сессии и деактивировать учетные записи.

Получить демо Netwrix Auditor

Подписаться на новости