mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-03-12 21:22:57 -07:00
Translated ['', 'src/pentesting-cloud/azure-security/az-enumeration-tool
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
## Instalirajte PowerShell na Linuxu
|
||||
|
||||
> [!TIP]
|
||||
> Na Linuxu ćete morati da instalirate PowerShell Core:
|
||||
> Na Linuxu ćete morati instalirati PowerShell Core:
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y wget apt-transport-https software-properties-common
|
||||
@@ -24,15 +24,15 @@ pwsh
|
||||
# Az cli
|
||||
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
|
||||
```
|
||||
## Instalirajte PowerShell na MacOS
|
||||
## Install PowerShell in MacOS
|
||||
|
||||
Uputstva iz [**documentation**](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-macos?view=powershell-7.4):
|
||||
|
||||
1. Instalirajte `brew` ako nije već instaliran:
|
||||
1. Instalirajte `brew` ako još nije instaliran:
|
||||
```bash
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
```
|
||||
2. Instalirajte najnoviju stabilnu verziju PowerShell-a:
|
||||
2. Instalirajte najnoviju stabilnu verziju PowerShell:
|
||||
```sh
|
||||
brew install powershell/tap/powershell
|
||||
```
|
||||
@@ -49,11 +49,11 @@ brew upgrade powershell
|
||||
|
||||
### az cli
|
||||
|
||||
[**Azure Command-Line Interface (CLI)**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) je višeplatformski alat napisan u Pythonu za upravljanje i administraciju (većine) Azure i Entra ID resursa. Povezuje se sa Azure i izvršava administratorske komande putem komandne linije ili skripti.
|
||||
[**Azure Command-Line Interface (CLI)**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) je cross-platform alat napisan u Pythonu za upravljanje i administraciju (većine) Azure i Entra ID resursa. Povezuje se sa Azure i izvršava administrativne komande putem komandne linije ili skripti.
|
||||
|
||||
Pratite ovaj link za [**uputstva za instalaciju¡**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli#install).
|
||||
Pratite ovaj link za [**installation instructions¡**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli#install).
|
||||
|
||||
Komande u Azure CLI su strukturisane po šablonu: `az <service> <action> <parameters>`
|
||||
Komande u Azure CLI su strukturisane koristeći obrazac: `az <service> <action> <parameters>`
|
||||
|
||||
#### Debug | MitM az cli
|
||||
|
||||
@@ -61,7 +61,7 @@ Korišćenjem parametra **`--debug`** moguće je videti sve zahteve koje alat **
|
||||
```bash
|
||||
az account management-group list --output table --debug
|
||||
```
|
||||
Da biste izvršili **MitM** nad alatom i ručno **proverili sve zahteve** koje šalje, možete:
|
||||
Da biste uradili **MitM** nad alatom i ručno **proverili sve zahteve** koje šalje, možete:
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Bash" }}
|
||||
@@ -104,13 +104,177 @@ $env:HTTP_PROXY="http://127.0.0.1:8080"
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
<details>
|
||||
<summary><strong>Ispravljanje “CA cert does not include key usage extension”</strong></summary>
|
||||
|
||||
### Zašto se greška javlja
|
||||
|
||||
Kada se Azure CLI autentifikuje, pravi HTTPS zahteve (putem MSAL → Requests → OpenSSL). Ako presrećete TLS sa Burp-om, Burp generiše "on the fly" sertifikate za sajtove kao što je `login.microsoftonline.com` i potpisuje ih sa Burp-ovim CA.
|
||||
|
||||
Na novijim stack-ovima (Python 3.13 + OpenSSL 3), validacija CA je stroža:
|
||||
|
||||
- A CA certificate must include **Basic Constraints: `CA:TRUE`** and a **Key Usage** extension permitting certificate signing (**`keyCertSign`**, and typically **`cRLSign`**).
|
||||
|
||||
Podrazumevani Burp CA (PortSwigger CA) je star i obično nema Key Usage ekstenziju, pa ga OpenSSL odbacuje čak i ako mu "verujete".
|
||||
|
||||
To proizvodi greške kao što su:
|
||||
|
||||
- `CA cert does not include key usage extension`
|
||||
- `CERTIFICATE_VERIFY_FAILED`
|
||||
- `self-signed certificate in certificate chain`
|
||||
|
||||
Dakle morate:
|
||||
|
||||
1. Napraviti modernu CA (sa odgovarajućom Key Usage).
|
||||
2. Naterati Burp da je koristi za potpisivanje presretnutih sertifikata.
|
||||
3. Označiti tu CA kao pouzdanu u macOS-u.
|
||||
4. Usmeriti Azure CLI / Requests na taj CA bundle.
|
||||
|
||||
### Korak po korak: radna konfiguracija
|
||||
|
||||
#### 0) Preduslovi
|
||||
|
||||
- Burp pokrenut lokalno (proxy na `127.0.0.1:8080`)
|
||||
- Azure CLI instaliran (Homebrew)
|
||||
- Imate mogućnost da koristite `sudo` (da biste obezbedili CA u sistemskom keychain-u)
|
||||
|
||||
#### 1) Napravite Burp CA u skladu sa standardima (PEM + KEY)
|
||||
|
||||
Kreirajte OpenSSL konfiguracioni fajl koji eksplicitno postavlja CA ekstenzije:
|
||||
```bash
|
||||
mkdir -p ~/burp-ca && cd ~/burp-ca
|
||||
|
||||
cat > burp-ca.cnf <<'EOF'
|
||||
[ req ]
|
||||
default_bits = 2048
|
||||
prompt = no
|
||||
default_md = sha256
|
||||
distinguished_name = dn
|
||||
x509_extensions = v3_ca
|
||||
|
||||
[ dn ]
|
||||
C = US
|
||||
O = Burp Custom CA
|
||||
CN = Burp Custom Root CA
|
||||
|
||||
[ v3_ca ]
|
||||
basicConstraints = critical,CA:TRUE
|
||||
keyUsage = critical,keyCertSign,cRLSign
|
||||
subjectKeyIdentifier = hash
|
||||
authorityKeyIdentifier = keyid:always,issuer
|
||||
EOF
|
||||
```
|
||||
Generiši CA sertifikat + privatni ključ:
|
||||
```bash
|
||||
openssl req -x509 -new -nodes \
|
||||
-days 3650 \
|
||||
-keyout burp-ca.key \
|
||||
-out burp-ca.pem \
|
||||
-config burp-ca.cnf
|
||||
```
|
||||
Provera ispravnosti (MORA da se vidi Key Usage):
|
||||
```bash
|
||||
openssl x509 -in burp-ca.pem -noout -text | egrep -A3 "Basic Constraints|Key Usage"
|
||||
```
|
||||
Očekuje se da sadrži nešto poput:
|
||||
|
||||
- `CA:TRUE`
|
||||
- `Key Usage: ... Certificate Sign, CRL Sign`
|
||||
|
||||
#### 2) Konvertuj u PKCS#12 (Burp import format)
|
||||
|
||||
Burp zahteva sertifikat + privatni ključ, najlakše kao PKCS#12:
|
||||
```bash
|
||||
openssl pkcs12 -export \
|
||||
-out burp-ca.p12 \
|
||||
-inkey burp-ca.key \
|
||||
-in burp-ca.pem \
|
||||
-name "Burp Custom Root CA"
|
||||
```
|
||||
Bićete upitani da unesete lozinku za izvoz (postavite neku; Burp će je zatražiti).
|
||||
|
||||
#### 3) Importujte CA u Burp i restartujte Burp
|
||||
|
||||
U Burp-u:
|
||||
|
||||
- Proxy → Opcije
|
||||
- Pronađite "Import / export CA certificate"
|
||||
- Kliknite na "Import CA certificate"
|
||||
- Odaberite PKCS#12
|
||||
- Select `burp-ca.p12`
|
||||
- Unesite lozinku
|
||||
- Restartujte Burp potpuno (važno)
|
||||
|
||||
Zašto restartovati? Burp može nastaviti da koristi staru CA dok se ne restartuje.
|
||||
|
||||
#### 4) Označite novi CA kao pouzdan u macOS system keychain
|
||||
|
||||
Ovo omogućava sistemskim aplikacijama i mnogim TLS stack-ovima da prihvate ovaj CA.
|
||||
```bash
|
||||
sudo security add-trusted-cert \
|
||||
-d -r trustRoot \
|
||||
-k /Library/Keychains/System.keychain \
|
||||
~/burp-ca/burp-ca.pem
|
||||
```
|
||||
(Ako više volite GUI: Keychain Access → System → Certificates → import → set “Always Trust”.)
|
||||
|
||||
#### 5) Podesite promenljive okruženja za proxy
|
||||
```bash
|
||||
export HTTPS_PROXY="http://127.0.0.1:8080"
|
||||
export HTTP_PROXY="http://127.0.0.1:8080"
|
||||
```
|
||||
#### 6) Konfigurišite Requests/Azure CLI da veruju vašem Burp CA
|
||||
|
||||
Azure CLI koristi Python Requests interno; podesite oba ova:
|
||||
```bash
|
||||
export REQUESTS_CA_BUNDLE="$HOME/burp-ca/burp-ca.pem"
|
||||
export SSL_CERT_FILE="$HOME/burp-ca/burp-ca.pem"
|
||||
```
|
||||
Napomene:
|
||||
|
||||
- `REQUESTS_CA_BUNDLE` se koristi od strane Requests.
|
||||
- `SSL_CERT_FILE` pomaže za druge TLS klijente i posebne slučajeve.
|
||||
- Obično vam nije potreban stari `ADAL_PYTHON_SSL_NO_VERIFY` / `AZURE_CLI_DISABLE_CONNECTION_VERIFICATION` nakon što je CA ispravna.
|
||||
|
||||
#### 7) Proverite da li Burp zaista potpisuje sa vašim novim CA (kritična provera)
|
||||
|
||||
Ovo potvrđuje da je vaš lanac presretanja ispravan:
|
||||
```bash
|
||||
openssl s_client -connect login.microsoftonline.com:443 \
|
||||
-proxy 127.0.0.1:8080 </dev/null 2>/dev/null \
|
||||
| openssl x509 -noout -issuer
|
||||
```
|
||||
Očekivani issuer sadrži ime vaše CA, npr.:
|
||||
|
||||
`O=Burp Custom CA, CN=Burp Custom Root CA`
|
||||
|
||||
Ako i dalje vidite PortSwigger CA, Burp ne koristi vašu uvezenu CA → ponovo proverite uvoz i restartujte.
|
||||
|
||||
#### 8) Proverite da li Python Requests radi kroz Burp
|
||||
```bash
|
||||
python3 - <<'EOF'
|
||||
import requests
|
||||
requests.get("https://login.microsoftonline.com")
|
||||
print("OK")
|
||||
EOF
|
||||
```
|
||||
Očekivano: `OK`
|
||||
|
||||
#### 9) Azure CLI test
|
||||
```bash
|
||||
az account get-access-token --resource=https://management.azure.com/
|
||||
```
|
||||
Ako ste već prijavljeni, trebalo bi da vrati JSON sa `accessToken`.
|
||||
|
||||
</details>
|
||||
|
||||
### Az PowerShell
|
||||
|
||||
Azure PowerShell je modul koji sadrži cmdlets za upravljanje Azure resursima direktno iz PowerShell komandne linije.
|
||||
|
||||
Pratite ovaj link za [**uputstvo za instalaciju**](https://learn.microsoft.com/en-us/powershell/azure/install-azure-powershell).
|
||||
Follow this link for the [**installation instructions**](https://learn.microsoft.com/en-us/powershell/azure/install-azure-powershell).
|
||||
|
||||
Komande u Azure PowerShell AZ modulu su strukturisane ovako: `<Action>-Az<Service> <parameters>`
|
||||
Commands in Azure PowerShell AZ Module are structured like: `<Action>-Az<Service> <parameters>`
|
||||
|
||||
#### Debug | MitM Az PowerShell
|
||||
|
||||
@@ -118,11 +282,11 @@ Korišćenjem parametra **`-Debug`** moguće je videti sve zahteve koje alat ša
|
||||
```bash
|
||||
Get-AzResourceGroup -Debug
|
||||
```
|
||||
In order to do a **MitM** to the tool and **check all the requests** it's sending manually you can set the env variables `HTTPS_PROXY` and `HTTP_PROXY` according to the [**docs**](https://learn.microsoft.com/en-us/powershell/azure/az-powershell-proxy).
|
||||
Da biste izvršili **MitM** nad alatom i **ručno proverili sve zahteve** koje šalje, možete podesiti env promenljive `HTTPS_PROXY` i `HTTP_PROXY` u skladu sa [**docs**](https://learn.microsoft.com/en-us/powershell/azure/az-powershell-proxy).
|
||||
|
||||
### Microsoft Graph PowerShell
|
||||
|
||||
Microsoft Graph PowerShell je cross-platform SDK koji omogućava pristup svim Microsoft Graph API-ima, uključujući servise kao što su SharePoint, Exchange i Outlook, koristeći jedan endpoint. Podržava PowerShell 7+, modernu autentifikaciju putem MSAL, external identities i napredne upite. Sa fokusom na pristup zasnovan na najmanjim privilegijama, obezbeđuje sigurnu upotrebu i redovno prima ažuriranja kako bi bio usklađen sa najnovijim funkcijama Microsoft Graph API-ja.
|
||||
Microsoft Graph PowerShell je višeplatformski SDK koji omogućava pristup svim Microsoft Graph API-ima, uključujući servise kao što su SharePoint, Exchange i Outlook, koristeći jedinstveni endpoint. Podržava PowerShell 7+, modernu autentifikaciju preko MSAL, spoljne identitete i napredne upite. Sa fokusom na pristup sa najmanje privilegija, obezbeđuje bezbedne operacije i redovno prima ažuriranja kako bi bio usklađen sa najnovijim funkcijama Microsoft Graph API-ja.
|
||||
|
||||
Follow this link for the [**installation instructions**](https://learn.microsoft.com/en-us/powershell/microsoftgraph/installation).
|
||||
|
||||
@@ -136,19 +300,19 @@ Get-MgUser -Debug
|
||||
```
|
||||
### ~~**AzureAD Powershell**~~
|
||||
|
||||
The Azure Active Directory (AD) module, now **zastareo**, is part of Azure PowerShell for managing Azure AD resources. Pruža cmdlets za zadatke poput upravljanja korisnicima, grupama i registracijama aplikacija u Entra ID.
|
||||
Azure Active Directory (AD) module, sada **zastareo**, je deo Azure PowerShell-a za upravljanje Azure AD resursima. On obezbeđuje cmdlets za zadatke kao što su upravljanje korisnicima, grupama i registracijama aplikacija u Entra ID.
|
||||
|
||||
> [!TIP]
|
||||
> Ovo je zamenjeno Microsoft Graph PowerShell
|
||||
> Ovo je zamenjeno Microsoft Graph PowerShell-om
|
||||
|
||||
Pratite ovaj link za the [**installation instructions**](https://www.powershellgallery.com/packages/AzureAD).
|
||||
Pratite ovaj link za [**uputstva za instalaciju**](https://www.powershellgallery.com/packages/AzureAD).
|
||||
|
||||
|
||||
## Automatizovani Recon & alati za usklađenost
|
||||
## Automatizovani Recon i alati za usklađenost
|
||||
|
||||
### [turbot azure plugins](https://github.com/orgs/turbot/repositories?q=mod-azure)
|
||||
|
||||
Turbot zajedno sa steampipe i powerpipe omogućava prikupljanje informacija iz Azure i Entra ID i izvršavanje provera usklađenosti i otkrivanje pogrešnih konfiguracija. Trenutno najpreporučljiviji Azure moduli za pokretanje su:
|
||||
Turbot sa steampipe i powerpipe omogućava prikupljanje informacija iz Azure i Entra ID, izvođenje provera usklađenosti i pronalaženje pogrešnih konfiguracija. Trenutno najpreporučljiviji Azure moduli za pokretanje su:
|
||||
|
||||
- [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)
|
||||
@@ -179,9 +343,9 @@ powerpipe server
|
||||
```
|
||||
### [Prowler](https://github.com/prowler-cloud/prowler)
|
||||
|
||||
Prowler je Open Source alat za bezbednost koji omogućava izvođenje procena najboljih bezbednosnih praksi, audita, incident response-a, kontinuiranog nadzora, hardening-a i spremnosti za forenziku za AWS, Azure, Google Cloud i Kubernetes.
|
||||
Prowler je Open Source security tool za izvođenje AWS, Azure, Google Cloud i Kubernetes security best practices assessments, audits, incident response, continuous monitoring, hardening i forensics readiness.
|
||||
|
||||
U suštini omogućava pokretanje stotina provera nad Azure okruženjem radi pronalaska bezbednosnih pogrešnih konfiguracija i prikupljanja rezultata u json (i drugim tekstualnim formatima) ili njihov pregled na webu.
|
||||
U suštini nam omogućava da pokrenemo stotine provera protiv Azure okruženja kako bismo pronašli bezbednosne pogrešne konfiguracije i prikupili rezultate u json (i drugim tekstualnim formatima) ili ih pregledali na webu.
|
||||
```bash
|
||||
# Create a application with Reader role and set the tenant ID, client ID and secret in prowler so it access the app
|
||||
|
||||
@@ -205,7 +369,7 @@ docker run --rm -e "AZURE_CLIENT_ID=<client-id>" -e "AZURE_TENANT_ID=<tenant-id>
|
||||
|
||||
Omogućava automatsko izvođenje revizija bezbednosnih konfiguracija Azure pretplata i Microsoft Entra ID-a.
|
||||
|
||||
HTML izveštaji se nalaze u direktorijumu `./monkey-reports` unutar github repository folder.
|
||||
HTML izveštaji se čuvaju u direktorijumu `./monkey-reports` unutar foldera github repozitorijuma.
|
||||
```bash
|
||||
git clone https://github.com/silverhack/monkey365
|
||||
Get-ChildItem -Recurse monkey365 | Unblock-File
|
||||
@@ -226,7 +390,7 @@ Invoke-Monkey365 -TenantId <tenant-id> -ClientId <client-id> -ClientSecret $Secu
|
||||
```
|
||||
### [ScoutSuite](https://github.com/nccgroup/ScoutSuite)
|
||||
|
||||
Scout Suite prikuplja podatke o konfiguraciji za ručnu inspekciju i ističe rizična područja. To je multi-cloud alat za reviziju bezbednosti koji omogućava procenu bezbednosnog stanja cloud okruženja.
|
||||
Scout Suite prikuplja podatke o konfiguraciji za ručni pregled i ističe rizična područja. To je alat za sigurnosnu reviziju za multi-cloud okruženja koji omogućava procenu bezbednosnog stanja cloud okruženja.
|
||||
```bash
|
||||
virtualenv -p python3 venv
|
||||
source venv/bin/activate
|
||||
@@ -242,9 +406,9 @@ python scout.py azure --cli
|
||||
```
|
||||
### [Azure-MG-Sub-Governance-Reporting](https://github.com/JulianHayward/Azure-MG-Sub-Governance-Reporting)
|
||||
|
||||
То је powershell скрипта која вам помаже да **прикажете све ресурсе и дозволе унутар Management Group и Entra ID** tenant-а и пронађете безбедносне конфигурационе пропусте.
|
||||
To je PowerShell skripta koja vam pomaže da **vizualizujete sve resurse i dozvole unutar Management Group i Entra ID** tenant i pronađete bezbednosne greške u konfiguraciji.
|
||||
|
||||
Ради користећи Az PowerShell module, тако да су све методе аутентификације које он подржава доступне и овом алату.
|
||||
Radi koristeći Az PowerShell module, dakle sve authentication metode koje alat podržava su dostupne.
|
||||
```bash
|
||||
import-module Az
|
||||
.\AzGovVizParallel.ps1 -ManagementGroupId <management-group-id> [-SubscriptionIdWhitelist <subscription-id>]
|
||||
@@ -253,7 +417,7 @@ import-module Az
|
||||
|
||||
### [**ROADRecon**](https://github.com/dirkjanm/ROADtools)
|
||||
|
||||
enumeration ROADRecon-a pruža informacije o konfiguraciji Entra ID, kao što su korisnici, grupe, uloge i politike uslovnog pristupa...
|
||||
The enumeration of ROADRecon pruža informacije o konfiguraciji Entra ID, kao što su korisnici, grupe, uloge i conditional access policies...
|
||||
```bash
|
||||
cd ROADTools
|
||||
pipenv shell
|
||||
@@ -266,23 +430,23 @@ roadrecon gui
|
||||
```
|
||||
### [**AzureHound**](https://github.com/BloodHoundAD/AzureHound)
|
||||
|
||||
AzureHound je BloodHound collector za Microsoft Entra ID i Azure. To je jedan statički Go binarni fajl za Windows/Linux/macOS koji direktno komunicira sa:
|
||||
AzureHound je BloodHound collector za Microsoft Entra ID i Azure. To je jedan statički Go binarni fajl za Windows/Linux/macOS koji komunicira direktno sa:
|
||||
- Microsoft Graph (Entra ID directory, M365) i
|
||||
- Azure Resource Manager (ARM) control plane (subscriptions, resource groups, compute, storage, key vault, app services, AKS, itd.)
|
||||
- Azure Resource Manager (ARM) control plane (subscriptions, resource groups, compute, storage, key vault, app services, AKS, etc.)
|
||||
|
||||
Key traits
|
||||
- Može se pokrenuti sa bilo kog mesta na javnom internetu protiv tenant API-ja (nije potreban pristup internoj mreži)
|
||||
- Generiše JSON za uvoz u BloodHound CE kako bi vizualizovao puteve napada između identiteta i cloud resursa
|
||||
- Primećen podrazumevani User-Agent: azurehound/v2.x.x
|
||||
Ključne karakteristike
|
||||
- Radi sa bilo kojeg mesta na javnom internetu prema tenant API-ima (nije potreban pristup internoj mreži)
|
||||
- Generiše JSON za BloodHound CE ingestion radi vizualizacije puteva napada između identiteta i cloud resursa
|
||||
- Podrazumevani User-Agent uočen: azurehound/v2.x.x
|
||||
|
||||
Authentication options
|
||||
Opcije autentifikacije
|
||||
- Korisničko ime + lozinka: -u <upn> -p <password>
|
||||
- Refresh token: --refresh-token <rt>
|
||||
- JSON Web Token (access token): --jwt <jwt>
|
||||
- Service principal secret: -a <appId> -s <secret>
|
||||
- Service principal certificate: -a <appId> --cert <cert.pem> --key <key.pem> [--keypass <pass>]
|
||||
|
||||
Examples
|
||||
Primeri
|
||||
```bash
|
||||
# Full tenant collection to file using different auth flows
|
||||
## User creds
|
||||
@@ -318,28 +482,28 @@ azurehound list web-apps -t "<tenant-id>" -o webapps.json
|
||||
azurehound list function-apps -t "<tenant-id>" -o funcapps.json
|
||||
```
|
||||
What gets queried
|
||||
- Graph endpoints (primeri):
|
||||
- Graph endpoints (examples):
|
||||
- /v1.0/organization, /v1.0/users, /v1.0/groups, /v1.0/roleManagement/directory/roleDefinitions, directoryRoles, owners/members
|
||||
- ARM endpoints (primeri):
|
||||
- ARM endpoints (examples):
|
||||
- management.azure.com/subscriptions/.../providers/Microsoft.Storage/storageAccounts
|
||||
- .../Microsoft.KeyVault/vaults, .../Microsoft.Compute/virtualMachines, .../Microsoft.Web/sites, .../Microsoft.ContainerService/managedClusters
|
||||
|
||||
Preflight behavior and endpoints
|
||||
- Svaka azurehound list <object> obično izvrši ove test pozive pre enumeracije:
|
||||
1) Identity platform: login.microsoftonline.com
|
||||
- Each azurehound list <object> typically performs these test calls before enumeration:
|
||||
1) Platforma identiteta: login.microsoftonline.com
|
||||
2) Graph: GET https://graph.microsoft.com/v1.0/organization
|
||||
3) ARM: GET https://management.azure.com/subscriptions?api-version=...
|
||||
- Osnovni URL-ovi cloud environment-a se razlikuju za Government/China/Germany. Pogledajte constants/environments.go u repo-u.
|
||||
- Cloud environment base URLs differ for Government/China/Germany. See constants/environments.go in the repo.
|
||||
|
||||
ARM-heavy objects (less visible in Activity/Resource logs)
|
||||
- Sledeća lista ciljeva pretežno koristi ARM control plane read operacije: automation-accounts, container-registries, function-apps, key-vaults, logic-apps, managed-clusters, management-groups, resource-groups, storage-accounts, storage-containers, virtual-machines, vm-scale-sets, web-apps.
|
||||
- Ove GET/list operacije obično se ne zapisuju u Activity Logs; data-plane reads (npr. *.blob.core.windows.net, *.vault.azure.net) pokrivaju se putem Diagnostic Settings na nivou resursa.
|
||||
- The following list targets predominantly use ARM control plane reads: automation-accounts, container-registries, function-apps, key-vaults, logic-apps, managed-clusters, management-groups, resource-groups, storage-accounts, storage-containers, virtual-machines, vm-scale-sets, web-apps.
|
||||
- These GET/list operations are typically not written to Activity Logs; data-plane reads (e.g., *.blob.core.windows.net, *.vault.azure.net) are covered by Diagnostic Settings at the resource level.
|
||||
|
||||
OPSEC and logging notes
|
||||
- Microsoft Graph Activity Logs nisu omogućeni po defaultu; omogućite ih i eksportujte u SIEM da biste dobili vidljivost Graph poziva. Očekujte Graph preflight GET /v1.0/organization sa UA azurehound/v2.x.x.
|
||||
- Entra ID non-interactive sign-in logs beleže identity platform auth (login.microsoftonline.com) koji koristi AzureHound.
|
||||
- ARM control-plane read/list operacije se ne zapisuju u Activity Logs; mnoge azurehound list operacije nad resursima se tamo neće pojaviti. Samo data-plane logovanje (putem Diagnostic Settings) će snimiti čitanja ka service endpointima.
|
||||
- Defender XDR GraphApiAuditEvents (preview) može otkriti Graph pozive i identifikatore tokena, ali može nedostajati UserAgent i imati ograničen period zadržavanja.
|
||||
- Microsoft Graph Activity Logs are not enabled by default; enable and export to SIEM to gain visibility of Graph calls. Expect the Graph preflight GET /v1.0/organization with UA azurehound/v2.x.x.
|
||||
- Entra ID non-interactive sign-in logs record the identity platform auth (login.microsoftonline.com) used by AzureHound.
|
||||
- ARM control-plane read/list operations are not recorded in Activity Logs; many azurehound list operations against resources won’t appear there. Only data-plane logging (via Diagnostic Settings) will capture reads to service endpoints.
|
||||
- Defender XDR GraphApiAuditEvents (preview) can expose Graph calls and token identifiers but may lack UserAgent and have limited retention.
|
||||
|
||||
Tip: When enumerating for privilege paths, dump users, groups, roles, and role assignments, then ingest in BloodHound and use prebuilt cypher queries to surface Global Administrator/Privileged Role Administrator and transitive escalation via nested groups and RBAC assignments.
|
||||
|
||||
@@ -347,7 +511,7 @@ Launch the BloodHound web with `curl -L https://ghst.ly/getbhce | docker compose
|
||||
|
||||
### [**MicroBurst**](https://github.com/NetSPI/MicroBurst)
|
||||
|
||||
MicroBurst includes functions and scripts that support Azure Services discovery, weak configuration auditing, and post exploitation actions such as credential dumping. It is intended to be used during penetration tests where Azure is in use.
|
||||
MicroBurst sadrži funkcije i skripte koje podržavaju otkrivanje Azure Services, proveru slabih konfiguracija i post exploitation akcije kao što su credential dumping. Namenjen je za upotrebu tokom penetration tests gde se koristi Azure.
|
||||
```bash
|
||||
Import-Module .\MicroBurst.psm1
|
||||
Import-Module .\Get-AzureDomainInfo.ps1
|
||||
@@ -355,9 +519,9 @@ Get-AzureDomainInfo -folder MicroBurst -Verbose
|
||||
```
|
||||
### [**PowerZure**](https://github.com/hausec/PowerZure)
|
||||
|
||||
PowerZure je nastao iz potrebe za framework-om koji može da obavlja i reconnaissance i exploitation nad Azure, EntraID i pripadajućim resursima.
|
||||
PowerZure je nastao iz potrebe za framework-om koji može i da izvrši reconnaissance i exploitation Azure, EntraID i pripadajućih resursa.
|
||||
|
||||
Koristi **Az PowerShell** modul, pa su sve metode autentikacije koje taj modul podržava dostupne alatu.
|
||||
Koristi **Az PowerShell** modul, tako da su dostupne sve metode autentikacije koje Az PowerShell podržava.
|
||||
```bash
|
||||
# Login
|
||||
Import-Module Az
|
||||
@@ -388,7 +552,7 @@ Invoke-AzureRunCommand -Command <command> -VMName <vmname>
|
||||
```
|
||||
### [**GraphRunner**](https://github.com/dafthack/GraphRunner/wiki/Invoke%E2%80%90GraphRunner)
|
||||
|
||||
GraphRunner je set alata za post-exploitation za interakciju sa Microsoft Graph API. Pruža razne alate za izvođenje reconnaissance, persistence i pillaging podataka iz Microsoft Entra ID (Azure AD) naloga.
|
||||
GraphRunner je post-exploitation toolset za interakciju sa Microsoft Graph API. Pruža razne alate za izvođenje reconnaissance, persistence i pillaging podataka iz Microsoft Entra ID (Azure AD) naloga.
|
||||
```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
|
||||
@@ -432,9 +596,9 @@ Invoke-GraphRunner -Tokens $tokens
|
||||
```
|
||||
### [Stormspotter](https://github.com/Azure/Stormspotter)
|
||||
|
||||
Stormspotter kreira “attack graph” resursa u Azure pretplati. Omogućava red teams i pentesters da vizualizuju attack surface i pivot opportunities unutar tenanta, i pojačava vaše defenders kako bi se brzo orijentisali i prioritetizovali incident response rad.
|
||||
Stormspotter kreira “attack graph” resursa u Azure subscription. Omogućava red teams i pentesters da vizualizuju attack surface i pivot opportunities unutar tenant-a, i znatno pomaže vašim defenders da se brzo orijentišu i prioritetizuju incident response zadatke.
|
||||
|
||||
**Nažalost, izgleda da nije održavan**
|
||||
**Nažalost, izgleda neodržavano**.
|
||||
```bash
|
||||
# Start Backend
|
||||
cd stormspotter\backend\
|
||||
@@ -453,10 +617,10 @@ python stormspotter\stormcollector\sscollector.pyz cli
|
||||
# This will generate a .zip file to upload in the frontend (127.0.0.1:9091)
|
||||
```
|
||||
## Reference
|
||||
- [Otkrivanje u oblaku pomoću AzureHound (Unit 42)](https://unit42.paloaltonetworks.com/threat-actor-misuse-of-azurehound/)
|
||||
- [AzureHound repozitorijum](https://github.com/SpecterOps/AzureHound)
|
||||
- [BloodHound repozitorijum](https://github.com/SpecterOps/BloodHound)
|
||||
- [AzureHound Community Edition zastavice](https://bloodhound.specterops.io/collect-data/ce-collection/azurehound-flags)
|
||||
- [Cloud Discovery With AzureHound (Unit 42)](https://unit42.paloaltonetworks.com/threat-actor-misuse-of-azurehound/)
|
||||
- [AzureHound repository](https://github.com/SpecterOps/AzureHound)
|
||||
- [BloodHound repository](https://github.com/SpecterOps/BloodHound)
|
||||
- [AzureHound Community Edition Flags](https://bloodhound.specterops.io/collect-data/ce-collection/azurehound-flags)
|
||||
- [AzureHound constants/environments.go](https://github.com/SpecterOps/AzureHound/blob/main/constants/environments.go)
|
||||
- [AzureHound client/storage_accounts.go](https://github.com/SpecterOps/AzureHound/blob/main/client/storage_accounts.go)
|
||||
- [AzureHound client/roles.go](https://github.com/SpecterOps/AzureHound/blob/main/client/roles.go)
|
||||
|
||||
Reference in New Issue
Block a user