AWS Pentesting
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Informazioni di base
Prima di iniziare il pentesting di un ambiente AWS ci sono alcune cose di base che devi sapere su come funziona AWS per aiutarti a capire cosa devi fare, come trovare configurazioni errate e come sfruttarle.
Concetti come la gerarchia dell'organizzazione, IAM e altri concetti di base sono spiegati in:
AWS - Basic InformationLaboratori per imparare
Strumenti per simulare attacchi:
Metodologia Pentester/Red Team AWS
Per auditare un ambiente AWS è molto importante sapere: quali servizi vengono utilizzati, cosa è esposto, chi ha accesso a cosa e come sono collegati i servizi AWS interni e i servizi esterni.
Dal punto di vista del Red Team, il primo passo per compromettere un ambiente AWS è riuscire a ottenere alcune credenziali. Ecco alcune idee su come farlo:
Leaks in github (o simili) - OSINT
Ingegneria Sociale
Riutilizzo delle password (password leaks)
Vulnerabilità nelle applicazioni ospitate su AWS
Server Side Request Forgery con accesso all'endpoint dei metadati
Lettura di file locali
/home/USERNAME/.aws/credentials
C:\Users\USERNAME\.aws\credentials
3rd parties compromesse
Dipendente Interno
Cognito credenziali
Oppure compromettendo un servizio non autenticato esposto:
AWS - Unauthenticated Enum & AccessOppure se stai facendo una revisione potresti semplicemente chiedere le credenziali con questi ruoli:
AWS - Permissions for a PentestDopo 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 una SSRF in una macchina all'interno di AWS, controlla questa pagina per trucchi:
Whoami
Una delle prime cose che devi sapere è chi sei (in quale account ti trovi e altre informazioni sull'ambiente AWS):
Nota che le aziende potrebbero utilizzare canary tokens per identificare quando i token vengono rubati e utilizzati. È consigliato verificare se un token è un canary token o meno prima di usarlo. Per maggiori informazioni controlla questa pagina.
Enumerazione dell'Organizzazione
AWS - Organizations EnumEnumerazione IAM
Se hai abbastanza permessi, controllare i privilegi di ogni entità all'interno dell'account AWS ti aiuterà a capire cosa tu e altre identità potete fare e come escalare i privilegi.
Se non hai abbastanza permessi per enumerare IAM, puoi rubare e forzare brutalmente per scoprirli. Controlla come fare l'enumerazione e il brute-forcing in:
AWS - IAM, Identity Center & SSO EnumOra che hai alcune informazioni sulle tue credenziali (e se sei un red team speriamo che non sei stato rilevato). È il momento di capire quali servizi vengono utilizzati nell'ambiente. Nella sezione seguente puoi controllare alcuni modi per enumerare alcuni servizi comuni.
Enumerazione dei Servizi, Post-Exploitation & Persistenza
AWS ha un'incredibile quantità di servizi, nella pagina seguente troverai informazioni di base, cheatsheet di enumerazione, come evitare il rilevamento, ottenere persistenza e altri trucchi di post-exploitation su alcuni di essi:
AWS - ServicesNota che non è necessario eseguire tutto il lavoro manualmente, qui sotto in questo post puoi trovare una sezione sui strumenti automatici.
Inoltre, in questa fase potresti aver scoperto più servizi esposti agli utenti non autenticati, potresti essere in grado di sfruttarli:
AWS - Unauthenticated Enum & AccessEscalation dei Privilegi
Se puoi controllare almeno i tuoi permessi su diverse risorse, potresti verificare se sei in grado di ottenere ulteriori permessi. Dovresti concentrarti almeno sui permessi indicati in:
AWS - Privilege EscalationServizi Esposti Pubblicamente
Durante l'enumerazione dei servizi AWS potresti aver trovato alcuni di essi che espongono elementi a Internet (porte VM/Containers, database o servizi di coda, snapshot o bucket...). Come pentester/red teamer dovresti sempre verificare se puoi trovare informazioni sensibili / vulnerabilità su di essi poiché potrebbero fornirti ulteriore accesso all'account AWS.
In questo libro dovresti trovare informazioni su come trovare servizi AWS esposti e come controllarli. Per quanto riguarda come trovare vulnerabilità nei servizi di rete esposti ti consiglio di cercare il servizio specifico in:
Compromettere l'Organizzazione
Dall'account root/management
Quando l'account di gestione crea nuovi account nell'organizzazione, viene creato un nuovo ruolo nel nuovo account, di default chiamato OrganizationAccountAccessRole
e che assegna la policy AdministratorAccess all'account di gestione per accedere al nuovo account.
![](https://cloud.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F109713985-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FSeBtjKurjq2uRti4Bnzw%252Fuploads%252Fgit-blob-65df30a8c2788c2946692c65374c0e2c610bf772%252Fimage%2520%28171%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=2ab86e7d&sv=1)
Quindi, per accedere come amministratore a un account figlio hai bisogno di:
Compromettere l'account di gestione e trovare l'ID degli account figli e i nomi del ruolo (OrganizationAccountAccessRole per default) che consente all'account di gestione di accedere come admin.
Per trovare gli account figli vai alla sezione organizzazioni nella console aws o esegui
aws organizations list-accounts
Non puoi trovare direttamente il nome dei ruoli, quindi controlla tutte le policy IAM personalizzate e cerca qualsiasi che consenta
sts:AssumeRole
sugli account figli precedentemente scoperti.Compromettere un principale nell'account di gestione con permesso
sts:AssumeRole
sul ruolo negli account figli (anche se l'account consente a chiunque dell'account di gestione di impersonare, poiché è un account esterno, sono necessari permessi specificists:AssumeRole
).
Strumenti Automatici
Ricognizione
aws-recon: Uno strumento di raccolta inventario multi-threaded incentrato sulla sicurezza AWS scritto in Ruby.
cloudlist: Cloudlist è uno strumento multi-cloud per ottenere Asset (Nomi host, Indirizzi IP) dai Cloud Provider.
cloudmapper: CloudMapper ti aiuta ad analizzare i tuoi ambienti Amazon Web Services (AWS). Ora contiene molte più funzionalità, inclusa l'auditing per problemi di sicurezza.
cartography: Cartography è uno strumento Python che consolida le risorse dell'infrastruttura e le relazioni tra di esse in una vista grafica intuitiva alimentata da un database Neo4j.
starbase: Starbase raccoglie asset e relazioni da servizi e sistemi, inclusi cloud infrastructure, applicazioni SaaS, controlli di sicurezza e altro in una vista grafica intuitiva supportata dal database Neo4j.
aws-inventory: (Usa python2) Questo è uno strumento che cerca di scoprire tutte le risorse AWS create in un account.
aws_public_ips: È uno strumento per recuperare tutti gli indirizzi IP pubblici (sia IPv4/IPv6) associati a un account AWS.
Privesc & Exploiting
SkyArk: Scopri gli utenti più privilegiati nell'ambiente AWS scansionato, inclusi gli AWS Shadow Admins. Usa powershell. Puoi trovare la definizione delle politiche privilegiate nella funzione
Check-PrivilegedPolicy
in https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1.pacu: Pacu è un AWS exploitation framework open-source, progettato per test di sicurezza offensiva 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 all'interno del dizionario
user_escalation_methods
.Nota che pacu controlla solo i tuoi percorsi di privesc (non a livello di account).
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 IAM Users e Roles in un account come un grafo diretto, il che consente di verificare l'escalation dei privilegi e i percorsi alternativi che un attaccante potrebbe seguire per ottenere l'accesso a una risorsa o azione in AWS. Puoi controllare i permessi utilizzati per trovare i percorsi di privesc nei nomi dei file che terminano in
_edges.py
in https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing
cloudsplaining: Cloudsplaining è uno strumento di valutazione della sicurezza IAM di AWS che identifica le violazioni del principio del privilegio minimo e genera un report HTML prioritizzato per rischio. Ti mostrerà i clienti potenzialmente eccessivamente privilegiati, le policy inline e aws e quali principali hanno accesso a esse. (Non controlla solo per privesc ma anche altri tipi di permessi interessanti, consigliato l'uso).
cloudjack: CloudJack valuta gli account AWS per vulnerabilità di subdomain hijacking a causa di configurazioni decouple di Route53 e CloudFront.
ccat: Elenca i repository ECR -> Scarica il repository ECR -> Inserisci una backdoor -> Carica l'immagine con backdoor
Dufflebag: Dufflebag è uno strumento che cerca tra gli snapshot pubblici di Elastic Block Storage (EBS) segreti che potrebbero essere stati lasciati accidentalmente.
Audit
cloudsploit: CloudSploit di Aqua è un progetto open-source progettato per consentire il rilevamento di rischi di sicurezza nelle infrastrutture cloud account, inclusi: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI) e GitHub (Non cerca ShadowAdmins).
Prowler: Prowler è uno strumento di sicurezza Open Source per eseguire valutazioni delle migliori pratiche di sicurezza AWS, audit, risposta agli incidenti, monitoraggio continuo, hardening e preparazione alla forensica.
CloudFox: CloudFox ti aiuta a ottenere consapevolezza situazionale in ambienti cloud sconosciuti. È uno strumento a riga di comando open source creato per aiutare i penetration tester e altri professionisti della sicurezza offensiva a trovare percorsi di attacco sfruttabili nell'infrastruttura cloud.
ScoutSuite: Scout Suite è uno strumento open source per l'auditing della sicurezza multi-cloud, che consente la valutazione della postura di sicurezza degli ambienti cloud.
cs-suite: Cloud Security Suite (usa python2.7 e sembra non mantenuto)
Zeus: Zeus è uno strumento potente per le migliori pratiche di hardening di AWS EC2 / S3 / CloudTrail / CloudWatch / KMS (sembra non mantenuto). Controlla solo le credenziali configurate di default all'interno del sistema.
Audit Costante
cloud-custodian: Cloud Custodian è un motore di regole per la gestione di account e risorse cloud pubbliche. Consente agli utenti di definire politiche per abilitare un'infrastruttura cloud ben gestita, sicura e ottimizzata nei costi. Consolida molti degli script ad hoc che le organizzazioni hanno in uno strumento leggero e flessibile, con metriche e report unificati.
pacbot: Policy as Code Bot (PacBot) è una piattaforma per il monitoraggio continuo della conformità, la reportistica della conformità e l'automazione della sicurezza per il cloud. In PacBot, le politiche di sicurezza e conformità sono implementate come codice. Tutte le risorse scoperte da PacBot sono valutate rispetto a queste politiche per misurare la conformità alle politiche. Il framework auto-fix di PacBot fornisce la capacità di rispondere automaticamente alle violazioni delle politiche prendendo azioni predefinite.
streamalert: StreamAlert è un framework di analisi dati in tempo reale senza server che ti consente di ingestire, analizzare e allertare sui dati provenienti da qualsiasi ambiente, utilizzando fonti di dati e logiche di allerta che definisci. I team di sicurezza informatica utilizzano StreamAlert per scansionare terabyte di dati di log ogni giorno per il rilevamento e la risposta agli incidenti.
DEBUG: Catturare le richieste AWS cli
Riferimenti
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated