Esecuzione via Cloud API: Command and Scripting Interpreter – Cloud API (T1059.009)

Quando un avversario ottiene credenziali valide per un ambiente cloud — un token OAuth, una chiave API, un cookie di sessione — non ha bisogno di installare malware su un endpoint. Gli basta una chiamata API. La tecnica Cloud API descrive proprio questo scenario: l'abuso delle interfacce programmatiche offerte da AWS, Azure e GCP per eseguire comandi arbitrari con i privilegi dell'account compromesso.

La tecnica si colloca nella tattica Execution (TA0002), la fase della kill chain in cui l'avversario passa dall'accesso iniziale all'esecuzione concreta di codice malevolo. In ambito cloud, "esecuzione" assume un significato più ampio rispetto al classico shell su host: una singola invocazione API può creare macchine virtuali, modificare policy IAM, esfiltrare interi bucket di storage o disabilitare controlli di sicurezza — tutto senza toccare un filesystem locale.

I vettori d'accesso alle API sono molteplici: CLI ufficiali come aws, az e gcloud, moduli PowerShell come Az e AADInternals, SDK in Python (boto3), browser-based Cloud Shell, e framework offensivi dedicati. Il dataset associato conta 3 gruppi APT, 1 tool offensivo, 2 mitigazioni e una regola di detection comportamentale. Numeri contenuti, ma che riflettono una superficie d'attacco in espansione rapida: ogni nuovo servizio cloud espone nuovi endpoint API, e con essi nuove opportunità per chi possiede credenziali valide.


La simulazione di questa tecnica in laboratorio richiede un ambiente cloud di test con credenziali a permessi controllati. L'obiettivo è dimostrare come, partendo da un set di credenziali rubate, un attaccante possa operare interamente tramite API senza mai installare agenti sull'infrastruttura target.

Enumerazione con AWS CLI. Il punto di partenza naturale replica ciò che fa TeamTNT: configurare la CLI con credenziali compromesse e procedere a riconoscimento. Dopo aver configurato un profilo con aws configure --profile compromised, si può iniziare con un comando di verifica identità:

aws sts get-caller-identity --profile compromised

Questo restituisce Account ID, ARN e User ID — informazioni essenziali per capire che privilegi ha il token. Da lì si procede con enumerazione delle risorse:

aws s3 ls --profile compromised aws ec2 describe-instances --profile compromised --region us-east-1 aws iam list-users --profile compromised

Pacu per l'automazione. Il framework Pacu (open source) di Rhino Security Labs automatizza queste operazioni concatenando moduli di enumerazione e privilege escalation. Si installa tramite pip e opera come wrapper intelligente attorno alla CLI AWS. Dopo l'avvio con python3 pacu.py e l'importazione delle chiavi, moduli come iam__enum_permissions e ec2__enum producono un quadro completo dell'ambiente in pochi minuti.

Simulazione Azure con Az PowerShell e AADInternals. Per replicare le tecniche di APT29, si opera in un tenant Azure di laboratorio. Dopo l'autenticazione con Connect-AzAccount, il modulo Az consente operazioni come:

Get-AzResource Get-AzRoleAssignment

Per un approccio più aggressivo, il modulo AADInternals (open source) espone funzionalità che interagiscono direttamente con le API Microsoft Graph e Azure AD, replicando le procedure documentate per APT29. L'installazione avviene con Install-Module AADInternals e l'accesso con Get-AADIntAccessTokenForMSGraph.

GCP con gcloud CLI. Completando il trittico, l'autenticazione con gcloud auth activate-service-account --key-file=<file-chiave.json> permette enumerazione analoga: gcloud projects list, gcloud compute instances list, gcloud iam service-accounts list.

In ogni caso, documentate con timestamp ogni azione e limitate il perimetro al tenant di test. L'uso di credenziali cloud reali non autorizzate è reato anche in contesto di pentest.


Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo