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

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

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

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

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

Категории

Все категории
Loading categories
OutOfTune — Инструмент для регистрации неавторизованных устройств в Entra ID и Intune MDM. Автоматизирует присоединение устройства, получение токена, регистрацию в MDM и проверку OMA-DM для извлечения политик, учетных данных Wi-Fi, скриптов и приложений, обходя условный доступ. | Kitploit
Инструменты/GitHubGitHub/stra-x/outoftune
Аутентификация и авторизацияПовышение привилегийАнализ уязвимостейЛатеральное перемещениеАудит конфигурацииСбор информацииПост-эксплуатацияТестирование на ПроникновениеБезопасность облачных средМобильная безопасностьУправление идентификацией и доступом (IAM)
313176 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Red Teaming
GitHubstra-x/outoftune

OutOfTune

Инструмент для регистрации неавторизованных устройств в Entra ID и Intune MDM. Автоматизирует присоединение устройства, получение токена, регистрацию в MDM и проверку OMA-DM для извлечения политик, учетных данных Wi-Fi, скриптов и приложений, обходя условный доступ.

Репозиторий
Поделиться

OutOfTune

Вдохновлённый оригинальным Pytune, OutOfTune регистрирует подставное устройство в Entra ID, записывает его в Intune MDM и проверяет полученное состояние соответствия политикам.

Поддерживаются только устройства Windows — это была моя основная цель, возможно, в будущем добавлю другие.

Сопровождающие статьи в блоге:

  • https://stra-x.github.io/Re-Engineering-Pytune-Rogue-devices-in-the-age-of-conditional-access/
  • https://stra-x.github.io/Re-Engineering-Pytune-Rogue-devices-in-the-age-of-conditional-access-pt-2/

Требования

pip install -r requirements.txt

Как это работает

Цепочка выполняется по фазам, каждая из которых опирается на состояние, сохранённое в chain_state.json.

drs-token  ->  device-join  ->  device-token  ->  mdm-enroll  ->  mdm-checkin
  1. drs-token — получение токена доступа DRS (ROPC или заранее перехваченный)
  2. device-join — регистрация нового объекта устройства в Entra ID, получение сертификата устройства
  3. device-token — аутентификация от имени субъекта устройства, получение токена регистрации Intune
  4. mdm-enroll — SOAP-обнаружение + WS-Trust регистрация, получение клиентского сертификата MDM
  5. mdm-checkin — OMA-DM SyncML проверка связи, загрузка политик, опционально назначение основного пользователя

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

1. Получить токен DRS

ROPC (учётные данные известны):

python OutOfTune.py drs-token -u [email protected] -p Password1!

Заранее полученный токен:

python OutOfTune.py drs-token -u [email protected] -t <drs_access_token>

2. Присоединить устройство к Entra ID

python OutOfTune.py device-join
python OutOfTune.py device-join -n CORP-LAPTOP-01

Выдаёт <DEVICENAME>.pfx — сертификат устройства. Пароль: password.


3. Получить токен субъекта устройства

python OutOfTune.py device-token
python OutOfTune.py device-token --cert CORP-LAPTOP-01.pfx

Аутентифицируется в AAD как объект устройства (не как пользователь). Обходит политики условного доступа, ограниченные пользователем.


4. Зарегистрироваться в Intune MDM

python OutOfTune.py mdm-enroll
python OutOfTune.py mdm-enroll --profile profiles/dell_win11_ent.json

Выполняет SOAP-обнаружение конечной точки MDM, затем отправляет запрос на регистрацию WS-Trust PKCS10. Выдаёт <DEVICENAME>_mdm.pfx.

Используйте --profile, чтобы подделать аппаратные/ОС атрибуты устройства, отправляемые в Intune (см. Профили устройств).


5. Проверка связи OMA-DM

python OutOfTune.py mdm-checkin
python OutOfTune.py mdm-checkin -r <refresh_token>
python OutOfTune.py mdm-checkin --cert CORP-LAPTOP-01_mdm.pfx
python OutOfTune.py mdm-checkin -O ./output
python OutOfTune.py mdm-checkin -O ./output --save-syncml ./output/raw

Запускает цикл OMA-DM SyncML против r.manage.microsoft.com. Intune отправляет конфигурационные профили, назначения приложений и любые другие политики, нацеленные на устройство. После завершения цикла извлечённая информация автоматически отображается.

Если указан -r, токен обновления обменивается на токен доступа manage.microsoft.com и отправляется как Authorization: Bearer в каждом запросе SyncML. Intune читает UPN из этого токена и назначает его в качестве основного пользователя устройства, что приводит к привязке политик соответствия, ограниченных пользователем. Достаточно выполнить один раз с -r, чтобы назначить пользователя; все последующие проверки связи можно запускать без токена обновления.

Без -r у устройства не будет основного пользователя.

После первой проверки связи, если вы не будете проверяться в течение длительного времени (обычно 5–7 дней), устройство может перестать соответствовать политикам из-за политики по умолчанию "Is Active". В зависимости от конфигурации Intune устройство может войти в льготный период перед тем, как быть помеченным как несоответствующее. Если это произойдёт, повторно запустите mdm-checkin. Если вы ранее использовали токен обновления для назначения основного пользователя, повторно отправлять его не нужно, так как основной пользователь теперь хранится в бэкенде Intune.

Флаги

ФлагОписание
--cert FILEMDM PFX для использования — имя устройства определяется автоматически из имени файла
-r RTТокен обновления пользователя — устанавливает основного пользователя (требуется только один раз)
-O DIRСохранить извлечённые артефакты в DIR (wifi/, vpn/, scripts/, certs/, add_values.json, policy_values.json)
--save-syncml DIRСохранять необработанный SyncML XML для каждого раунда в DIR для повторного разбора в автономном режиме
-o FILEЗаписать полный вывод консоли в FILE

Извлечённая полезная информация

КатегорияСохраняется вПримечания
Wi-Fi профилиwifi/<SSID>.xml + _psk.txtПростой текст PSK извлекается, если присутствует
VPN профилиvpn/<name>.xmlПолный ProfileXML
Полезные нагрузки сертификатовcerts/cert_N.b64Зашифрованные PFX-блоб (необработанные, ещё не расшифрованные)
SCEP-запросыотображаютсяИмя модели ЦС, URL запроса
Скриптыscripts/<name>.ps1PowerShell-скрипты, отправленные через OMA-DM
URL-адреса загрузки MSIотображаютсяПрямые ссылки CDN для LOB-приложений
ODJ-блобodj_blob.b64 + odj_strings.txtOffline Domain Join — извлечены читаемые строки
Значения Addadd_values.jsonВсе остальные команды Add (корневые сертификаты ЦС, ввод MDE, конфигурация политик)
Значения Replacepolicy_values.jsonЗначения CSP политик, установленные Intune

Разбор сохранённых раундов SyncML

Повторный разбор необработанных XML-раундов, сохранённых с --save-syncml, без запуска живой проверки связи.

python OutOfTune.py parse-checkin --dir ./output/raw -O ./output2
python OutOfTune.py parse-checkin --file ./output/raw/round_001.xml -O ./output2

Проверка состояния соответствия

python OutOfTune.py check -u [email protected] -r <refresh_token>
python OutOfTune.py check -u [email protected] -p Password1!

Выпускает PRT из сертификата устройства, обменивает его на токен IWService и запрашивает IWService/Devices для получения состояния соответствия устройства и любых правил несоответствия.

Используйте -r с токеном обновления MFA-сессии, если арендатор CA требует MFA для ресурса регистрации.


Загрузка приложений и скриптов

Загружает Win32-приложения и PowerShell-скрипты, назначенные устройству, через IME SideCarGateway. Использует только клиентский сертификат MDM — токен пользователя не требуется.

python OutOfTune.py download-apps
python OutOfTune.py download-apps --cert CORP-LAPTOP-01_mdm.pfx
  • PowerShell-скрипты сохраняются в scripts/<PolicyId>.ps1
  • Win32-приложения загружаются с CDN, расшифровываются и извлекаются в apps/<AppName>/

Загрузка скриптов исправления

Загружает скрипты упреждающего исправления (пары обнаружения + исправления), назначенные устройству.

python OutOfTune.py get-remediations
python OutOfTune.py get-remediations --cert CORP-LAPTOP-01_mdm.pfx

Каждая политика сохраняется в remediations/<PolicyId>/, содержащий:

  • detection.ps1 — скрипт обнаружения
  • remediation.ps1 — скрипт исправления
  • params.json — идентификатор политики и любые параметры скрипта

Очистка

Если удаление устройства из Intune не удаётся, удалите его из Entra. После этого оно перейдёт в льготный период в Intune и будет автоматически удалено позже.

Удалить устройство из Intune:

python OutOfTune.py retire-intune -u [email protected] -r <refresh_token>

Удалить объект устройства из Entra ID:

python OutOfTune.py entra-delete

Проверка прогресса цепочки

python OutOfTune.py status

Профили устройств

Скачать инструмент