mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-14 13:56:30 -08:00
Translated ['src/banners/hacktricks-training.md', 'src/pentesting-ci-cd/
This commit is contained in:
@@ -33,7 +33,7 @@ Per auditare un ambiente AWS è molto importante sapere: quali **servizi vengono
|
||||
|
||||
Dal punto di vista di un Red Team, il **primo passo per compromettere un ambiente AWS** è riuscire a ottenere alcune **credenziali**. Ecco alcune idee su come farlo:
|
||||
|
||||
- **Leak** su github (o simili) - OSINT
|
||||
- **Leaks** in github (o simili) - OSINT
|
||||
- **Ingegneria** Sociale
|
||||
- Riutilizzo della **Password** (leak di password)
|
||||
- Vulnerabilità nelle Applicazioni Ospitate su AWS
|
||||
@@ -45,26 +45,26 @@ Dal punto di vista di un Red Team, il **primo passo per compromettere un ambient
|
||||
- **Dipendente** Interno
|
||||
- [**Cognito** ](aws-services/aws-cognito-enum/#cognito)credenziali
|
||||
|
||||
Oppure **compromettendo un servizio non autenticato** esposto:
|
||||
Oppure compromettendo un servizio non autenticato esposto:
|
||||
|
||||
{{#ref}}
|
||||
aws-unauthenticated-enum-access/
|
||||
{{#endref}}
|
||||
|
||||
O se stai facendo una **revisione** potresti semplicemente **chiedere le credenziali** con questi ruoli:
|
||||
Oppure, se stai facendo una **revisione**, potresti semplicemente **chiedere le credenziali** con questi ruoli:
|
||||
|
||||
{{#ref}}
|
||||
aws-permissions-for-a-pentest.md
|
||||
{{#endref}}
|
||||
|
||||
> [!NOTE]
|
||||
> Dopo aver ottenuto le credenziali, devi sapere **a chi appartengono quelle credenziali**, e **a cosa hanno accesso**, quindi devi eseguire alcune enumerazioni di base:
|
||||
> Dopo aver ottenuto le credenziali, devi sapere **a chi appartengono quelle credenziali** e **a cosa hanno accesso**, quindi devi eseguire alcune enumerazioni di base:
|
||||
|
||||
## Enumerazione di base
|
||||
|
||||
### SSRF
|
||||
|
||||
Se hai trovato un SSRF in una macchina all'interno di AWS controlla questa pagina per trucchi:
|
||||
Se hai trovato un SSRF in una macchina all'interno di AWS, controlla questa pagina per trucchi:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
|
||||
@@ -89,7 +89,7 @@ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metad
|
||||
curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/document
|
||||
```
|
||||
> [!CAUTION]
|
||||
> Nota che le aziende potrebbero utilizzare **canary tokens** per identificare quando **i token vengono rubati e utilizzati**. È consigliato controllare se un token è un canary token o meno prima di utilizzarlo.\
|
||||
> Nota che le aziende potrebbero utilizzare **canary tokens** per identificare quando **i token vengono rubati e utilizzati**. Si consiglia di controllare se un token è un canary token o meno prima di utilizzarlo.\
|
||||
> Per ulteriori informazioni [**controlla questa pagina**](aws-services/aws-security-and-detection-services/aws-cloudtrail-enum.md#honeytokens-bypass).
|
||||
|
||||
### Org Enumeration
|
||||
@@ -100,9 +100,9 @@ aws-services/aws-organizations-enum.md
|
||||
|
||||
### IAM Enumeration
|
||||
|
||||
Se hai abbastanza permessi, **controllare i privilegi di ciascuna entità all'interno dell'account AWS** ti aiuterà a capire cosa puoi fare tu e altre identità e come **escalare i privilegi**.
|
||||
Se hai abbastanza permessi, **controllare i privilegi di ciascuna entità all'interno dell'account AWS** ti aiuterà a capire cosa puoi fare e cosa possono fare altre identità e come **escalare i privilegi**.
|
||||
|
||||
Se non hai abbastanza permessi per enumerare IAM, puoi **rubare e forzare** per scoprirli.\
|
||||
Se non hai abbastanza permessi per enumerare IAM, puoi **rubare bruteforce** per scoprirli.\
|
||||
Controlla **come fare l'enumerazione e il brute-forcing** in:
|
||||
|
||||
{{#ref}}
|
||||
@@ -110,12 +110,12 @@ aws-services/aws-iam-enum.md
|
||||
{{#endref}}
|
||||
|
||||
> [!NOTE]
|
||||
> Ora che **hai alcune informazioni sulle tue credenziali** (e se sei un red team, speriamo che tu **non sia stato rilevato**). È tempo di scoprire quali servizi vengono utilizzati nell'ambiente.\
|
||||
> Ora che **hai alcune informazioni sulle tue credenziali** (e se sei un red team speriamo che **non sei stato rilevato**). È tempo di scoprire quali servizi vengono utilizzati nell'ambiente.\
|
||||
> Nella sezione seguente puoi controllare alcuni modi per **enumerare alcuni servizi comuni.**
|
||||
|
||||
## Services Enumeration, Post-Exploitation & Persistence
|
||||
|
||||
AWS ha un numero sorprendente di servizi, nella pagina seguente troverai **informazioni di base, enumerazione** cheatsheets\*\*,\*\* come **evitare il rilevamento**, ottenere **persistenza** e altri **trucchi post-exploitation** su alcuni di essi:
|
||||
AWS ha un numero straordinario di servizi, nella pagina seguente troverai **informazioni di base, enumerazione** cheatsheets\*\*,\*\* come **evitare il rilevamento**, ottenere **persistenza** e altri **trucchi di post-exploitation** su alcuni di essi:
|
||||
|
||||
{{#ref}}
|
||||
aws-services/
|
||||
@@ -152,16 +152,16 @@ https://book.hacktricks.xyz/
|
||||
|
||||
### From the root/management account
|
||||
|
||||
Quando l'account di gestione crea nuovi account nell'organizzazione, viene creata una **nuova funzione** nel nuovo account, chiamata per impostazione predefinita **`OrganizationAccountAccessRole`** e viene concessa la policy **AdministratorAccess** all'**account di gestione** per accedere al nuovo account.
|
||||
Quando l'account di gestione crea nuovi account nell'organizzazione, viene creata una **nuova role** nel nuovo account, chiamata per impostazione predefinita **`OrganizationAccountAccessRole`** e dando la policy **AdministratorAccess** all'**account di gestione** per accedere al nuovo account.
|
||||
|
||||
<figure><img src="../../images/image (171).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Quindi, per accedere come amministratore a un account secondario, hai bisogno di:
|
||||
Quindi, per accedere come amministratore a un account secondario, devi:
|
||||
|
||||
- **Compromettere** l'**account di gestione** e trovare l'**ID** degli **account secondari** e i **nomi** della **funzione** (OrganizationAccountAccessRole per impostazione predefinita) che consente all'account di gestione di accedere come admin.
|
||||
- **Compromettere** l'**account di gestione** e trovare l'**ID** degli **account secondari** e i **nomi** della **role** (OrganizationAccountAccessRole per impostazione predefinita) che consente all'account di gestione di accedere come admin.
|
||||
- Per trovare gli account secondari, vai alla sezione organizzazioni nella console aws o esegui `aws organizations list-accounts`
|
||||
- Non puoi trovare il nome delle funzioni direttamente, quindi controlla tutte le policy IAM personalizzate e cerca qualsiasi cosa che consenta **`sts:AssumeRole` sugli account secondari precedentemente scoperti**.
|
||||
- **Compromettere** un **principale** nell'account di gestione con **`sts:AssumeRole` permesso sulla funzione negli account secondari** (anche se l'account consente a chiunque dell'account di gestione di impersonare, poiché è un account esterno, sono necessari permessi specifici `sts:AssumeRole`).
|
||||
- Non puoi trovare il nome delle role direttamente, quindi controlla tutte le policy IAM personalizzate e cerca qualsiasi cosa che consenta **`sts:AssumeRole` sugli account secondari precedentemente scoperti**.
|
||||
- **Compromettere** un **principale** nell'account di gestione con **`sts:AssumeRole` permesso sulla role negli account secondari** (anche se l'account consente a chiunque dell'account di gestione di impersonare, poiché è un account esterno, sono necessari permessi specifici `sts:AssumeRole`).
|
||||
|
||||
## Automated Tools
|
||||
|
||||
@@ -234,12 +234,12 @@ pip install cartography
|
||||
AWS_PROFILE=dev cartography --neo4j-uri bolt://127.0.0.1:7687 --neo4j-password-prompt --neo4j-user neo4j
|
||||
```
|
||||
- [**starbase**](https://github.com/JupiterOne/starbase): Starbase raccoglie asset e relazioni da servizi e sistemi, inclusa l'infrastruttura cloud, applicazioni SaaS, controlli di sicurezza e altro, in una vista grafica intuitiva supportata dal database Neo4j.
|
||||
- [**aws-inventory**](https://github.com/nccgroup/aws-inventory): (Usa python2) Questo è uno strumento che cerca di **scoprire tutte** le [**risorse AWS**](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#resource) create in un account.
|
||||
- [**aws-inventory**](https://github.com/nccgroup/aws-inventory): (Usa python2) Questo è uno strumento che cerca di **scoprire tutti** [**le risorse AWS**](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#resource) create in un account.
|
||||
- [**aws_public_ips**](https://github.com/arkadiyt/aws_public_ips): È uno strumento per **recuperare tutti gli indirizzi IP pubblici** (sia IPv4 che IPv6) associati a un account AWS.
|
||||
|
||||
### Privesc & Exploiting
|
||||
|
||||
- [**SkyArk**](https://github.com/cyberark/SkyArk)**:** Scopri gli utenti più privilegiati nell'ambiente AWS scansionato, inclusi gli AWS Shadow Admins. Utilizza PowerShell. Puoi trovare la **definizione delle politiche privilegiate** nella funzione **`Check-PrivilegedPolicy`** in [https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1](https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1).
|
||||
- [**SkyArk**](https://github.com/cyberark/SkyArk)**:** Scopri gli utenti più privilegiati nell'ambiente AWS scansionato, inclusi gli AWS Shadow Admins. Utilizza powershell. Puoi trovare la **definizione delle politiche privilegiate** nella funzione **`Check-PrivilegedPolicy`** in [https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1](https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1).
|
||||
- [**pacu**](https://github.com/RhinoSecurityLabs/pacu): Pacu è un **framework di sfruttamento AWS** open-source, progettato per test di sicurezza offensivi contro ambienti cloud. Può **enumerare**, trovare **configurazioni errate** e **sfruttarle**. Puoi trovare la **definizione dei permessi privilegiati** in [https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam\_\_privesc_scan/main.py#L134](https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134) all'interno del dizionario **`user_escalation_methods`**.
|
||||
- Nota che pacu **controlla solo i tuoi percorsi di privesc** (non a livello di account).
|
||||
```bash
|
||||
@@ -255,7 +255,7 @@ pacu
|
||||
> exec iam__enum_permissions # Get permissions
|
||||
> exec iam__privesc_scan # List privileged permissions
|
||||
```
|
||||
- [**PMapper**](https://github.com/nccgroup/PMapper): Principal Mapper (PMapper) è uno script e una libreria per identificare i rischi nella configurazione di AWS Identity and Access Management (IAM) per un account AWS o un'organizzazione AWS. Modella i diversi utenti e ruoli IAM in un account come un grafo diretto, il che consente controlli per **l'escalation dei privilegi** e per percorsi alternativi che un attaccante potrebbe seguire per ottenere accesso a una risorsa o azione in AWS. Puoi controllare le **permissive utilizzate per trovare percorsi di privesc** nei nomi dei file che terminano con `_edges.py` in [https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing](https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing)
|
||||
- [**PMapper**](https://github.com/nccgroup/PMapper): Principal Mapper (PMapper) è uno script e una libreria per identificare i rischi nella configurazione di AWS Identity and Access Management (IAM) per un account AWS o un'organizzazione AWS. Modella i diversi utenti e ruoli IAM in un account come un grafo diretto, il che consente controlli per **privilege escalation** e per percorsi alternativi che un attaccante potrebbe seguire per ottenere accesso a una risorsa o azione in AWS. Puoi controllare le **permissions utilizzate per trovare percorsi di privesc** nei nomi dei file che terminano con `_edges.py` in [https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing](https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing)
|
||||
```bash
|
||||
# Install
|
||||
pip install principalmapper
|
||||
@@ -277,8 +277,8 @@ pmapper --profile dev query 'preset privesc *' # Get privescs with admins
|
||||
pmapper --profile dev orgs create
|
||||
pmapper --profile dev orgs display
|
||||
```
|
||||
- [**cloudsplaining**](https://github.com/salesforce/cloudsplaining): Cloudsplaining è uno strumento di valutazione della sicurezza AWS IAM che identifica le violazioni del principio del minimo privilegio e genera un rapporto HTML prioritizzato per il rischio.\
|
||||
Mostrerà i clienti **eccessivamente privilegiati**, le **politiche** inline e aws e quali **principali hanno accesso a esse**. (Non controlla solo per privesc ma anche altri tipi di permessi interessanti, si consiglia di usarlo).
|
||||
- [**cloudsplaining**](https://github.com/salesforce/cloudsplaining): Cloudsplaining è uno strumento di valutazione della sicurezza AWS IAM che identifica le violazioni del principio del minimo privilegio e genera un rapporto HTML prioritizzato per rischio.\
|
||||
Mostrerà i clienti **eccessivamente privilegiati**, le **policy** inline e aws e quali **principali hanno accesso a esse**. (Controlla non solo per privesc ma anche altri tipi di permessi interessanti, consigliato da usare).
|
||||
```bash
|
||||
# Install
|
||||
pip install cloudsplaining
|
||||
@@ -303,7 +303,7 @@ cloudsplaining scan --input-file /private/tmp/cloudsplaining/dev.json --output /
|
||||
# Compiance options: --compliance {hipaa,cis,cis1,cis2,pci}
|
||||
## use "cis" for cis level 1 and 2
|
||||
```
|
||||
- [**Prowler**](https://github.com/prowler-cloud/prowler): Prowler è uno strumento di sicurezza Open Source per eseguire valutazioni delle migliori pratiche di sicurezza AWS, audit, risposta agli incidenti, monitoraggio continuo, indurimento e prontezza forense.
|
||||
- [**Prowler**](https://github.com/prowler-cloud/prowler): Prowler è uno strumento di sicurezza Open Source per eseguire valutazioni delle migliori pratiche di sicurezza AWS, audit, risposta agli incidenti, monitoraggio continuo, indurimento e preparazione forense.
|
||||
```bash
|
||||
# Install python3, jq and git
|
||||
# Install
|
||||
@@ -334,9 +334,9 @@ scout aws -p dev
|
||||
|
||||
### Audit Costante
|
||||
|
||||
- [**cloud-custodian**](https://github.com/cloud-custodian/cloud-custodian): Cloud Custodian è un motore di regole per gestire account e risorse nel cloud pubblico. Permette agli utenti di **definire politiche per abilitare un'infrastruttura cloud ben gestita**, che sia sia sicura che ottimizzata in termini di costi. Consolida molti degli script ad hoc che le organizzazioni hanno in uno strumento leggero e flessibile, con metriche e report unificati.
|
||||
- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** è una piattaforma per **monitoraggio continuo della conformità, reportistica sulla conformità e automazione della sicurezza per il clou**d. In PacBot, le politiche di sicurezza e conformità sono implementate come codice. Tutte le risorse scoperte da PacBot vengono valutate rispetto a queste politiche per misurare la conformità alle politiche. Il framework **auto-fix** di PacBot fornisce la possibilità di rispondere automaticamente alle violazioni delle politiche intraprendendo azioni predefinite.
|
||||
- [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert è un framework di analisi dei dati **in tempo reale** senza server che ti consente di **ingestire, analizzare e avvisare** sui dati provenienti da qualsiasi ambiente, **utilizzando le fonti di dati e la logica di avviso che definisci**. I team di sicurezza informatica utilizzano StreamAlert per scansionare terabyte di dati di log ogni giorno per la rilevazione e risposta agli incidenti.
|
||||
- [**cloud-custodian**](https://github.com/cloud-custodian/cloud-custodian): Cloud Custodian è un motore di regole per gestire account e risorse nel cloud pubblico. Permette agli utenti di **definire politiche per abilitare un'infrastruttura cloud ben gestita**, sicura e ottimizzata in termini di costi. Consolida molti degli script ad hoc che le organizzazioni hanno in uno strumento leggero e flessibile, con metriche e report unificati.
|
||||
- [**pacbot**](https://github.com/tmobile/pacbot)**: Policy as Code Bot (PacBot)** è una piattaforma per **monitoraggio continuo della conformità, reporting della conformità e automazione della sicurezza per il clou**d. In PacBot, le politiche di sicurezza e conformità sono implementate come codice. Tutte le risorse scoperte da PacBot vengono valutate rispetto a queste politiche per misurare la conformità alle politiche. Il framework **auto-fix** di PacBot fornisce la possibilità di rispondere automaticamente alle violazioni delle politiche intraprendendo azioni predefinite.
|
||||
- [**streamalert**](https://github.com/airbnb/streamalert)**:** StreamAlert è un framework di analisi dei dati **in tempo reale** senza server che ti consente di **acquisire, analizzare e allertare** sui dati provenienti da qualsiasi ambiente, **utilizzando le fonti di dati e la logica di allerta che definisci**. I team di sicurezza informatica utilizzano StreamAlert per scansionare terabyte di dati di log ogni giorno per la rilevazione e risposta agli incidenti.
|
||||
|
||||
## DEBUG: Cattura delle richieste AWS cli
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user