# Az - Persistence {{#include ../../../banners/hacktricks-training.md}} ### Consent Illicite Par défaut, tout utilisateur peut enregistrer une application dans Azure AD. Vous pouvez donc enregistrer une application (uniquement pour le locataire cible) qui nécessite des autorisations à fort impact avec le consentement de l'administrateur (et l'approuver si vous êtes l'administrateur) - comme envoyer des mails au nom d'un utilisateur, gestion des rôles, etc. Cela nous permettra d'**exécuter des attaques de phishing** qui seraient très **fructueuses** en cas de succès. De plus, vous pourriez également accepter cette application avec votre utilisateur comme moyen de maintenir l'accès dessus. ### Applications et Principaux de Service Avec les privilèges d'Administrateur d'Application, GA ou un rôle personnalisé avec des permissions microsoft.directory/applications/credentials/update, nous pouvons ajouter des identifiants (secret ou certificat) à une application existante. Il est possible de **cibler une application avec des autorisations élevées** ou **d'ajouter une nouvelle application** avec des autorisations élevées. Un rôle intéressant à ajouter à l'application serait le **rôle d'administrateur d'authentification privilégiée** car il permet de **réinitialiser le mot de passe** des Administrateurs Globaux. Cette technique permet également de **contourner la MFA**. ```powershell $passwd = ConvertTo-SecureString "J~Q~QMt_qe4uDzg53MDD_jrj_Q3P.changed" -AsPlainText -Force $creds = New-Object System.Management.Automation.PSCredential("311bf843-cc8b-459c-be24-6ed908458623", $passwd) Connect-AzAccount -ServicePrincipal -Credential $credentials -Tenant e12984235-1035-452e-bd32-ab4d72639a ``` - Pour l'authentification basée sur des certificats ```powershell Connect-AzAccount -ServicePrincipal -Tenant -CertificateThumbprint -ApplicationId ``` ### Fédération - Certificat de signature de jeton Avec des **privileges DA** sur AD sur site, il est possible de créer et d'importer de **nouveaux certificats de signature de jeton** et de **décryptage de jeton** qui ont une très longue validité. Cela nous permettra de **nous connecter en tant que n'importe quel utilisateur** dont nous connaissons l'ImuutableID. **Exécutez** la commande ci-dessous en tant que **DA sur le(s) serveur(s) ADFS** pour créer de nouveaux certificats (mot de passe par défaut 'AADInternals'), les ajouter à ADFS, désactiver le renouvellement automatique et redémarrer le service : ```powershell New-AADIntADFSSelfSignedCertificates ``` Ensuite, mettez à jour les informations du certificat avec Azure AD : ```powershell Update-AADIntADFSFederationSettings -Domain cyberranges.io ``` ### Fédération - Domaine de confiance Avec des privilèges GA sur un locataire, il est possible d'**ajouter un nouveau domaine** (doit être vérifié), de configurer son type d'authentification en Fédéré et de configurer le domaine pour **faire confiance à un certificat spécifique** (any.sts dans la commande ci-dessous) et à l'émetteur : ```powershell # Using AADInternals ConvertTo-AADIntBackdoor -DomainName cyberranges.io # Get ImmutableID of the user that we want to impersonate. Using Msol module Get-MsolUser | select userPrincipalName,ImmutableID # Access any cloud app as the user Open-AADIntOffice365Portal -ImmutableID qIMPTm2Q3kimHgg4KQyveA== -Issuer "http://any.sts/B231A11F" -UseBuiltInCertificate -ByPassMFA$true ``` ## Références - [https://aadinternalsbackdoor.azurewebsites.net/](https://aadinternalsbackdoor.azurewebsites.net/) {{#include ../../../banners/hacktricks-training.md}}