Carlo's profileBlog semiserio di CarloPhotosBlogListsMore Tools Help

Blog


    October 30

    Anteprime dei file immagine, file thumbs.db e giù di lì

     

    Questa volta l'argomento di discussione sono le anteprime dei file immagine; mi spiego meglio: sono in windows e sfoglio i file nelle cartelle ... ok ... se è selezionata la voce "Anteprima" nel menù "Visualizza", allora per ogni file o cartella presente nella cartella corrente, vedrò una icona (la cosidetta Anteprima): se si tratta di una immagine appartenente ai comuni formati (bmp, jpg, gif ... tanto per intenderci) l'icona raffigura l'immagine in questione altrimenti c'è semplicemente l'icona del file (che è quasi sempre l'icona del programma usato per gestire quel tipo di file). Nel caso invece che l'oggetto sia una cartella allora vedrò una icona che è composta dalla classica icona simbolo delle cartelle sulla quale ci sono le anteprime delle immagini contenute fino ad un massimo di 4. Di seguito un esempio

    La cartella di riferimento

    La cartella "disegni"

    La cartella "foto"

    La cartella "tests"

     Bene ... gli screenshots dei contenuti delle cartelle conferma quanto precedentemente detto. In pratica, quando in una cartella è abilitata la visualizzazione delle anteprime (menù Visualizza -> Anteprima) per ogni file o cartella si ha una icona: per la maggiorparte dei file, è l'icona che si trova comunemente associata al file stesso , nel caso dei formati immagine più comuni (gif, jpg, bmp, png ad esempio) l'icona è invece un'anteprima dell'immagine stessa. Siccome il fatto di prendere l'immagine e crearne la sua anteprima richiede un certo dispendio di energie, Windows crea all'interno della cartella un file Thumbs.db che è un file Protetto di sistema (di default è nascosto e lo si può vedere togliendo il check alla voce "Nascondi i file protetti di sistema (consigliato)" nell'albero visibile da "Strumenti -> Opzione Cartella -> Tab Visualizzazione) e vi inserisce (poi vedremo meglio come) ste benedette anteprime. Se la cartella contiene delle sotto cartelle, verrà analizzato anche il loro contenuto per realizzare l'anteprima della cartella che appunto consiste, come si è già visto, della classica icona associata alle cartelle sulla quale vengono posizionate fino a 4 anteprime delle immagini eventualmente presenti in essa; il file Thumbs.db viene creato non appena ve ne sia la necessità. Il file Thumbs.db viene anche definito Cache della Anteprime. Se non si vuole che le anteprime vengano inserite nella cache Thumbs.db basta metter un check alla voce "Non memorizzare le anteprime nella memoria cache" nell'albero visibile da "Strumenti -> Opzione Cartella -> Tab Visualizzazione. Come si può vedere dal primo screenshot vi è un pdf: un pdf non è una immagine ma come si può vedere gli viene assegnata come icona l'anteprima della sua prima pagina; una cosa analoga succede per i filmati nel formato wmv (Windows Media Video) per i quali vi è l'anteprima del primo frame del filmato. Windows fornisce la possibilità di personalizzare l'anteprima in corrispondenza di un determinato tipo di file tramite una delle tante estensioni della Shell (Shell Extensions): Thumbnail Image Handler. Con i pacchetti disponibili sopratutto per Delphi, la realizzazione di questo tipo di Shell Extension è veramente un gioco da ragazzi. All'indirizzo nel seguito vediamo un esempio di come creare un Thumbnail Image Handler per i file .txt usando il pacchetto commerciale ShellPlus

    thumbnail-image-handler-example.html

    In questo esempio, la Shell Extension così creata consentirà di assegnare come anteprima per i file .txt il contenuto del file di testo medesimo (o meglio di ciò che, partendo dall'inizio, può rientrare nelle dimensioni dell'anteprima): in pratica è analogo al discorso per il pdf.

    La possibilità di creare Shell Extensions viene fornita anche dall'eccezionale pacchetto Open Source in Delphi per Delphi denominato EasyNSE; è un pacchetto di componenti VCL che consente la realizzazione di qualsiasi tipo di Shell extension ivi inclusa naturalmente la Thumbnail Image Handler.

    Bene, diciamo una cosa ancora prima che mi dimentichi: le icone nella modalità anteprima hanno una dimensione in pixel di 96x96; l'antepirma di una immagine sarà ottenute riducendo l'immagine fino a che entrambe le dimensioni sono minori o uguali a 96 pixel o viceversa aumentando l'immagine fino a che almeno una delle dimensioni è pari a 96 pixel: il ridimensionamento avviene sempre mantenendo le proporzioni tra base ed altezza.

    Bene ora andiamo un pò più nel dettaglio a capire come vengono inserite ste benedette anteprime nel file Thumbs.db. Sono inserite tutte assieme come Alternate Data Stream (ADS) associato al file Thumbs.db. Non andrò ad approfondire il concetto di ADS (altrimenti non ci capiamo più niente con l'argomento principale di discussione) ma vi rimando obbligatoriamente a delle ricerche consistenti sui motori di ricerca (sii certo, molti avrebbero detto "Googlate" un pò ma siccome google mi sta leggermente sulle scatole per come indicizza e spesso uso Yahoo allora ... dico  "Ricercate"): del resto è un argomento molto accattivante quindi non ci sarà sicuramente da annoiarsi anzi è il contrario decisamente. La prima cosa che faremo è scaricarci un software che consenta di enumerare gli ADS associati ad un file (o ad una cartella): il primo ed anche il più conosciuto è sicuramente LADS; si tratta di un semplice .exe di 35 K di dimensione che gira a linea di comando ed è liberamente scaricabile e gratuito. Quello che useremo invece è un altro programma, anch'esso un semplice .exe liberamente scaricabile e gratuito, che però è fornito di un'ottima interfaccia grafica: ADSSpy 

    Utilizziamo ADSSpy per analizzare la cartella di riferimento (cioè quella di cui ho postato gli screenshots): il risultato è il seguente

    Come si può notare, la scansione avviene anche ricorsivamente nelle sottocartelle; come si può vedere dal risultato, il file Thumbs.db ha un Alternate Data Stream di nome "encryptable": non pensate che la dimesnione 0 bytes significhi che è vuoto (rimando alle varie ricerche sul web riguardo agli Alternate Data Stream). Bene ... ora sappiamo che ste benedette anteprime risiedono nell'ADS "encryptable" di Thumbs.db. Quello che si sa poi è che sono criptate (behh questo ce lo potevamo immaginare dal nome "encryptable"). Non ho trovato documentazioni al riguardo (riguardo a come sono elencate le varie anteprime all'itenro dell'ADS "encryptable" e soprattutto riguardo all'algoritmo di criptazione usato). Ho però trovato 2 programmi mooolto interessanti (entrambi gratuiti!!!).

    Partiamo dal primo ossia Thumbnail Database Viewer

    formidabile vero? Gli si trascina dentro un file Thumbs.db e tac. Come si può vedere, tra le anteprime c'è anche l'anteprima della cartella stessa che verrà usata dalla cartella superiore. 

    Il secondo programma è ancora meglio: non ha una interfaccia grafica e lavora da linea di comando ma consente di salvare le anteprime. Si tratta di un programma realizzato da Shapeless e si chiama ThumbsExtract (copia e incolla il link nel browser).

    Bene anche per sta volta abbiamo finito ... alla prossima ispirazione   

    October 28

    Test con virus, antivirus, sanbox, crypter, così per passare il tempo ...

     

    Come da oggetto, non sapendo cosa fare mi son messo a fare un pò di giochini con tutte ste cosine. Son partito anzitutto dal semplice Exe Crypter (creato così tanto per gioco esenza pretese particolari) all'indirizzo http://pasotech.altervista.org/delphi/articolo97.htm . Poi mi son detto: "scarichiamoci qualche virus, criptiamolo con sto Exe Crypter e poi facciamo un bella verifica con i principali antivirus in gircolazione per vedere come reagiacono di fronte al "Prima" e di fronte al "Dopo". La maggiorparte degli antivirus fornisce la possibilità di valutare la presenza di file dannosi (o potenzialmente tali) sul proprio computer, semplicemente collegandosi al loro sito e selezioanndo il link che porta alla pagina dedicata all' Online Scanning; si tratta quasi sempre di un controllo ActiveX (e quindi di un programma che andrà a girare sul proprio sistema): selezionando il link, Internet Explorer ci dirà che si è in procinto di scaricare ed installare un ActiveX ed ovviamente ci chiederà conferma. Chiaramente questo ActiveX (o più in generale il programmino che ci viene dato da scaricare dal sito del produttore di Antivirus) prenderà in input una cartella e ne scansionerà i file in essa contenuti (o alternativamente eseguirà lo scan su tutto il file system); potrà anche controllare i processi in esecuzione e verificare magari che 1 o più di essi corrisponde ad un virus o altro. Tuttavia una delle potenzialità di un Antivirus è la detection in real time di materiale malevolo ossia parte un processo o si verificano modifiche al file system o al registro e l'anitivirus deve rilevarle all'istante e comunicare poi il da farsi in caso di identificazione di qualcosa di malevolo. Quindi lo scanner è solo una parte di un sistema Antivirus. Con lo scanner io posso far eseguire un'analisi di una o più cartelle (o di tutto il file system) e anche del registro e dei processi in esecuzione ma non ho appunto la segnalazione in tempo reale che un virus sta tentando di installarsi. E quasi tutte le case produttrici di antivirus forniscono gratuitamente il servizio di scanning. Tuttavia spesso e volentieri non si conoscono tutte le case produttrici di Antivirus oppure quelle più famose che son sulla bocca di tutti magari forniscono un prodotto che è notevolemente surclassato da altre aziende più in penombra. Oltretutto è anche un bella rottura di scatole, una volta che si è raccolto una ventina o più di nomi di antivirus, procedere allo Scannning on line per ognuno di essi. Se uno però ha un obiettivo ben preciso ossia ha messo l'occhio su un eseguibile e quell'eseguibile non gli piace allora può inviarlo ad uno dei servizi on line di scansione file. In pratica c'è ci ha pensato bene di fornire un servizio online semplice semplice da usare che consiste in questo: c'è un file che non ti va proprio giù, inviacelo (semplice upload dalla pagina web: selezione del file ed invio premendo il pulsante upload). Una volta giunto a destinazione, il file verrà automaticamente passato al vaglio della maggiorparte degli antivirus a disposizione sul mercato: in pratica chi fornisce questo servizio web, ha a disposizione gli Antivirus presenti sul mercato (o in ogni caso la maggiorparte) e fa analizzare in automatico il file inviato ad ognuno di essi. L'output è un report che definisce il rsultato dell'analisi fatta da ogni antivirus a disposizione. Così ho deciso di scaricarmi un virus (prelevandolo da uno dei principali database online) e sottoporlo all'analisi di uno o più di questi servizi; poi l'ho cripato usando il mio semplice Exe Crypter ed ho inviato il virus criptato per vedere come veniva interpretato.

    Partiamo dicendo che per il momento conosco i seguenti 3 servizi online di analisi:

    VirusTotal

    http://virusscan.jotti.org/

    virscan

    Ho fatto le prove col primo (VirusTotal) così tanto per cominciare

    Ahh dimenticavo ... il virus: sono andato sul database online seguente

    VX Chaos File Server

    ed ho downloadato il file

    Trojan.DownLoader.5992.rar

    Si traatta di un virus che in pratica, una volta andato in esecuzione scarica dal web un altro eseguibile che poi fa lo sporco lavoro. Questo tipo di virus vengono comunemente raccolti sotto la categoria Trojan Web Downloader o robe del genere. Primo di tutto raccomando a chiunque se lo scarichi, di rinominare l'eseguibile cambiando ad esempio l'estensione da .exe a .ex1 così per evitare di farci un doppio click inavertitamente e mandarlo quindi in esecuzione. L'ho criptato col mio Exe Crypter ed ho inviato le 2 versioni (quella originale e quella criptata) a VirusTotal.

    Versione originale del virus 

    Antivirus Version Last Update Result
    AhnLab-V3 2007.10.26.0 2007.10.26 Win-Trojan/Dluca.39936.D
    AntiVir 7.6.0.27 2007.10.25 TR/Dldr.Dluca.CC.56
    Authentium 4.93.8 2007.10.25 Possibly a new variant of W32/NewMalware-LSU-based!Maximus
    Avast 4.7.1074.0 2007.10.25 Win32:Downloader-EK
    AVG 7.5.0.503 2007.10.25 Downloader.Dluca.EU
    BitDefender 7.2 2007.10.26 Trojan.Downloader.5692.A
    CAT-QuickHeal 9.00 2007.10.25 TrojanDownloader.Dluca.cc
    ClamAV 0.91.2 2007.10.26 Trojan.Downloader.Small-2130
    DrWeb 4.44.0.09170 2007.10.25 Trojan.DownLoader.5692
    eSafe 7.0.15.0 2007.10.22 Win32.Dluca.cc
    eTrust-Vet 31.2.5241 2007.10.25 Win32/Malum.CBEY
    Ewido 4.0 2007.10.25 Downloader.Dluca.cc
    FileAdvisor 1 2007.10.26 High threat detected
    Fortinet 3.11.0.0 2007.10.19 W32/DC.CC!tr.dldr
    F-Prot 4.3.2.48 2007.10.25 W32/DownloaderX.GTG
    F-Secure 6.70.13030.0 2007.10.25 Trojan-Downloader.Win32.Dluca.cc
    Ikarus T3.1.1.12 2007.10.26 Trojan-Downloader.Win32.Dluca.BP
    Kaspersky 7.0.0.125 2007.10.26 Trojan-Downloader.Win32.Dluca.cc
    McAfee 5149 2007.10.25 Downloader-DC
    Microsoft 1.2908 2007.10.26 TrojanDownloader:Win32/Dluca
    NOD32v2 2618 2007.10.26 a variant of Win32/TrojanDownloader.Dluca
    Norman 5.80.02 2007.10.25 W32/Dluca.ES
    Panda 9.0.0.4 2007.10.26 Spyware/Dluca
    Prevx1 V2 2007.10.26 -
    Rising 19.46.32.00 2007.10.26 Trojan.DL.Dluca.fe
    Sophos 4.22.0 2007.10.26 Mal/Heuri-E
    Sunbelt 2.2.907.0 2007.10.26 Trojan-Downloader.Dluca
    Symantec 10 2007.10.26 Downloader.Dluca
    TheHacker 6.2.9.107 2007.10.25 Trojan/Downloader.Dluca.cc
    VBA32 3.12.2.4 2007.10.25 Trojan-Downloader.Win32.Dluca.cc
    VirusBuster 4.3.26:9 2007.10.25 -
    Webwasher-Gateway 6.6.1 2007.10.25 Trojan.Dldr.Dluca.CC.56
    Additional information
    File size: 39936 bytes
    MD5: 9f8b418b2bb12213722db4a63e026214
    SHA1: 26a5dc14cc94f04ac65960b85563349038b4170b
    packers: PECompact
    Bit9 info: http://fileadvisor.bit9.com/services/extinfo.aspx?md5=9f8b418b2bb12213722db4a63e026214
    packers: PE_Patch.PECompact, PecBundle, PECompact

     

    Versione criptata del virus
     
    Antivirus Version Last Update Result
    AhnLab-V3 2007.10.26.0 2007.10.26 -
    AntiVir 7.6.0.27 2007.10.25 -
    Authentium 4.93.8 2007.10.25 -
    Avast 4.7.1074.0 2007.10.25 -
    AVG 7.5.0.503 2007.10.25 -
    BitDefender 7.2 2007.10.26 -
    CAT-QuickHeal 9.00 2007.10.25 -
    ClamAV 0.91.2 2007.10.26 -
    DrWeb 4.44.0.09170 2007.10.25 -
    eSafe 7.0.15.0 2007.10.22 -
    eTrust-Vet 31.2.5241 2007.10.25 -
    Ewido 4.0 2007.10.25 -
    FileAdvisor 1 2007.10.26 -
    Fortinet 3.11.0.0 2007.10.19 -
    F-Prot 4.3.2.48 2007.10.25 -
    F-Secure 6.70.13030.0 2007.10.25 -
    Ikarus T3.1.1.12 2007.10.26 -
    Kaspersky 7.0.0.125 2007.10.26 -
    McAfee 5149 2007.10.25 -
    Microsoft 1.2908 2007.10.26 -
    NOD32v2 2618 2007.10.26 -
    Norman 5.80.02 2007.10.25 -
    Panda 9.0.0.4 2007.10.26 -
    Prevx1 V2 2007.10.26 -
    Rising 19.46.32.00 2007.10.26 -
    Sophos 4.22.0 2007.10.26 -
    Sunbelt 2.2.907.0 2007.10.26 -
    Symantec 10 2007.10.26 -
    TheHacker 6.2.9.107 2007.10.25 -
    VBA32 3.12.2.4 2007.10.25 suspected of Backdoor.XiaoBird.7 (paranoid heuristics)
    VirusBuster 4.3.26:9 2007.10.25 -
    Webwasher-Gateway 6.6.1 2007.10.25 -
    Additional information
    File size: 76800 bytes
    MD5: 2942bee818980e17cf0fe0eca15f4236
    SHA1: 1daab3f9c97ce2fed38c08d2ea39321d58d38b29

     

    Come si può notare, vengono retituite anche alcune informazioni sul .exe come ad esempio il fatto che sia stato compresso o/e criptato con alcuni dei programmi conosciuti: ad esempio nel nostro caso il virus è paccato con PECompact. Behh, facendo riferimento al riconoscimento del virus, sembra proprio che il crypting lo renda non identificato (l'unica eccezione la solleva VBA32 che però non identifica il virus in questione ma segnala che il comportamento del .exe in questione è molto simile a quello del virus identificato nel proprio database come Backdoor.XiaoBird.7). C'è anche da dire che, qualora venga identificato un .exe come potenzialmente dannoso, non è detto che lo sia effettivamente: gli antivirus infatti quando analizzano un file prima ne confrontano l'hash (MD5 e/o SHA1 in genere) con gli hash dei virus conosciuti presenti nel proprio database ma poi analizza anche determinate caratteristiche del file per vedere se ha una conformazione che ricorda quella di altri virus conosciuti: ad esempio vengono chiamate determinate api win32 con determinati valori dei parametri in un determinato ordine proprio come fa il virus tal dei tali ed allora te lo segnalo. Poi è discrezione tua eliminarlo o meno in quanto non è detto che quell'eseguibile sia lì per far danno, si sà semplicemente che ha un meccansimo di funzionamento che in certe sue parti ricorda quello di un altro virus.

    A questo punto avrei potuto uploadare i 2 file agli altri 2 servizi online, solo che volevo testare un altro servizio online che tratta sempre lo stesso argomento ma si differenzia dai precedenti. Si tratta del servizio fornito sul sito della Norman Sandbox e più precisamente all' indirizzo

    http://www.norman.com/microsites/nsic/Submit/en-us

    In pratica si invia il .exe famigerato: una volta giunto a destinazione verrà messo in coda e quando arriverà il suo turno verrà eseguito all'interno della Norman Sandobx che catturerà tutte le principali operazioni eseguite del .exe in questione e dall'eventuale albero di processi che andrà a agenerare: ad esempio modifiche al file system oppure al registry ma anche cose un pò più complesse tipo la creazione di oggetti del kernel come ad esempio oggetti Mutex, etc... Quindi una bella analisi del comportamento del nostro .exe: tale analisi, una volta portata a termine (roba di pochissimo tempo) ti verrà inviata via email all'indirizzo specificato nella maschera di upload.

    Questi i risultati sulla Norman Sandbox

    Virus originale

    Trojan.DownLoader.5692.exe : Not detected by Sandbox (Signature: W32/Dluca.ES)

     [ DetectionInfo ]
       * Sandbox name: NO_MALWARE
       * Signature name: W32/Dluca.ES
       * Compressed: YES

     [ General information ]
       * Decompressing PEC2.
       * **Locates window "Msdmxm [class MSDMXM]" on desktop.
       * **Locates window "Msdmxm [class NULL]" on desktop.
       * File length:        39936 bytes.
       * MD5 hash: 9f8b418b2bb12213722db4a63e026214.

     [ Changes to filesystem ]
       * Deletes file C:\WINDOWS\TEMP\delwbi.tmp.
       * Creates directory windows.

     [ Changes to registry ]
       * Creates key "HKCU\Software\Microsoft\SystemCertificates\TrustedPublisher\Certificates\
                                                         \F7EE4E3689C2DCF4A531C20954D158C1936D9A3C".
       * Sets value "Blob"=" " in key "HKCU\Software\Microsoft\SystemCertificates\TrustedPublisher\Certificates\
                                                        \F7EE4E3689C2DCF4A531C20954D158C1936D9A3C".
       * Creates key "HKCU\Software\Microsoft\SystemCertificates\TrustedPublisher\Certificates\
                                                       \1567DAAB1377FE3552D2F6F2A2FA80200135EDA5".
       * Sets value "Blob"=" " in key "HKCU\Software\Microsoft\SystemCertificates\TrustedPublisher\Certificates\
                                                      \1567DAAB1377FE3552D2F6F2A2FA80200135EDA5".
       * Creates key "HKCU\Software\Microsoft\SystemCertificates\TrustedPublisher\Certificates\
                                                      \F705E9D8DAA72DF53D068BF60B551EA3103D51D7".
       * Sets value "Blob"=" " in key "HKCU\Software\Microsoft\SystemCertificates\TrustedPublisher\Certificates\
                                                     \F705E9D8DAA72DF53D068BF60B551EA3103D51D7".
       * Creates key "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Msdmxm".
       * Creates key "HKCU\Software\Msdmxm".

     [ Network services ]
       * Looks for an Internet connection.

     [ Process/window information ]
       * Creates a mutex vmx38Fg45.
       * Creates a mutex ms1qsysa.

    Questo è invece il risultato col Virus Criptato

    XXX1919.exe : Not detected by Sandbox (Signature: NO_VIRUS)

     [ DetectionInfo ]
       * Sandbox name: NO_MALWARE
       * Signature name: NO_VIRUS
       * Compressed: NO

     [ General information ]
       * File length:        76800 bytes.
       * MD5 hash: 2942bee818980e17cf0fe0eca15f4236.

    Anche in questo caso si può vedere che l'EXE Crypter ha fatto il suo sporco lavoro

    Poi m'è venuto in mente che esiste anche la fantastica Sandboxie ed ho deciso di scaricarmi l'ultima versione

    http://www.sandboxie.com/

    L'ho installata ed ho lanciato il virus nella sanbox ed ho verificato il comportamento già preannunciato dalla Norman Sandbox. Tutte le modifiche al file system ed al registry che vengono generate dall'albero di processi a partire dal processo che ho inizialmente deciso di runnare in Sandboxie vengono salvate di default nella Cartella <profilo utente>\Dati applicazioni\Sandbox (ma tale impostazione può ovviamente essere modificata). Non sto qui a dilungarmi sul significato del contenuto di tale cartella perchè basta navigarci dentro ed è intuitivo al massimo. Per ulteriori informazioni su Sandboxie rimando alla sua semplice documentazione online.

    October 09

    CheatEngine ... sorgenti della versione 5.3

     

    Finalmente son riuscito a scaricarli ... di seguito i sorgenti della CheatEngine 5.3

    (copia il link ed aprilo nel browser)

    CheatEngine_5.3_src__09_10_07.7z