Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
OutOfTune — Outil d'inscription d'appareil rogue pour Entra ID et Intune MDM. Automatise l'adhésion de l'appareil, l'acquisition de jetons, l'inscription MDM et la vérification OMA-DM pour extraire les politiques, les identifiants Wi-Fi, les scripts et les applications tout en contournant l'accès conditionnel. | Kitploit
Outils/GitHubGitHub/stra-x/outoftune
Authentification et AutorisationEscalade de PrivilègesAnalyse des VulnérabilitésMouvement LatéralAudit de ConfigurationCollecte d'InformationsPost-ExploitationTests d'IntrusionSécurité CloudSécurité MobileGestion des Identités et des Accès (IAM)
31317il y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Red Teaming
GitHubstra-x/outoftune

OutOfTune

Voir le dépôt

À propos

Outil d'inscription d'appareil rogue pour Entra ID et Intune MDM. Automatise l'adhésion de l'appareil, l'acquisition de jetons, l'inscription MDM et la vérification OMA-DM pour extraire les politiques, les identifiants Wi-Fi, les scripts et les applications tout en contournant l'accès conditionnel.

Partager

OutOfTune

Inspiré par l'original Pytune, OutOfTune enregistre un appareil non autorisé dans Entra ID, l'inscrit dans Intune MDM et vérifie l'état de conformité résultant.

Ne prend en charge que les appareils Windows car c'était mon objectif principal, pourrait en ajouter d'autres à l'avenir.

Blog d'accompagnement :

  • 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/

Prérequis

pip install -r requirements.txt

Fonctionnement

La chaîne s'exécute en phases, chacune s'appuyant sur l'état sauvegardé dans chain_state.json.

drs-token  ->  device-join  ->  device-token  ->  mdm-enroll  ->  mdm-checkin
  1. drs-token - obtenir un jeton d'accès DRS (ROPC ou pré-phishé)
  2. device-join - enregistrer un nouvel objet appareil dans Entra ID, obtenir un certificat d'appareil
  3. device-token - s'authentifier en tant qu'appareil principal, obtenir un jeton d'inscription Intune
  4. mdm-enroll - découverte SOAP + inscription WS-Trust, obtenir un certificat client MDM
  5. mdm-checkin - OMA-DM SyncML checkin, récupérer les politiques, éventuellement définir un utilisateur principal

Utilisation

1. Obtenir un jeton DRS

ROPC (identifiants connus) :

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

Jeton pré-obtenu :

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

2. Joindre un appareil à Entra ID

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

Produit <NOM_APPAREIL>.pfx - le certificat d'appareil. Le mot de passe est password.


3. Obtenir un jeton d'appareil principal

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

S'authentifie auprès d'AAD en tant qu'objet appareil (pas en tant qu'utilisateur). Contourne les politiques CA limitées à l'utilisateur.


4. S'inscrire dans Intune MDM

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

Exécute la découverte SOAP contre le point de terminaison MDM, puis soumet une demande d'inscription PKCS10 WS-Trust. Produit <NOM_APPAREIL>_mdm.pfx.

Utilisez --profile pour usurper les attributs matériels/OS de l'appareil envoyés à Intune (voir Profils d'appareil).


5. Checkin 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

Exécute la boucle SyncML OMA-DM contre r.manage.microsoft.com. Intune poussera les profils de configuration, les affectations d'applications et toutes autres politiques ciblant l'appareil. Une fois la boucle terminée, les informations sont automatiquement extraites et affichées.

Si -r est fourni, le jeton d'actualisation est échangé contre un jeton d'accès manage.microsoft.com et envoyé comme Authorization: Bearer dans chaque requête SyncML. Intune lit l'UPN de ce jeton et le définit comme utilisateur principal de l'appareil, ce qui entraîne la liaison des politiques de conformité limitées à l'utilisateur. Vous n'avez besoin d'exécuter qu'une seule fois avec -r pour qu'un utilisateur soit assigné ; tous les checkins ultérieurs peuvent être exécutés sans jeton d'actualisation.

Sans -r, l'appareil n'aura pas d'utilisateur principal.

Après ce premier checkin, si vous ne vous reconnectez pas pendant une période prolongée (généralement 5 à 7 jours), l'appareil pourrait devenir non conforme en raison de la politique par défaut "Is Active". Selon la configuration d'Intune, l'appareil peut entrer dans une période de grâce avant d'être marqué comme non conforme. Si cela se produit, relancez mdm-checkin. Si vous avez déjà utilisé un jeton d'actualisation pour assigner un utilisateur principal, vous n'avez pas besoin de le soumettre à nouveau car l'utilisateur principal est désormais stocké dans le backend Intune.

Options

OptionDescription
--cert FICHIERPFX MDM à utiliser — le nom de l'appareil est dérivé automatiquement du nom de fichier
-r RTJeton d'actualisation utilisateur — définit l'utilisateur principal (nécessaire une seule fois)
-O RÉPSauvegarder les artefacts extraits dans RÉP (wifi/, vpn/, scripts/, certs/, add_values.json, policy_values.json)
--save-syncml RÉPSauvegarder le XML SyncML brut par tour dans RÉP pour une réanalyse hors ligne
-o FICHIERÉcrire la sortie complète de la console dans FICHIER

Informations utiles extraites

CatégorieSauvegardé dansRemarques
Profils Wi-Fiwifi/<SSID>.xml + _psk.txtPSK en clair extrait si présent
Profils VPNvpn/<nom>.xmlProfileXML complet
Charges utiles de certificatscerts/cert_N.b64Blobs PFX chiffrés (bruts, pas encore déchiffrés)
Défis SCEPaffichéNom du modèle CA, URL du défi
Scriptsscripts/<nom>.ps1Scripts PowerShell poussés via OMA-DM
URLs de téléchargement MSIaffichéLiens CDN directs pour les applications LOB
Blob ODJodj_blob.b64 + odj_strings.txtJonction de domaine hors ligne — chaînes lisibles extraites
Valeurs d'ajoutadd_values.jsonToutes les autres commandes Add (certificats racine CA, intégration MDE, configuration de politique)
Valeurs de remplacementpolicy_values.jsonValeurs de la CSP Policy définies par Intune

Analyser les tours SyncML sauvegardés

Réanalysez les tours XML bruts sauvegardés avec --save-syncml sans exécuter un checkin en direct.

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

Vérifier l'état de conformité

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

Frappe un PRT à partir du certificat d'appareil, l'échange contre un jeton IWService, et interroge IWService/Devices pour l'état de conformité de l'appareil et les éventuelles règles de non-conformité.

Utilisez -r avec un jeton d'actualisation de session MFA si le CA du locataire exige MFA pour la ressource d'inscription.


Télécharger les applications et scripts

Récupère les applications Win32 et les scripts PowerShell assignés à l'appareil via le IME SideCarGateway. Utilise uniquement le certificat client MDM — aucun jeton utilisateur requis.

python OutOfTune.py download-apps
python OutOfTune.py download-apps --cert CORP-LAPTOP-01_mdm.pfx
  • Les scripts PowerShell sont sauvegardés dans scripts/<PolicyId>.ps1
  • Les applications Win32 sont téléchargées depuis le CDN, déchiffrées et extraites dans apps/<NomApp>/

Télécharger les scripts de correction

Récupère les scripts de correction proactive (paires détection + correction) assignés à l'appareil.

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

Chaque politique est sauvegardée dans remediations/<PolicyId>/ contenant :

  • detection.ps1 — le script de détection
  • remediation.ps1 — le script de correction
  • params.json — ID de la politique et éventuels paramètres du script

Nettoyage

Si la suppression de l'appareil d'Intune échoue, supprimez-le d'Entra. Il entrera alors dans une période de grâce dans Intune et sera automatiquement réévalué ultérieurement.

Supprimer l'appareil d'Intune :

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

Supprimer l'objet appareil d'Entra ID :

python OutOfTune.py entra-delete

Télécharger l’outil