# Az - Persistence

{{#include ../../../banners/hacktricks-training.md}}

### OAuth Application

Podrazumevano, svaki korisnik može registrovati aplikaciju u Entra ID. Tako možete registrovati aplikaciju (samo za ciljni tenant) koja zahteva visoke dozvole sa odobrenjem administratora (odobrite je ako ste administrator) - kao što je slanje maila u ime korisnika, upravljanje rolama itd. Ovo će nam omogućiti da **izvršimo phishing napade** koji bi bili veoma **plodonosni** u slučaju uspeha.

Pored toga, mogli biste takođe prihvatiti tu aplikaciju sa vašim korisnikom kao način da zadržite pristup nad njom.

### Applications and Service Principals

Sa privilegijama Administratora aplikacija, GA ili prilagođenom ulogom sa microsoft.directory/applications/credentials/update dozvolama, možemo dodati akreditive (tajni ključ ili sertifikat) postojećoj aplikaciji.

Moguće je **ciljati aplikaciju sa visokim dozvolama** ili **dodati novu aplikaciju** sa visokim dozvolama.

Zanimljiva uloga koju bi trebalo dodati aplikaciji bila bi **Uloga privilegovanog administratora za autentifikaciju** jer omogućava **resetovanje lozinke** Globalnim Administratorima.

Ova tehnika takođe omogućava **obići MFA**.
```bash
$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
```
- Za autentifikaciju zasnovanu na sertifikatima
```bash
Connect-AzAccount -ServicePrincipal -Tenant <TenantId> -CertificateThumbprint <Thumbprint> -ApplicationId <ApplicationId>
```
### Federation - Token Signing Certificate

Sa **DA privilegijama** na on-prem AD, moguće je kreirati i uvesti **nove Token signing** i **Token Decrypt certifikate** koji imaju veoma dugu validnost. Ovo će nam omogućiti da **se prijavimo kao bilo koji korisnik** čiji ImuutableID znamo.

**Pokrenite** sledeću komandu kao **DA na ADFS serveru(ima)** da kreirate nove certifikate (podrazumevani lozinka 'AADInternals'), dodajte ih u ADFS, onemogućite automatsko obnavljanje i restartujte servis:
```bash
New-AADIntADFSSelfSignedCertificates
```
Zatim, ažurirajte informacije o sertifikatu sa Azure AD:
```bash
Update-AADIntADFSFederationSettings -Domain cyberranges.io
```
### Federation - Trusted Domain

Sa GA privilegijama na tenant-u, moguće je **dodati novu domenu** (mora biti verifikovana), konfigurisati njen tip autentifikacije na Federated i konfigurisati domenu da **veruje određenom sertifikatu** (any.sts u sledećoj komandi) i izdavaču:
```bash
# 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
```
## Reference

- [https://aadinternalsbackdoor.azurewebsites.net/](https://aadinternalsbackdoor.azurewebsites.net/)

{{#include ../../../banners/hacktricks-training.md}}
