Az - OAuth Apps Phishing
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Azure aplikacije su konfigurisane sa dozvolama koje će moći da koriste kada korisnik pristane na aplikaciju (kao što su enumeracija direktorijuma, pristup datotekama ili izvršavanje drugih radnji). Imajte na umu da aplikacija deluje u ime korisnika, tako da čak i ako aplikacija može tražiti administratorske dozvole, ako korisnik koji pristaje na to nema tu dozvolu, aplikacija neće moći da izvršava administratorske radnje.
Podrazumevano, svaki korisnik može dati pristanak aplikacijama, iako se ovo može konfigurisati tako da korisnici mogu pristati samo na aplikacije od verifikovanih izdavača za odabrane dozvole ili čak ukloniti dozvolu korisnicima da pristaju na aplikacije.
Ako korisnici ne mogu da pristanu, administratori kao što su GA
, Administrator aplikacije
ili Administrator Cloud aplikacije
mogu pristati na aplikacije koje korisnici mogu koristiti.
Štaviše, ako korisnici mogu pristati samo na aplikacije koje koriste niskorizične dozvole, ove dozvole su podrazumevano openid, profil, email, User.Read i offline_access, iako je moguće dodati više na ovu listu.
I ako mogu pristati na sve aplikacije, mogu pristati na sve aplikacije.
Neautentifikovani: Iz spoljnog naloga kreirati aplikaciju sa niskorizičnim dozvolama User.Read
i User.ReadBasic.All
, na primer, prevariti korisnika, i moći ćete da pristupite informacijama iz direktorijuma.
Ovo zahteva da prevareni korisnik bude u mogućnosti da prihvati OAuth aplikacije iz spoljnog tenanta
Ako je prevareni korisnik neki administrator koji može pristati na bilo koju aplikaciju sa bilo kojim dozvolama, aplikacija bi takođe mogla tražiti privilegovane dozvole
Autentifikovani: Nakon što je kompromitovan glavni korisnik sa dovoljno privilegija, kreirati aplikaciju unutar naloga i prevariti nekog privilegovanog korisnika koji može prihvatiti privilegovane OAuth dozvole.
U ovom slučaju već možete pristupiti informacijama iz direktorijuma, tako da dozvola User.ReadBasic.All
više nije zanimljiva.
Verovatno ste zainteresovani za dozvole koje zahtevaju da ih administrator odobri, jer običan korisnik ne može dati OAuth aplikacijama bilo koju dozvolu, zato treba da prevarite samo te korisnike (više o tome koje uloge/dozvole daju ovu privilegiju kasnije)
Imajte na umu da morate izvršiti ovu komandu iz naloga unutar tenanta, ne možete pronaći ovu konfiguraciju tenanta iz spoljnog. Sledeći CLI može vam pomoći da razumete dozvole korisnika:
Korisnici mogu da daju saglasnost za sve aplikacije: Ako unutar permissionGrantPoliciesAssigned
pronađete: ManagePermissionGrantsForSelf.microsoft-user-default-legacy
tada korisnici mogu da prihvate svaku aplikaciju.
Korisnici mogu da daju saglasnost za aplikacije od verifikovanih izdavača ili vaše organizacije, ali samo za dozvole koje odaberete: Ako unutar permissionGrantPoliciesAssigned
pronađete: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
tada korisnici mogu da prihvate svaku aplikaciju.
Onemogućite saglasnost korisnika: Ako unutar permissionGrantPoliciesAssigned
možete pronaći samo: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-chat
i ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
tada korisnici ne mogu dati saglasnost.
Moguće je pronaći značenje svake od komentarisane politika u:
Proverite korisnike koji se smatraju administratorima aplikacija (mogu prihvatiti nove aplikacije):
Napad se sastoji od nekoliko koraka koji ciljaju generičku kompaniju. Evo kako bi to moglo izgledati:
Registracija Domen i Hosting Aplikacije: Napadač registruje domen koji podseća na pouzdanu stranicu, na primer, "safedomainlogin.com". Pod ovim domenom se kreira poddomen (npr. "companyname.safedomainlogin.com") za hosting aplikacije dizajnirane da prikupi autorizacione kodove i zatraži pristupne tokene.
Registracija Aplikacije u Azure AD: Napadač zatim registruje Multi-Tenant Aplikaciju u svom Azure AD Tenant-u, nazivajući je po ciljanom preduzeću kako bi izgledala legitimno. Konfiguriše URL za preusmeravanje aplikacije da upućuje na poddomen koji hostuje zlonamernu aplikaciju.
Postavljanje Dozvola: Napadač postavlja aplikaciju sa raznim API dozvolama (npr. Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
). Ove dozvole, kada ih korisnik odobri, omogućavaju napadaču da izvuče osetljive informacije u ime korisnika.
Distribucija Zlonamernih Linkova: Napadač kreira link koji sadrži ID klijenta zlonamerne aplikacije i deli ga sa ciljnim korisnicima, obmanjujući ih da daju saglasnost.
Registrujte novu aplikaciju. Može biti samo za trenutni direktorijum ako koristite korisnika iz napadnutog direktorijuma ili za bilo koji direktorijum ako je ovo spoljašnji napad (kao na sledećoj slici).
Takođe postavite redirect URI na očekivani URL gde želite da primite kod za dobijanje tokena (http://localhost:8000/callback
po defaultu).
Zatim kreirajte tajnu aplikacije:
Izaberite API dozvole (npr. Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
)
Izvršite veb stranicu (azure_oauth_phishing_example) koja traži dozvole:
Pošaljite URL žrtvi
U ovom slučaju http://localhost:8000
Žrtve treba da prihvate obaveštenje:
Koristite pristupni token za pristup traženim dozvolama:
365-Stealer: Proverite https://www.alteredsecurity.com/post/introduction-to-365-stealer da biste saznali kako da ga konfigurišete.
U zavisnosti od traženih dozvola, možda ćete moći da pristupite različitim podacima o zakupcu (lista korisnika, grupa... ili čak da modifikujete podešavanja) i informacijama o korisniku (fajlovi, beleške, e-mailovi...). Zatim, možete koristiti ove dozvole da izvršite te radnje.
Proverite sekcije Aplikacije i Servisni Principal na stranici:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)