Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
Quando un avversario ottiene accesso a un ambiente containerizzato, non ha bisogno di compilare malware custom o di sfruttare vulnerabilità esotiche: gli basta usare gli stessi strumenti che gli amministratori utilizzano quotidianamente. La tecnica Container CLI/API descrive proprio questo scenario — l'abuso della CLI di Docker, delle API di Kubernetes o dei rispettivi SDK (Python, Go) per eseguire codice malevolo all'interno di container esistenti o appena creati.
Questa tecnica si colloca nella tattica Execution (TA0002), la fase della kill chain in cui l'attaccante trasforma l'accesso iniziale in esecuzione concreta di comandi. Il vettore è particolarmente insidioso perché i comandi impartiti — docker exec, kubectl exec, chiamate REST all'API server — sono indistinguibili dal traffico operativo legittimo se non si dispone di un contesto adeguato.
L'impatto è amplificato dalla natura stessa dei container: un singolo cluster Kubernetes può ospitare centinaia di pod, e l'accesso all'API server equivale potenzialmente al controllo dell'intera infrastruttura orchestrata. L'attaccante può scaricare immagini contenenti tool offensivi, eseguire comandi di ricognizione con docker inspect o docker ps, e muoversi lateralmente tra namespace. I dati disponibili documentano 1 gruppo APT che ha sfruttato attivamente questa tecnica, 2 mitigazioni raccomandate e un modello di detection strutturato su log di audit Kubernetes, eventi Docker e CloudTrail.
Per simulare questa tecnica in laboratorio serve un ambiente Docker o un cluster Kubernetes locale. Minikube (open source) o kind (open source) sono perfetti per costruire un cluster monouso su cui testare senza rischi. L'obiettivo è replicare il flusso completo: dall'interazione con l'API all'esecuzione di comandi dentro un container target.
Inizia dalla ricognizione. Se hai accesso al Docker socket, puoi enumerare i container attivi esattamente come farebbe un attaccante:
docker ps --format '{{.ID}} {{.Image}} {{.Names}} {{.Status}}'
Questo comando restituisce ID, immagine, nome e stato di ogni container in esecuzione. Il passo successivo è l'ispezione, alla ricerca di variabili d'ambiente che possano contenere credenziali cloud o token di servizio:
docker inspect --format '{{.Config.Env}}' <container_id>
Per eseguire comandi dentro un container già attivo, il vettore più diretto è docker exec. In un esercizio red team, una reverse shell minimale potrebbe apparire così:
docker exec -it <container_id> /bin/sh -c 'whoami && cat /proc/1/environ'
Sul versante Kubernetes, il pattern è analogo ma opera a livello di cluster. La ricognizione parte dall'enumerazione dei pod e dei namespace:
kubectl get pods --all-namespaces -o wide
kubectl get secrets --all-namespaces
L'esecuzione di comandi in un pod specifico avviene tramite:
kubectl exec -it <pod_name> -n
Un test particolarmente rilevante riguarda l'accesso diretto all'API server senza kubectl, simulando uno scenario in cui l'attaccante dispone solo di curl e di un service account token rubato:
curl -k -H "Authorization: Bearer
Per il pull di immagini contenenti tool offensivi — comportamento documentato nella tecnica — si può simulare lo scaricamento di un'immagine pubblica con utility integrate:
docker pull curlimages/curl && docker run --rm curlimages/curl curl
Sul piano degli SDK, un red teamer può scrivere poche righe Python con la libreria docker (open source) per interagire programmaticamente con il daemon. Questa modalità è più difficile da rilevare perché non genera log CLI tradizionali. Strumenti come kubeaudit (open source) e kube-hunter (open source) permettono di verificare sistematicamente le misconfigurazioni del cluster che abiliterebbero queste operazioni.
Ricorda di documentare ogni passo: un buon report di penetration test su container deve includere il livello di accesso iniziale (socket Docker esposto, RBAC permissivo, credenziali leaked) e la catena di comandi che ha portato all'esecuzione.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo