Браузерна автоматизація на базі ШІ здатна перетворити 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 і клієнтським JavaScript його можливості не обмежуються введенням промптів. Така комбінація дає змогу автоматизувати робочі процеси у Graph Explorer, зокрема руйнівні операції Microsoft Graph у тенанті Entra ID.
Передумови
!!! Відтворення цього процесу має відбуватися виключно у тестовому тенанті, який знаходиться у повній власності та який не шкода втратити. Забороняється виконувати деструктивні операції Graph у робочому тенанті або в будь-якому середовищі без наявності чіткого дозволу. !!!
У цій публікації розглядається процес застосування 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, пакетна обробка, видалення, скидання паролів, відкликання сесій і деактивація облікових записів – усіма цими процесами можна було керувати в межах однієї браузерної сесії.







