Sembra alquanto ironico scrivere questo post succesivamente all’ultimo nel quale ho parlato dei reali rischi derivanti dai malware attuali in confronto ai teorici proof of concept quali gli SMM Rootkit.

Oggi ho speso un po di tempo per analizzare un malware che è stato segnalato da parecchi utenti ai nostri laboratori di ricerca e che è stato intercettato euristicamente da Prevx Edge.

L’infezione è già conosciuta nel web come Trojan.Neprodoor, ma guardando su Internet non ho trovato informazioni tecniche veramente utili riguardo questo trojan, così ho deciso di dargli uno sguardo più in profondità.

E’ stato immediatamente chiaro che l’infezione non è banale ed è in grado di superare la maggior parte dei prodotti attuali di sicurezza.

L’infezione si propaga per mezzo di un dropper, chiamato reader_s.exe. Tuttavia, questo è solo il primo di una lunga catena di installer.

Il dropper è criptato con un packer proprietario, così non appena viene eseguito si decomprime in memoria ed inizia il proprio payload.

Effettua una copia di sé all’interno della directory di sistema di Windows %windir%system32 e all’interno della cartella del profilo utente, aggiungendo poi le relative chiavi di registro HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun e HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun, in entrambe utilizzando il valore [reader_s] e il percorso all’eseguibile.

Questo può essere definito come il pre-loader. Terminato il processo, il dropper esegue un nuovo processo svchost.exe nel quale inietta il proprio codice sottoforma di dll. Esegue dunque un thread all’interno del neo-creato processo.

Step one

Il controllo passa ora al loader reale, che controlla l’infezione ed è in grado di scaricare ed installare i componenti dell’infezione. Il loader comunica con uno dei server centrali utilizzando un protocollo privato e criptato. Tutto il traffico passa dunque per la porta TCP 80, ma non sarà controllato dai filtri web a causa della codifica.

Il loader è in grado di rubare informazioni dal PC, funzionare come proxy server, scaricare ed installare altre componenti dell’infezione.

Ora inizia la parte più interessante. Il loader scarica una componente spambot e un rootkit installer.

Dopo che i due installer sono stati scaricati in memoria, vengono iniettati all’interno di altri due processi svchost.exe. Tutto viene eseguito in memoria, niente è fisicamente scritto sul disco.

Mentre la dll con funzioni di spambot è una componente classica, ciò che è più interessante è il rootkit installer. Eseguito, infetta il driver ndis.sys leggendone il codice originale, codificandolo e includendolo nel proprio codice malevolo. Poi, il nuovo ndis.sys viene sovrascritto all’originale e una copia del nuovo ed infetto driver viene inserita anceh all’interno della directory di sistema dllcache. Ora, il driver ndis.sys è criptato e inglobato nel codice del rootkit.

Facendo così, il rootkit non ha bisogno di alcuna chiave di registro di Windows per eseguire il servizio e può sopravvivere nascosto in memoria.

Dopo che il servizio ndis viene riavviato, il rootkit è in grado di allocare parte della memoria nel kernel e copia il proprio codice lì dentro, poi viene eseguito il vero ndis.sys.

Il rootkit, che è ora un pezzo di codice non tracciabile in memoria, installa una routine per il controllo dei processi in esecuzione, al fine di intercettare l’esecuzione del processo services.exe.

Step one

Una volta intercettato, il rootkit inietta all’interno del processo lo stesso loader di cui ho parlato prima. Il ciclo ricomincia, con la componente spambot che verrà nuovamente scaricata e iniettata all’interno del processo svchost.exe.

Per rimanere invisibile all’interno dell’hard disk, il rootkit prende il controllo della funzione del kernel IofCallDriver, cambiando il puntatore alla funzione e redirezionandolo alla propria funzione.

Questo è uno dei vari modi per filtrare la lettura dell’hard disk, intercettando le chiamate dei driver. Se qualsiasi software tenta di leggere il driver ndis.sys, verrà mostrata la copia originale e pulita del driver. Ogni tentativo di modifica del driver verrà inoltre negato.

Il malware è chiaramente opera non di un teenager annoiato, l’intera architettura che sta dietro all’infezione lascia pensare che sia il lavoro di qualcuno con esperienza nel campo.

Il rootkit è in grado di restare invisibile alla maggior parte delle attuali tecnologie antirootkit e la struttura modulare dell’infezione lascia pensare che il(/i) malware writer possa aggiornarla in maniera rapida.

Prevx Edge e Prevx CSI sono in grado di rimuovere l’infezione.

Nel mentre che cercate tracce di infezione da SMM rootkit nel vostro PC, tanto che ci siete, date un occhio se magari un semplice, banale kernel mode rootkit non stia già controllando il vostro sistema operativo.

Prevx Blog