Token Rubati, Accesso Garantito: Application Access Token (T1550.001)

Quando un avversario entra in possesso di un token di accesso applicativo — OAuth, JWT, service account token Kubernetes o credenziali temporanee AWS STS — può presentarsi ai servizi remoti come un utente legittimo, senza mai digitare una password e senza attivare il secondo fattore di autenticazione. La tecnica T1550.001 – Application Access Token ricade sotto due tattiche distinte: Defense Evasion (TA0005), perché il traffico generato con un token valido si confonde perfettamente con quello autorizzato, e Lateral Movement (TA0008), perché il token consente di raggiungere risorse cloud, SaaS e container altrimenti inaccessibili senza credenziali proprie.

Il meccanismo è semplice nella teoria: framework come OAuth 2.0 rilasciano un access token (e spesso un refresh token di lunga durata) a un'applicazione autorizzata dall'utente. Se l'attaccante sottrae o forgia quel token, eredita i permessi dell'utente senza che il provider rilevi anomalie evidenti, dato che le chiamate API restano formalmente legittime. In ambienti AWS e GCP il problema si amplifica: un token temporaneo ottenuto tramite sts:GetFederationToken o sts:AssumeRole può sopravvivere alla disattivazione delle credenziali originali. I dati disponibili collegano questa tecnica a 2 gruppi APT, 2 software, 1 campagna documentata e 5 mitigazioni specifiche.


L'obiettivo in laboratorio è dimostrare che un token sottratto permette di operare come l'utente vittima senza bisogno di password né MFA. L'esercizio si articola su tre superfici d'attacco: cloud AWS, Microsoft 365/Entra ID e ambienti Kubernetes.

AWS — Sessione federata persistente. Partendo da credenziali API compromesse (access key + secret key), è possibile creare una sessione federata che sopravvive alla revoca delle chiavi originali:

aws sts get-federation-token --name attacker-session --policy '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"","Resource":""}]}' --duration-seconds 43200

Il risultato è un set di credenziali temporanee valide fino a 12 ore. Per simulare l'assunzione di ruolo cross-account, dove i permessi IAM lo consentano:

aws sts assume-role --role-arn arn:aws:iam::ACCOUNT_ID:role/TARGET_ROLE --role-session-name red-team-test

Entrambi i comandi generano eventi CloudTrail distinti (GetFederationToken, AssumeRole) che il blue team deve rilevare.

Microsoft 365 — Abuso di refresh token OAuth. Con ROADtools (open source), il penetration tester può importare un refresh token sottratto e accedere a Microsoft Graph senza credenziali interattive. Il toolkit consente di enumerare utenti, caselle email e permessi delegati attraverso le API REST di Entra ID. Un'alternativa per ottenere token in modo controllato è TokenTacticsV2 (open source), che implementa flussi OAuth device code e permette di acquisire refresh token per tenant Microsoft durante ingaggi autorizzati.

Kubernetes — Service account token. Lo strumento Peirates (open source) è progettato per ambienti Kubernetes e consente di utilizzare token di service account rubati per autenticarsi verso l'API server del cluster. Una volta caricato un token valido, Peirates permette di switchare tra service account diversi, enumerare secret, e tentare movimenti laterali tra namespace. In alternativa, il comando nativo:

kubectl --token= --server= get secrets --all-namespaces

dimostra immediatamente il raggio d'azione del token compromesso.

Per l'intera catena d'attacco è consigliabile utilizzare Burp Suite (freemium) come proxy per intercettare e manipolare i flussi OAuth durante le fasi di autorizzazione, verificando se l'applicazione target valida correttamente scope e redirect URI.


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

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