IT | Agent Tesla
Analisi approfondita di Agent Tesla: dal vettore di infezione al payload finale, passando per le tecniche di evasione AMSI e il furto di credenziali.
⚠️ Disclaimer: Sono uno studente appassionato di cybersecurity e non un esperto del settore. Questo articolo è frutto dei miei studi personali: è molto probabile che contenga imprecisioni o errori tecnici. Vi prego di essere clementi e di considerare questo testo come un percorso di apprendimento condiviso. Ogni correzione o feedback costruttivo è ben accetto.
Indice
- Introduzione
- Evoluzione e Modello Operativo
- Analisi del Vettore di Infezione
- Il Loader e la Reflection
- Evasione delle Difese
- Analisi del Payload
Introduzione
L'evoluzione delle minacce cibernetiche ha portato alla ribalta attori malevoli sempre più sofisticati, ma pochi hanno mantenuto una presenza così costante e pervasiva come Agent Tesla. Identificato per la prima volta nel 2014, questo malware si è evoluto da un semplice keylogger a un potente Information Stealer e Remote Access Trojan (RAT) basato sul framework Microsoft .NET.
La sua longevità è dovuta non solo alla continua evoluzione del suo codice, ma anche a un modello di business "Malware-as-a-Service" (MaaS) che ne permette la personalizzazione capillare da parte di diversi attori di minaccia.
Agent Tesla rappresenta oggi una delle minacce più critiche per gli utenti Windows, focalizzandosi sul furto di credenziali da oltre 50 applicazioni diverse, tra cui browser web, client di posta elettronica e software VPN.
Evoluzione e Modello Operativo
Agent Tesla ha attraversato diverse fasi di sviluppo, con versioni che variano significativamente per complessità e tecniche di offuscamento.
- Versione 2: Si concentrava principalmente sull'offuscamento di base e sulle tecniche di anti-analisi.
- Versione 3: Ha introdotto opzioni di personalizzazione avanzate e nuovi canali di Command and Control (C2), come Telegram.
- Recentemente (v4): Sono state osservate varianti con un ulteriore affinamento nelle routine di esfiltrazione e nel bypass delle interfacce di sicurezza moderne come AMSI.
Il malware viene tipicamente distribuito attraverso campagne di phishing mirate. I vettori comuni includono documenti Microsoft Word o PowerPoint contenenti macro VBA malevole o script offuscati che sfruttano vulnerabilità note. Questi documenti fungono da "stagers", il cui unico scopo è scaricare ed eseguire il loader di primo stadio.
Caratteristiche Principali
| Caratteristica | Dettaglio Tecnico |
|---|---|
| Framework | Microsoft .NET (C#, VB.NET) |
| Architettura | Multi-stadio (Downloader -> Loader -> Payload) |
| Modello di Vendita | Malware-as-a-Service (MaaS) |
| Target Primario | Credenziali, Keylogging, Screenshot |
Analisi del Vettore di Infezione
La catena di infezione di Agent Tesla è progettata per essere modulare e stealth. In molti casi, l'attacco inizia con un file apparentemente innocuo, come una ricevuta bancaria o un ordine d'acquisto, distribuito via email.
Se il vettore è un documento Office, la macro VBA contenuta esegue operazioni preliminari sul sistema, come la modifica delle chiavi di registro per disabilitare gli avvisi di sicurezza delle macro future.
Le chiavi di registro comunemente colpite includono:
HKCU\Software\Microsoft\Office\{versione}\Word\Security\AccessVBOM(impostata a 1)HKCU\Software\Microsoft\Office\{versione}\Word\Security\VBAWarning(impostata a 1)
Queste modifiche permettono al codice malevolo di operare con minori restrizioni. Una volta preparato l'ambiente, la macro scarica l'eseguibile di primo stadio, spesso salvandolo in directory temporanee con nomi che imitano processi legittimi, come javs.exe o setup.exe.
Il Loader e la Reflection
Il loader di Agent Tesla è responsabile del recupero e della decrittazione del payload finale.
Questa fase è caratterizzata da un uso intensivo della Reflection .NET per caricare assembly direttamente in memoria, evitando così la scrittura di file malevoli sul disco che verrebbero intercettati dagli scanner on-access.
Estrazione delle Risorse e Cifratura
Il loader contiene spesso il payload criptato all'interno delle sue risorse (Resource Section) o lo scarica da servizi di hosting come Pastebin o Hastebin. Un metodo comune prevede l'uso di TripleDES o AES in modalità CBC (Cipher Block Chaining) per proteggere il codice.
In un caso analizzato, le chiavi e i vettori di inizializzazione (IV) erano codificati in Base64:
text
Dopo la decrittazione, il loader utilizza il metodo Assembly.Load(byte) per caricare l'eseguibile dell'infostealer nello spazio di memoria del processo corrente. Nelle varianti più sofisticate, il malware costruisce l'assembly in memoria concatenando istruzioni grezze CIL (Common Intermediate Language) tramite la classe MethodBuilder, rendendo l'analisi statica quasi impossibile.
Analisi del caricamento dinamico
Il loader utilizza la riflessione per invocare metodi di assembly caricati dinamicamente. Osservando il codice disassemblato (es. con dnSpy), si possono notare chiamate a GetMethod e Invoke:
csharp
Questa sequenza permette al malware di passare il controllo al payload principale dell'infostealer senza mai toccare il disco rigido in chiaro.
Evasione delle Difese
Agent Tesla implementa una serie di tecniche di AV Tampering per neutralizzare i software di protezione.
Sabotaggio di AMSI
AMSI (Antimalware Scan Interface) è l'interfaccia che permette agli antivirus di scansionare i buffer di memoria. Agent Tesla tenta di disabilitare AMSI tramite il patching in memoria della funzione AmsiScanBuffer in amsi.dll.
La procedura tecnica:
- Caricamento di
amsi.dlltramiteLoadLibraryA. - Individuazione dell'indirizzo di
AmsiScanBuffertramiteGetProcAddress. - Utilizzo di
VirtualProtectper cambiare i permessi della pagina di memoria inPAGE_EXECUTE_READWRITE. - Sovrascrittura della funzione per forzare un ritorno "pulito".
assembly
Questa modifica fa sì che ogni scansione successiva fallisca o restituisca un esito negativo per la minaccia.
Tecniche di Anti-Debug e Anti-VM
Il malware esegue controlli ambientali rigorosi:
| Tecnica | Meccanismo |
|---|---|
| Check del BIOS | Query WMI SELECT * from WIN32_Bios per stringhe come "VMware", "VirtualBox". |
| Check del Debugger | Controllo delle proprietà Debugger.IsAttached e Debugger.IsLogging. |
| Hiding del Thread | Chiamata a NtSetInformationThread con ThreadHideFromDebugger. |
| Interazione Utente | Uso di GetLastInputInfo per verificare l'attività umana. |
| IP Reputation | Richiesta a ip-api.com per verificare se l'IP appartiene a un data center. |
Se uno di questi controlli è positivo, Agent Tesla termina l'esecuzione.
Analisi del Payload
Una volta attivo, Agent Tesla avvia il modulo di esfiltrazione, scansionando directory specifiche.
Furto dai Browser Chromium-based
Browser come Chrome o Edge salvano le password in database SQLite (Login Data) nei profili utente. Il malware esegue query SQL per estrarre i dati:
SELECT action_url, username_value, password_value FROM logins;
Poiché le password sono criptate con la DPAPI di Windows, il malware invoca CryptUnprotectData per decifrarle.
Client Email e FTP
Per Outlook, interroga il registro per recuperare le password IMAP/SMTP. Per client FTP come FileZilla, cerca file XML (recentservers.xml) dove le credenziali sono spesso poco protette.
Keylogging e Clipboard
Agent Tesla installa un hook di tastiera (SetWindowsHookEx con WH_KEYBOARD_LL) per registrare i tasti premuti e monitora la Clipboard per catturare dati copiati.
Esfiltrazione (C2)
I dati vengono inviati agli attaccanti tramite vari canali:
| Protocollo | Dettaglio Esfiltrazione | Note |
|---|---|---|
| SMTP | Account compromessi, porta 587/25 | Metodo più comune |
| FTP | Comando STOR, file .zip o .txt | Meno comune |
| HTTP/S | POST a script (es. post.php) | Spesso cifrato in 3DES |
| Telegram | Bot API (sendDocument) | Introdotto nella v3 |