mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-30 23:50:25 -07:00
Translated ['src/pentesting-cloud/aws-security/aws-persistence/aws-sts-p
This commit is contained in:
@@ -4,11 +4,11 @@
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Azure Active Directory (Azure AD) dien as Microsoft se wolk-gebaseerde diens vir identiteit en toegang bestuur. Dit is noodsaaklik om werknemers in staat te stel om aan te meld en toegang tot hulpbronne te verkry, beide binne en buite die organisasie, insluitend Microsoft 365, die Azure-portaal, en 'n verskeidenheid ander SaaS-toepassings. Die ontwerp van Azure AD fokus op die lewering van noodsaaklike identiteit dienste, wat prominent **authentisering, autorisasie, en gebruikersbestuur** insluit.
|
||||
Azure Active Directory (Azure AD) dien as Microsoft se wolk-gebaseerde diens vir identiteit en toegang bestuur. Dit is noodsaaklik om werknemers in staat te stel om aan te meld en toegang te verkry tot hulpbronne, beide binne en buite die organisasie, insluitend Microsoft 365, die Azure-portaal, en 'n verskeidenheid ander SaaS-toepassings. Die ontwerp van Azure AD fokus op die lewering van noodsaaklike identiteit dienste, wat prominent **authentisering, autorisasie, en gebruikersbestuur** insluit.
|
||||
|
||||
Belangrike kenmerke van Azure AD sluit **multi-faktor authentisering** en **voorwaardelike toegang** in, tesame met naatlose integrasie met ander Microsoft sekuriteitsdienste. Hierdie kenmerke verhoog die sekuriteit van gebruikersidentiteite aansienlik en bemagtig organisasies om hul toegangbeleide effektief te implementeer en af te dwing. As 'n fundamentele komponent van Microsoft se wolkdienste-ekosisteem, is Azure AD van kardinale belang vir die wolk-gebaseerde bestuur van gebruikersidentiteite.
|
||||
|
||||
## Enumerasie
|
||||
## Opsomming
|
||||
|
||||
### **Verbinding**
|
||||
|
||||
@@ -45,7 +45,7 @@ az ad user list --query-examples # Get examples
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Mg" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Login Open browser
|
||||
Connect-MgGraph
|
||||
|
||||
@@ -72,7 +72,7 @@ Find-MgGraphCommand -command *Mg*
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Az PowerShell" }}
|
||||
```powershell
|
||||
```bash
|
||||
Connect-AzAccount #Open browser
|
||||
# Using credentials
|
||||
$passwd = ConvertTo-SecureString "Welcome2022!" -AsPlainText -Force
|
||||
@@ -104,7 +104,7 @@ Get-Command *az*
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Raw PS" }}
|
||||
```powershell
|
||||
```bash
|
||||
#Using management
|
||||
$Token = 'eyJ0eXAi..'
|
||||
# List subscriptions
|
||||
@@ -135,7 +135,7 @@ curl "$IDENTITY_ENDPOINT?resource=https://vault.azure.net&api-version=2017-09-01
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Azure AD" }}
|
||||
```powershell
|
||||
```bash
|
||||
Connect-AzureAD #Open browser
|
||||
# Using credentials
|
||||
$passwd = ConvertTo-SecureString "Welcome2022!" -AsPlainText -Force
|
||||
@@ -151,10 +151,10 @@ Connect-AzureAD -AccountId test@corp.onmicrosoft.com -AadAccessToken $token
|
||||
|
||||
Wanneer jy **aanmeld** via **CLI** in Azure met enige program, gebruik jy 'n **Azure-toepassing** van 'n **tenant** wat aan **Microsoft** behoort. Hierdie Toepassings, soos die wat jy in jou rekening kan skep, **het 'n kliënt-id**. Jy **sal nie al hulle kan sien nie** in die **toegelate toepassingslys** wat jy in die konsole kan sien, **maar hulle is standaard toegelaat**.
|
||||
|
||||
Byvoorbeeld, 'n **powershell-skrip** wat **authentiseer** gebruik 'n app met kliënt-id **`1950a258-227b-4e31-a9cf-717495945fc2`**. Selfs al verskyn die app nie in die konsole nie, kan 'n stelselaanvoerder **daardie toepassing blokkeer** sodat gebruikers nie toegang kan verkry nie met gereedskap wat via daardie App verbind.
|
||||
Byvoorbeeld, 'n **powershell-skrip** wat **authentiseer** gebruik 'n app met kliënt-id **`1950a258-227b-4e31-a9cf-717495945fc2`**. Selfs al verskyn die app nie in die konsole nie, kan 'n stelselaanvoerder daardie toepassing **blokkeer** sodat gebruikers nie toegang kan verkry nie met gereedskap wat via daardie App verbind.
|
||||
|
||||
Daar is egter **ander kliënt-ids** van toepassings wat **jou sal toelaat om met Azure te verbind**:
|
||||
```powershell
|
||||
```bash
|
||||
# The important part is the ClientId, which identifies the application to login inside Azure
|
||||
|
||||
$token = Invoke-Authorize -Credential $credential `
|
||||
@@ -242,7 +242,7 @@ curl -X GET "https://graph.microsoft.com/beta/roleManagement/directory/roleDefin
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Azure AD" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Enumerate Users
|
||||
Get-AzureADUser -All $true
|
||||
Get-AzureADUser -All $true | select UserPrincipalName
|
||||
@@ -280,7 +280,7 @@ Get-AzureADMSAdministrativeUnit | where { Get-AzureADMSAdministrativeUnitMember
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Az PowerShell" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Enumerate users
|
||||
Get-AzADUser
|
||||
# Get details of a user
|
||||
@@ -295,14 +295,14 @@ Get-AzRoleAssignment -SignInName test@corp.onmicrosoft.com
|
||||
{{#endtabs }}
|
||||
|
||||
#### Verander Gebruiker Wagwoord
|
||||
```powershell
|
||||
```bash
|
||||
$password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText –Force
|
||||
|
||||
(Get-AzureADUser -All $true | ?{$_.UserPrincipalName -eq "victim@corp.onmicrosoft.com"}).ObjectId | Set- AzureADUserPassword -Password $password –Verbose
|
||||
```
|
||||
### MFA & Voorwaardelike Toegang Beleide
|
||||
|
||||
Dit word sterk aanbeveel om MFA aan elke gebruiker toe te voeg, egter, sommige maatskappye sal dit nie instel of mag dit instel met 'n Voorwaardelike Toegang: Die gebruiker sal **MFA vereis word as** dit vanaf 'n spesifieke ligging, blaaier of **sekere voorwaarde** aanmeld. Hierdie beleide, as dit nie korrek geconfigureer is nie, mag geneig wees tot **omseilings**. Kontroleer:
|
||||
Dit word sterk aanbeveel om MFA by elke gebruiker te voeg, maar sommige maatskappye sal dit nie instel nie of mag dit instel met 'n Voorwaardelike Toegang: Die gebruiker sal **MFA vereis word as** dit vanaf 'n spesifieke ligging, blaaiert of **sekere voorwaarde** aanmeld. Hierdie beleide, as dit nie korrek geconfigureer is nie, mag geneig wees tot **omseilings**. Kontroleer:
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
|
||||
@@ -318,7 +318,7 @@ Vir meer inligting oor Entra ID groepe, kyk:
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Enumerate groups
|
||||
az ad group list
|
||||
az ad group list --query "[].[displayName]" -o table
|
||||
@@ -347,7 +347,7 @@ az role assignment list --include-groups --include-classic-administrators true -
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Azure AD" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Enumerate Groups
|
||||
Get-AzureADGroup -All $true
|
||||
# Get info of 1 group
|
||||
@@ -375,7 +375,7 @@ Get-AzureADGroup -ObjectId <id> | Get-AzureADGroupAppRoleAssignment | fl *
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Az PowerShell" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Get all groups
|
||||
Get-AzADGroup
|
||||
# Get details of a group
|
||||
@@ -394,11 +394,11 @@ Get-AzRoleAssignment -ResourceGroupName <resource_group_name>
|
||||
#### Voeg gebruiker by groep
|
||||
|
||||
Eienaars van die groep kan nuwe gebruikers by die groep voeg
|
||||
```powershell
|
||||
```bash
|
||||
Add-AzureADGroupMember -ObjectId <group_id> -RefObjectId <user_id> -Verbose
|
||||
```
|
||||
> [!WARNING]
|
||||
> Groepe kan dinamies wees, wat basies beteken dat **as 'n gebruiker aan sekere voorwaardes voldoen, sal hy aan 'n groep bygevoeg word**. Natuurlik, as die voorwaardes gebaseer is op **kenmerke** wat 'n **gebruiker** kan **beheer**, kan hy hierdie funksie misbruik om **in ander groepe te kom**.\
|
||||
> Groepe kan dinamies wees, wat basies beteken dat **as 'n gebruiker aan sekere voorwaardes voldoen, sal hy aan 'n groep bygevoeg word**. Natuurlik, as die voorwaardes gebaseer is op **eienskappe** wat 'n **gebruiker** kan **beheer**, kan hy hierdie funksie misbruik om **in ander groepe te kom**.\
|
||||
> Kyk hoe om dinamiese groepe te misbruik op die volgende bladsy:
|
||||
|
||||
{{#ref}}
|
||||
@@ -434,7 +434,7 @@ az ad sp list --query '[?length(keyCredentials) > `0` || length(passwordCredenti
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Azure AD" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Get Service Principals
|
||||
Get-AzureADServicePrincipal -All $true
|
||||
# Get details about a SP
|
||||
@@ -455,7 +455,7 @@ Get-AzureADServicePrincipal -ObjectId <id> | Get-AzureADServicePrincipalMembersh
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Az PowerShell" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Get SPs
|
||||
Get-AzADServicePrincipal
|
||||
# Get info of 1 SP
|
||||
@@ -468,7 +468,7 @@ Get-AzRoleAssignment -ServicePrincipalName <String>
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Raw" }}
|
||||
```powershell
|
||||
```bash
|
||||
$Token = 'eyJ0eX..'
|
||||
$URI = 'https://graph.microsoft.com/v1.0/applications'
|
||||
$RequestParams = @{
|
||||
@@ -488,8 +488,8 @@ Headers = @{
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Ly en probeer om 'n kliënt geheim by elke Enterprise App te voeg</summary>
|
||||
```powershell
|
||||
<summary>lys en probeer om 'n kliënt geheim by elke Enterprise App te voeg</summary>
|
||||
```bash
|
||||
# Just call Add-AzADAppSecret
|
||||
Function Add-AzADAppSecret
|
||||
{
|
||||
@@ -603,8 +603,8 @@ Vir meer inligting oor Toepassings, kyk:
|
||||
|
||||
Wanneer 'n App gegenereer word, word 2 tipes toestemmings gegee:
|
||||
|
||||
- **Toestemmings** gegee aan die **Diens Prinsipal**
|
||||
- **Toestemmings** wat die **app** kan hê en gebruik namens die **gebruiker**.
|
||||
- **Toestemmings** gegee aan die **Diens Prinsipaal**
|
||||
- **Toestemmings** wat die **app** kan hê en gebruik op **naam van die gebruiker**.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -626,7 +626,7 @@ az ad app list --query '[?length(keyCredentials) > `0` || length(passwordCredent
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Azure AD" }}
|
||||
```powershell
|
||||
```bash
|
||||
# List all registered applications
|
||||
Get-AzureADApplication -All $true
|
||||
# Get details of an application
|
||||
@@ -639,7 +639,7 @@ Get-AzureADApplication -ObjectId <id> | Get-AzureADApplicationOwner |fl *
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Az PowerShell" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Get Apps
|
||||
Get-AzADApplication
|
||||
# Get details of one App
|
||||
@@ -653,14 +653,14 @@ Get-AzADAppCredential
|
||||
{{#endtabs }}
|
||||
|
||||
> [!WARNING]
|
||||
> 'n App met die toestemming **`AppRoleAssignment.ReadWrite`** kan **opgradeer na Global Admin** deur homself die rol toe te ken.\
|
||||
> 'n Aansoek met die toestemming **`AppRoleAssignment.ReadWrite`** kan **opgradeer na Global Admin** deur homself die rol toe te ken.\
|
||||
> Vir meer inligting [**kyk hier**](https://posts.specterops.io/azure-privilege-escalation-via-azure-api-permissions-abuse-74aee1006f48).
|
||||
|
||||
> [!NOTE]
|
||||
> 'n Geheime string wat die toepassing gebruik om sy identiteit te bewys wanneer dit 'n token aan vra, is die toepassingswagwoord.\
|
||||
> 'n Geheime string wat die aansoek gebruik om sy identiteit te bewys wanneer dit 'n token aan vra, is die aansoek wagwoord.\
|
||||
> So, as jy hierdie **wagwoord** vind, kan jy toegang verkry as die **service principal** **binne** die **tenant**.\
|
||||
> Let daarop dat hierdie wagwoord slegs sigbaar is wanneer dit gegenereer word (jy kan dit verander, maar jy kan dit nie weer kry nie).\
|
||||
> Die **eienaar** van die **toepassing** kan 'n **wagwoord** daaraan **byvoeg** (sodat hy dit kan naboots).\
|
||||
> Die **eienaar** van die **aansoek** kan 'n **wagwoord** daaraan **byvoeg** (sodat hy dit kan naboots).\
|
||||
> Aanmeldings as hierdie service principals is **nie as riskant gemerk nie** en hulle **sal nie MFA hê nie.**
|
||||
|
||||
Dit is moontlik om 'n lys van algemeen gebruikte App ID's wat aan Microsoft behoort te vind in [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications)
|
||||
@@ -717,7 +717,7 @@ az role assignment list --all --query "[?principalName=='carlos@carloshacktricks
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Az PowerShell" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Get role assignments on the subscription
|
||||
Get-AzRoleDefinition
|
||||
# Get Role definition
|
||||
@@ -729,7 +729,7 @@ Get-AzRoleAssignment -Scope /subscriptions/<subscription-id>/resourceGroups/<res
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Raw" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Get permissions over a resource using ARM directly
|
||||
$Token = (Get-AzAccessToken).Token
|
||||
$URI = 'https://management.azure.com/subscriptions/b413826f-108d-4049-8c11-d52d5d388768/resourceGroups/Research/providers/Microsoft.Compute/virtualMachines/infradminsrv/providers/Microsoft.Authorization/permissions?api-version=2015-07-01'
|
||||
@@ -801,7 +801,7 @@ az rest --method GET \
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Azure AD" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Get all available role templates
|
||||
Get-AzureADDirectoryroleTemplate
|
||||
# Get enabled roles (Assigned roles)
|
||||
@@ -828,7 +828,7 @@ Get-AzureADMSScopedRoleMembership -Id <id> | fl *
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Azure AD" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Enumerate Devices
|
||||
Get-AzureADDevice -All $true | fl *
|
||||
# List all the active devices (and not the stale devices)
|
||||
@@ -850,7 +850,7 @@ Get-AzureADMSAdministrativeUnit | where { Get-AzureADMSAdministrativeUnitMember
|
||||
{{#endtabs }}
|
||||
|
||||
> [!WARNING]
|
||||
> As 'n toestel (VM) **AzureAD-verbonden** is, gaan gebruikers van AzureAD **in staat wees om aan te meld**.\
|
||||
> As 'n toestel (VM) **AzureAD aangesluit** is, gaan gebruikers van AzureAD **in staat wees om aan te meld**.\
|
||||
> Boonop, as die aangemelde gebruiker die **Eienaar** van die toestel is, gaan hy **lokale admin** wees.
|
||||
|
||||
### Administratiewe Eenhede
|
||||
@@ -876,7 +876,7 @@ az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administr
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="AzureAD" }}
|
||||
```powershell
|
||||
```bash
|
||||
# Get Administrative Units
|
||||
Get-AzureADMSAdministrativeUnit
|
||||
Get-AzureADMSAdministrativeUnit -Id <id>
|
||||
@@ -906,9 +906,9 @@ Get-AzureADMSScopedRoleMembership -Id <id> | fl #Get role ID and role members
|
||||
|
||||
### Bevoorregte Identiteitsbestuur (PIM)
|
||||
|
||||
Bevoorregte Identiteitsbestuur (PIM) in Azure help om **oormatige voorregte** te voorkom wat onnodig aan gebruikers toegeken word.
|
||||
Bevoorregte Identiteitsbestuur (PIM) in Azure help om **oormatige voorregte** aan gebruikers onnodig toe te ken.
|
||||
|
||||
Een van die hoofkenmerke wat deur PIM verskaf word, is dat dit toelaat om nie rolle aan principals toe te ken wat konstant aktief is nie, maar om hulle **verkieslik te maak vir 'n tydperk (bv. 6 maande)**. Dan, wanneer die gebruiker daardie rol wil aktiveer, moet hy daarvoor vra en die tyd aan dui wat hy die voorreg nodig het (bv. 3 uur). Dan moet 'n **admin die versoek goedkeur**.\
|
||||
Een van die hoofkenmerke wat deur PIM verskaf word, is dat dit toelaat om nie rolle aan principals toe te ken wat konstant aktief is nie, maar hulle **verkieslik vir 'n tydperk (bv. 6 maande)** te maak. Dan, wanneer die gebruiker daardie rol wil aktiveer, moet hy daarvoor vra en die tyd aan dui wat hy die voorreg nodig het (bv. 3 uur). Dan moet 'n **admin die versoek goedkeur**.\
|
||||
Let daarop dat die gebruiker ook kan vra om die tyd te **verleng**.
|
||||
|
||||
Boonop **stuur PIM e-posse** wanneer 'n bevoorregte rol aan iemand toegeken word.
|
||||
@@ -923,7 +923,7 @@ Wanneer PIM geaktiveer is, is dit moontlik om elke rol met sekere vereistes te k
|
||||
- Vereis regverdigheid op aktivering
|
||||
- Vereis kaartjie-inligting op aktivering
|
||||
- Vereis goedkeuring om te aktiveer
|
||||
- Maks tyd om die verkieslike toewysings te laat verval 
|
||||
- Maks tyd om die verkieslike toewysings te laat verval
|
||||
- Nog baie meer konfigurasie oor wanneer en aan wie om kennisgewings te stuur wanneer sekere aksies met daardie rol gebeur
|
||||
|
||||
### Voorwaardelike Toegang Beleide <a href="#title-text" id="title-text"></a>
|
||||
@@ -936,7 +936,7 @@ Kontroleer:
|
||||
|
||||
### Entra Identiteitsbeskerming <a href="#title-text" id="title-text"></a>
|
||||
|
||||
Entra Identiteitsbeskerming is 'n sekuriteitsdiens wat toelaat om te **ontdek wanneer 'n gebruiker of 'n aanmelding te riskant is** om aanvaar te word, wat toelaat om die gebruiker of die aanmeldpoging te **blokkeer**.
|
||||
Entra Identiteitsbeskerming is 'n sekuriteitsdiens wat toelaat om **te detecteer wanneer 'n gebruiker of 'n aanmelding te riskant is** om aanvaar te word, wat toelaat om die gebruiker of die aanmeldpoging te **blokkeer**.
|
||||
|
||||
Dit laat die admin toe om dit te konfigureer om **pogings te blokkeer** wanneer die risiko "Laag en bo", "Medium en bo" of "Hoog" is. Alhoewel, standaard is dit heeltemal **deaktiveer**:
|
||||
|
||||
@@ -947,12 +947,12 @@ Dit laat die admin toe om dit te konfigureer om **pogings te blokkeer** wanneer
|
||||
|
||||
### Entra Wagwoordbeskerming
|
||||
|
||||
Entra Wagwoordbeskerming ([https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) is 'n sekuriteitskenmerk wat **help om die misbruik van swak wagwoorde te voorkom deur rekeninge te sluit wanneer verskeie onsuksesvolle aanmeldpogings plaasvind**.\
|
||||
Entra Wagwoordbeskerming ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) is 'n sekuriteitskenmerk wat **help om die misbruik van swak wagwoorde te voorkom deur rekeninge te sluit wanneer verskeie onsuksesvolle aanmeldpogings plaasvind**.\
|
||||
Dit laat ook toe om 'n **aangepaste wagwoordlys te verbied** wat jy moet verskaf.
|
||||
|
||||
Dit kan **op beide** die wolkvlak en op-premises Aktiewe Gids toegepas word.
|
||||
|
||||
Die standaardmodus is **Audiet**:
|
||||
Die standaardmodus is **Oudit**:
|
||||
|
||||
<figure><img src="../../../images/image (355).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user