Comandi Amministrativi Cloud: Cloud Administration Command (T1651)

La tecnica T1651 - Cloud Administration Command descrive l'abuso dei servizi di gestione cloud per eseguire codice all'interno di macchine virtuali senza mai toccare direttamente il sistema operativo guest tramite protocolli tradizionali come SSH o RDP. Piattaforme come AWS Systems Manager, Azure RunCommand e Azure Runbooks offrono la possibilità di invocare script su VM attraverso l'agente installato nell'istanza, un canale legittimo che diventa un'arma potente quando un attaccante ottiene credenziali amministrative sul tenant cloud.

Sul piano della kill chain, la tecnica si colloca nella tattica TA0002 (Execution) e rappresenta un pivot cruciale tra il piano di controllo cloud e il piano dati dei workload. Un avversario che compromette un account con ruolo Virtual Machine Contributor in Azure o policy AmazonSSMFullAccess in AWS può eseguire payload arbitrari senza necessità di aprire porte di rete, senza credenziali locali della VM e senza generare traffico di login sospetto sul guest.

L'impatto è amplificato dalla natura trusted di questi canali: le API cloud native sono spesso escluse dai controlli EDR tradizionali e i comandi arrivano firmati dal tenant stesso. Il gruppo APT29 ha operativizzato questa tecnica in scenari reali contro ambienti Azure, e strumenti offensivi come AADInternals e Pacu ne hanno automatizzato lo sfruttamento, rendendola una capability accessibile ben oltre il livello state-sponsored.

In un red team engagement su ambiente cloud, T1651 diventa rilevante subito dopo aver ottenuto credenziali con privilegi amministrativi sul tenant, tipicamente attraverso phishing, consent grant abuse o compromissione di service principal. La fase preparatoria consiste nell'enumerare i workload target e i permessi effettivi dell'identità compromessa.

Su AWS, il tool Pacu (open source) automatizza l'intera catena. Il modulo systemsmanager__rce_ec2 enumera istanze EC2 con agente SSM attivo e privilegi appropriati, poi invoca SendCommand per eseguire payload. La sequenza tipica in Pacu è: run ec2__enum, run iam__enum_permissions, run systemsmanager__rce_ec2 --command "id; uname -a". Il comando AWS CLI equivalente è aws ssm send-command --document-name "AWS-RunShellScript" --targets "Key=instanceids,Values=i-xxxxx" --parameters 'commands=["whoami"]'.

Su Azure, il tool di riferimento è AADInternals (open source, PowerShell). Dopo autenticazione con Get-AADIntAccessTokenForAzureCoreManagement, il cmdlet Invoke-AADIntAzureVMScript -SubscriptionId -ResourceGroup -VM -Script "whoami" esegue il payload tramite l'agente VM senza generare log di login sul guest. In alternativa, il cmdlet nativo Invoke-AzVMRunCommand del modulo Az PowerShell (open source) offre la stessa funzionalità: Invoke-AzVMRunCommand -ResourceGroupName -VMName -CommandId 'RunPowerShellScript' -ScriptPath payload.ps1.

La catena d'attacco tipica prevede alcuni passaggi ricorrenti:

  • Recon del tenant: enumerazione ruoli con Get-AzRoleAssignment o aws iam list-attached-user-policies
  • Selezione target: identificazione VM con agente attivo tramite Get-AzVM -Status o aws ssm describe-instance-information
  • Esecuzione payload: RunCommand con script che stabilisce C2 outbound (Cobalt Strike beacon HTTP, Sliver implant)
  • Persistence: schedulazione di Runbook Azure Automation ricorrenti come backdoor

Un dettaglio spesso trascurato: RunCommand ha un limite di 4096 byte per il payload inline, quindi conviene usare un downloader in due stadi che scarica il secondo stadio da uno storage account controllato. Per l'AOBO (Admin-on-Behalf-of) usato da APT29, il flusso sfrutta il modello di delegated administration dei Cloud Solution Provider: se il red team simula un CSP compromesso, è possibile pivotare sui tenant clienti senza credenziali dirette.

In laboratorio, consiglio di testare in tenant Azure gratuiti (freemium) o AWS Free Tier con VM isolate, verificando che i CloudTrail e Activity Log catturino effettivamente le invocazioni prima di dichiarare il test completato.

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

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.