Az - Unauthenticated Enum & Initial Entry

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Azure Tenant

Enumeracija Tenanta

Postoje neke javne Azure API-je za koje samo poznavanje domena tenanta napadaču omogućava da pretražuje više informacija o njemu. Možete direktno pretraživati API ili koristiti PowerShell biblioteku AADInternals:

APIInformacijeFunkcija AADInternals

login.microsoftonline.com/<domain>/.well-known/openid-configuration

Informacije za prijavljivanje, uključujući ID tenanta

Get-AADIntTenantID -Domain <domain>

autodiscover-s.outlook.com/autodiscover/autodiscover.svc

Svi domeni tenanta

Get-AADIntTenantDomains -Domain <domain>

login.microsoftonline.com/GetUserRealm.srf?login=<UserName>

Informacije za prijavljivanje tenanta, uključujući ime tenanta i domen tip autentifikacije. Ako je NameSpaceType Managed, to znači da se koristi AzureAD.

Get-AADIntLoginInformation -UserName <UserName>

login.microsoftonline.com/common/GetCredentialType

Informacije za prijavljivanje, uključujući informacije o Desktop SSO-u

Get-AADIntLoginInformation -UserName <UserName>

Možete pretražiti sve informacije o Azure tenantu sa samo jednom komandom AADInternals biblioteke:

Invoke-AADIntReconAsOutsider -DomainName corp.onmicrosoft.com | Format-Table

Primer izlaza informacija o Azure zakupcu:

Tenant brand:       Company Ltd
Tenant name:        company
Tenant id:          1937e3ab-38de-a735-a830-3075ea7e5b39
DesktopSSO enabled: True

Name                           DNS   MX    SPF  Type      STS
----                           ---   --    ---  ----      ---
company.com                   True  True  True  Federated sts.company.com
company.mail.onmicrosoft.com  True  True  True  Managed
company.onmicrosoft.com       True  True  True  Managed
int.company.com              False False False  Managed

Moguće je posmatrati detalje o imenu zakupca, ID-u i imenu "brenda". Dodatno, prikazan je status Desktop Single Sign-On (SSO), poznat i kao Seamless SSO. Kada je omogućena ova funkcija olakšava određivanje prisustva (enumeracije) određenog korisnika unutar ciljne organizacije.

Osim toga, izlaz prikazuje imena svih verifikovanih domena povezanih sa ciljnim zakupcem, zajedno sa njihovim odgovarajućim tipovima identiteta. U slučaju federiranih domena, potpuno kvalifikovano ime domena (FQDN) identitetskog provajdera koji se koristi, obično ADFS server, takođe je otkriveno. Kolona "MX" specificira da li se e-pošta usmerava ka Exchange Online-u, dok kolona "SPF" označava Exchange Online kao pošiljaoca e-pošte. Važno je napomenuti da trenutna funkcija izviđanja ne analizira "include" izjave unutar SPF zapisa, što može rezultirati lažnim negativima.

Enumeracija Korisnika

Moguće je proveriti da li korisničko ime postoji unutar zakupca. To uključuje i gostujuće korisnike, čije je korisničko ime u formatu:

<email>#EXT#@<tenant name>.onmicrosoft.com

Email adresa je korisnikova email adresa gde se simbol "@" zamenjuje sa donjom crtom "_".

Sa AADInternals, možete lako proveriti da li korisnik postoji ili ne:

# Check does the user exist
Invoke-AADIntUserEnumerationAsOutsider -UserName "user@company.com"

Neautentifikovano nabrajanje i početni ulaz

U ovom scenariju, napadač ima pristup Azure Workspace-u, ali nije autentifikovan. Ovo može biti zbog neispravne konfiguracije pristupa ili propusta u politikama bezbednosti. Napadač može iskoristiti ovu situaciju za nabrajanje resursa i eventualno dobiti početni ulaz u sistem.

Koraci napada:

  1. Nabrajanje resursa: Napadač može koristiti alate poput az komandne linije ili Azure Portal-a za nabrajanje resursa kao što su virtuelne mašine, skladišta podataka, baze podataka i druge resurse.

  2. Identifikacija osetljivih informacija: Analizom nabrajanih resursa, napadač može identifikovati osetljive informacije kao što su lozinke, ključevi ili druge kritične informacije.

  3. Eksploatacija propusta: Na osnovu identifikovanih osetljivih informacija, napadač može iskoristiti propuste u konfiguraciji ili politikama bezbednosti da bi dobio početni ulaz u sistem.

Mere zaštite:

  • Konfigurisati pravilno pristupne kontrole i politike bezbednosti.

  • Redovno proveravati i nadgledati aktivnosti u Azure Workspace-u radi otkrivanja neobičnih ili sumnjivih aktivnosti.

  • Koristiti višefaktorsku autentifikaciju i snažne lozinke za dodatni sloj sigurnosti.

UserName         Exists
--------         ------
user@company.com True

Možete takođe koristiti tekstualni fajl koji sadrži jednu email adresu po redu:

user@company.com
user2@company.com
admin@company.com
admin2@company.com
external.user_gmail.com#EXT#@company.onmicrosoft.com
external.user_outlook.com#EXT#@company.onmicrosoft.com
# Invoke user enumeration
Get-Content .\users.txt | Invoke-AADIntUserEnumerationAsOutsider -Method Normal

Postoje tri različite metode enumeracije koje možete odabrati:

MetodaOpis

Normalna

Ovo se odnosi na GetCredentialType API pomenut gore. Podrazumevana metoda.

Prijava

Ova metoda pokušava da se prijavi kao korisnik. Napomena: upiti će biti zabeleženi u logovima prijava.

Autologon

Ova metoda pokušava da se prijavi kao korisnik putem autologon endpointa. Upiti nisu zabeleženi u logovima prijava! Stoga dobro funkcioniše i za napade poput prskanja lozinki i napada grubom silom.

Nakon otkrivanja validnih korisničkih imena možete dobiti informacije o korisniku sa:

Get-AADIntLoginInformation -UserName root@corp.onmicrosoft.com

Skripta o365creeper takođe vam omogućava da otkrijete da li je email validan.

# Put in emails.txt emails such as:
# - root@corp.onmicrosoft.com
python.exe .\o365creeper\o365creeper.py -f .\emails.txt -o validemails.txt

Enumeracija korisnika putem Microsoft Teams-a

Još jedan dobar izvor informacija je Microsoft Teams.

API Microsoft Teams-a omogućava pretragu korisnika. Konkretno, endpointovi "externalsearchv3" i "searchUsers" mogu se koristiti za zahtevanje opštih informacija o korisničkim nalozima u Teams-u.

Na osnovu odgovora API-ja moguće je razlikovati nepostojeće korisnike od postojećih korisnika koji imaju važeću pretplatu na Teams.

Skripta TeamsEnum može se koristiti za proveru datog skupa korisničkih imena prema Teams API-ju.

python3 TeamsEnum.py -a password -u <username> -f inputlist.txt -o teamsenum-output.json

Neautentifikovano nabrajanje i početni ulaz

U ovom scenariju, napadač će izvršiti nabrajanje resursa bez autentifikacije i pokušati da pristupi Azure okruženju.

Koraci

  1. Nabrajanje resursa bez autentifikacije: Napadač može koristiti alate poput azurerm_resource_group i azurerm_virtual_network za nabrajanje resursa bez potrebe za autentifikacijom.

  2. Pokušaj pristupa Azure okruženju: Nakon uspešnog nabrajanja resursa, napadač može pokušati da pristupi Azure okruženju korišćenjem dobijenih informacija.

Zaštita

  • Konfigurišite pravilno pristupne kontrole i autentifikaciju kako biste sprečili neovlašćeni pristup resursima.

  • Redovno pratite i analizirajte logove kako biste otkrili sumnjive aktivnosti.

  • Edukujte osoblje o bezbednosnim praksama i upozorite ih na potencijalne pretnje.

[-] user1@domain - Target user not found. Either the user does not exist, is not Teams-enrolled or is configured to not appear in search results (personal accounts only)
[+] user2@domain - User2 | Company (Away, Mobile)
[+] user3@domain - User3 | Company (Available, Desktop)

Takođe je moguće nabrojati informacije o dostupnosti postojećih korisnika kao što su:

  • Dostupan

  • Odsutan

  • Nemoj ometati

  • Zauzet

  • Van mreže

Ako je konfigurisana poruka van kancelarije, takođe je moguće preuzeti poruku pomoću TeamsEnum-a. Ako je navedena izlazna datoteka, poruke van kancelarije automatski se čuvaju u JSON datoteci:

jq . teamsenum-output.json

Neautentifikovano nabrajanje i početni ulaz

U ovom scenariju, napadač ima pristup Azure Workspace-u, ali nije autentifikovan. Korišćenjem različitih tehnika, napadač može da izvrši nabrajanje resursa, kao i da pronađe početni ulaz za dalje istraživanje i napade.

Nabrajanje resursa

Napadač može koristiti alate poput az komandne linije ili Azure portal-a za nabrajanje resursa kao što su virtuelne mašine, skladišta podataka, baze podataka i druge komponente sistema.

Pronalaženje početnog ulaza

Korišćenjem informacija dobijenih tokom nabrajanja resursa, napadač može identifikovati potencijalne ranjivosti ili slabosti sistema koje mogu biti iskorišćene za dalje napade. Na primer, otkrivanje neažuriranih softverskih komponenti ili loše konfigurisanih resursa može omogućiti napadaču da pristupi osetljivim podacima ili da izvrši druge vrste napada.

{
"email": "user2@domain",
"exists": true,
"info": [
{
"tenantId": "[REDACTED]",
"isShortProfile": false,
"accountEnabled": true,
"featureSettings": {
"coExistenceMode": "TeamsOnly"
},
"userPrincipalName": "user2@domain",
"givenName": "user2@domain",
"surname": "",
"email": "user2@domain",
"tenantName": "Company",
"displayName": "User2",
"type": "Federated",
"mri": "8:orgid:[REDACTED]",
"objectId": "[REDACTED]"
}
],
"presence": [
{
"mri": "8:orgid:[REDACTED]",
"presence": {
"sourceNetwork": "Federated",
"calendarData": {
"outOfOfficeNote": {
"message": "Dear sender. I am out of the office until March 23rd with limited access to my email. I will respond after my return.Kind regards, User2",
"publishTime": "2023-03-15T21:44:42.0649385Z",
"expiry": "2023-04-05T14:00:00Z"
},
"isOutOfOffice": true
},
"capabilities": [
"Audio",
"Video"
],
"availability": "Away",
"activity": "Away",
"deviceType": "Mobile"
},
"etagMatch": false,
"etag": "[REDACTED]",
"status": 20000
}
]
}

Azure Usluge

Sada kada znamo domene koje Azure zakupac koristi, vreme je da pokušamo da pronađemo izložene Azure usluge.

Možete koristiti metod iz MicroBurst za ovaj cilj. Ova funkcija će pretražiti osnovno ime domena (i nekoliko permutacija) u nekoliko Azure servisnih domena:

Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose
Invoke-EnumerateAzureSubDomains -Base corp -Verbose

Otvoreno skladištenje

Možete otkriti otvoreno skladištenje pomoću alata poput InvokeEnumerateAzureBlobs.ps1 koji će koristiti datoteku Microburst/Misc/permitations.txt za generisanje permutacija (vrlo jednostavno) kako bi pokušao pronaći otvorene skladišne naloge.

Import-Module .\MicroBurst\MicroBurst.psm1
Invoke-EnumerateAzureBlobs -Base corp
[...]
https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list
[...]

# Access https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list
# Check: <Name>ssh_info.json</Name>
# Access then https://corpcommon.blob.core.windows.net/secrets/ssh_info.json

SAS URL-ovi

URL deljenog pristupa (SAS) je URL koji omogućava pristup određenom delu skladišnog naloga (može biti cela kontejner, datoteka...) sa određenim dozvolama (čitanje, pisanje...) nad resursima. Ako pronađete procureli URL, možete pristupiti osetljivim informacijama, izgledaju ovako (ovo je za pristup kontejneru, ako je samo davao pristup datoteci, putanja URL-a će takođe sadržati tu datoteku):

https://<ime_skladišnog_naloga>.blob.core.windows.net/novikontejner?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D

Koristite Storage Explorer za pristup podacima

Kompromitovanje Kredencijala

Fišing

Prskanje lozinki / Brute-Force

Az - Password Spraying

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated