|
11 Novembre 2007
Proseguiamo sulla strada spianata da un paio di post precedenti e continuiamo ad analizzare gli argomenti in questione. Lo spunto mi viene dato dal fatto che proprio oggi ho guardato la mia mail ed ho notato che in data 5 Novembre mi era arrivato il risultato dell'analisi eseguita dalla Sandbox Online CWSandbox. Del resto il post precedente in cui avevo preso in esame tra le altr anche la suddetta sandbox era datato 1 Novembre e siccome non avevo ricevuto notizie nell'arco di 2 ore, tenuto anche conto che le altre sandbox mandavano l'esito nell'arco massimo di 5 minuti, ho lasciato perdere la questione relativa a CWSandbox. Però poi ho visto che in data 5 Novembre mi era arrivato il risultato (4 giorni dopo) e per curiosità sono andato a dare un'occhiata: sono rimasto stupefatto perchè il livello di dettaglio fornito è stupefacente, senza dubbio il più elevato nell'ambito di tutte le Sanbox online; il link al risultato è il seguente
http://beta.cwsandbox.org/?page=samdet&id=7571&password=pprrb
e come si può vedere è mooolto ma mooolto dettagliato.
Ho provato a fare un submit di una altro trojan e questa volta il risultato è arrivato dopo 2 minuti, e ciò significa che quando avevo fatto la prova in precedenza ero capitato in un contesto sfigato.
A questo punto ho deciso di fare un'altra prova, questa volta utilizzando un crack che avevo scaricato una settimana fa da un forum: il crack si pone come obiettivo quello di estendere all'infinito il periodo trial di 15 giorni di Ulead Gif Animator 5.05 (scaricabile appunto in versione trial di 15 giorni dal sito web della Ulead). Molti si scaricano crack per patchare le varie versioni trial ma non pensano che spesso questi crack oltre a patchare installano anche dei trojan. Questo crack in particolare era un eseguibile autoestraente creato con winrar al cui interno vi era un file con estensione .dat di circa 1,2 Mega. Allora ho voluto fare una prova per vedere cosa effettivamente conteneva questo famigerato crack ed ho proceduto nella seguente maniera
Ho preso come riferimento il mio Windows XP Professional installato come guest su VMWare Workstation 6 ed equipaggiato con Antivirus (il buon Nod32) e Firewall (Comodo Personal Firewall). Come prima cosa ho salvato lo stato del sistema guest in VMWare catturando uno snapshot di sistema (VM -> Snapshot -> Take Snapshot); a questo punto ho deciso di disattivare totalmente l'antivirus (in maniera tale da consentire all'eventuale virus o altro contenuti nel crack di esprimersi liberamente e poterne quindi analizzare il comportamento) e lasciare rigorosamente attivo il firewall in modo da controllare nel dettaglio le richieste di rete effettuate. Non rimaneva altro da fare che installarsi la versione trial di Ulead Gif Animator 5.05 ed applicargli la fantomatica patch: lanciata la patch, quasi instantaneamente il firewall mi comunica che un tale processo services.exe lanciato da un altro sospetto processo Incom_.exe sta cercando di accedere al web ... uhmm un processo di nome services.exe per giunta presente in C:\windows, è chiaro che sti furbacchioni vogliono confonderci con c:\windows\system32\services.exe ossia il cosidetto Service Control Manager (SCM) che, lanciato da winlogon.exe, ha il compito di avviare i servizi. A questo punto noto un'altra cosa: che sti simpaticoni hanno anche previsto la disabilitazione del servizio di ripristino di sistema (Start -> Programmi -> Accessori -> Utilità di sistema -> Ripristino configurazione di sistema) con conseguente cancellazione irreversibile di tutti gli eventuali punti di ripristino presenti e probabilmente il programma va anche a disabilitare il firewall di Windows solo che in questo caso non è cambiato nulla rispetto a prima in quanto il firewall di Windows l'avevo già disabilitato per dare sapzio a Comodo Personal Firewall. Guardando l'elenco dei processi con Taskmanager è possibile vedere in esecuzione sto cavolo di services.exe eseguito con l'utenza corrente (oltre al services.exe di sistema eseguito con l'utenza SYSTEM). Se provo a killarlo mi dice che è impossibile farlo poichè è un processo di sistema. Effettivamente il file c:\windows\services.exe ha attivo l'attributo che lo identifica come file di sistema (ed anche l'attributo hidden che lo rende nascosto). Assegnare ad un file tale attributo è semplicissimo: basta usare l'api win32 SetFileAttributes; per un esempio in Delphi basta far riferimento alla seguente pagina web
http://www.delphibasics.co.uk/RTL.asp?Name=FileSetAttr
Allora ho provato a killarlo col Process Mater : lanciando semplicemente l'eseguibile senza parametri si ottiene l'elenco dei processi ("pm.exe -h" per ottenere le info sui parametri passabili da linea di comando) e prendo il PID del proceso services.exe eseguito con l'utenza corrente (quello eseguito con SYSTEM è quello di sistema che non dobbiamo quindi toccare); con "pm.exe -k1i <pid>" riesco a killare il processo; come risultato però ottengo un errore critico di sistema che mi killa explorer.exe (la shell di windows); al riavvio di explorer.exe il famigerato services.exe ritorna in azione (stavolta lanciato da un tale fservice.exe o sservice.exe ... non mi ricordo bene, son sicuro che ci sono tutti e 2 ed ognuno rilancia l'eseguibile). Bene non se ne esce e decido di riavviare il tutto in modalità provvisoria: lo faccio sia nella forma classica sia nella forma più restrittiva che include unicamente la linea di comando ma mi ritrovo sempre sto services.exe malandrino tra le scatole. A questo punto ho iniziato una serie di analisi con vari programmi che mi hanno portato rapidamente ad inquadrare la linea di comportamento del trojan (soprattutto perchè chi l'ha scritto non aveva una conoscenza approfondita). Sarebbe troppo lungo e forse anche inutile stare qui a scrivere pagine intere per descrivere tutti i passaggi ed i ragionamenti fatti; diciamo che, una volta avuta un'idea di massima sul comportamento del trojan, ho rispristinato lo stato del sistema guest in VMWare (VM -> Snapshot -> Revert to Snapshot) e mi sono installato Sandboxie : ho reinstallato Ulead Gif Animator in versione trial ed ho eseguito la patch nella Sandobox (pulsante destro del mouse sull'eseguibile e click sulla voce RunSandboxed); alla fine la mia Sandbox conteneva tutti i file e tutte le voci di registro generati dalla patch (per visualizzarli basta aprire il controllo Sandboxie e "Function -> Contents of Sandbox -> Explore Contents"; le modifiche al registro sono contenute nel file RegHive: il contenuto di tale file è visualizzabile caricandolo da Regedit con File -> Carica Hive dopo aver selezionato una qualsiasi delle chiavi di base; è fondamentale alla fine scaricare l'hive con File -> Scarica Hive). Ho deciso di inviare a CWSandbox questo famigerato services.exe che mi ha tormantato e questo è stato il risultato dettagliato (che riflette l'analisi fata in prima istanza e 'analisi fatta con la Sandboxie)
http://beta.cwsandbox.org/?page=samdet&id=11249&password=vbiiv
E' interessante soprattutto analizzare le chiavi di registro che vengono create e /o modificate: ci danno una panoramica delle chiavi di registro solitamente utilizzate dei trojan per andare in esecuzione automatica. Tra i file creati si può notare la presenza di una dll tale reginv.dll che viene caricata nello spazio di memoria di regedit.exe per impedire la visualizzazione delle chiavi di registro create e/o modificate dal trojan: utilizza la semplice tecnica che ho esposto nell'articolo
http://pasotech.altervista.org/delphi/articolo37.htm
La conseguenza dell'utilizzo di tale tecnica è che anche le chiavi successive non vengono più visualizzate e chi va a fare dei seplici controlli su regedit si accorge che qualcosa non và. Per nascondere in maniera perfetta una chiave o un valore di registro (parliamo sempre di hiding in User Mode che sia chiaro) bisogna studiarsi il celeberrimo articolo di Holy_Father
Invisibility on NT Boxes
Un'altro punto debole è il fatto che tale dll non abbia influenza ad esempio sulla linea di comando (posso continuare tranquillamente a manipolare tutto il registro col comando REG) o anche su qualsiasi altro programma di enumerazione delle voci di registro: ad esempio ho provato ad usare il programmino all'indirizzo
http://pasotech.altervista.org/delphi/codice/RegEnum.exe.7z Settando come intervallo di tempo, un breve intervallo contenente l'istante di applicazione della patch, il programma restituisce effettivamente le voci di registro generate dalla patch e che la patch stessa vorrebbe tener nascoste.
Un'altra dll che fa parte del pacchetto virulento è winkey.dll: i nomi delle funzioni esportate non lascia adito a dubbi
Kisses_Mcafee Kisses_To_Trojanhunter installhook
La dll tenta ovviamente di disabilitare il Mcafee e il Trojanhunter.
Altra cosa da notare è che tutti i file malevoli hanno l'atributo di sistema settato e sono stati paccati con UPX: è un attimo ottenere la versione originale unpacked con CFF Explorer
La CWSandbox indentifica anche il trojan come il famoso ProRat;
A questo punto ho nuovamente ripristinato lo stato del sistema guest in VMWare: in quest'ultima fase dell'analisi vado a rieseguire il tutto con l'antivirus attivo (il buon Nod32); reinstallo nuovamente la versione Trial di Ulead Gif Animator ed applico la patch: tacc ... è un attimo che Nod32 mi segnala il tentativo di installazione del trojan (e bravo Nod32 che hai fatto il tuo sporco lavoro).
Come ultima cosa mi sembra doveroso segnalare l'indirizzo da cui è possibile scaricare la patch malandrina in questione (con l'obiettivo di starne lontano ovviamente)
http://www.zshare.net/download/41132111e845bf (Patch che installa ProRat: tenere lontano come la peste!!!!!)
Behh che dire: sempre un buon antivirus installato ed aggiornato, un buon firewall (Comodo Personal Firewall è ottimo ed è anche freeware), provare prima su VMWare (o VirtualBox, Virtual PC o altro ... fate voi) e soprattutto lanciare dentro Sandboxie. |