Cela fait plus de six longs mois que je tente (en vain) de me motiver afin de développer une seconde version de mon application Youspot pour Android, et je me heurte à chaque fois à des barrières: pas assez de temps, application relativement complexe, manque de motivation pour coder la nuit (malgré le coca, je dois avouer). Bref, je n'en pouvais plus de ne pas pouvoir faire avancer ce projet aussi vite que je l'aurais voulu.
Alors j'en ai parlé autour de moi. Aux geeks qui me connaissent, aux collègues, etc ... Sur twitter aussi j'ai fait part de cette idée d'arrêter de tenter d'améliorer la version actuelle de Youspot, et plusieurs followers m'ont suggéré d'ouvrir les sources. Il est vrai que jusque là, j'avais conservé jalousement le code source de l'application, tout en sachant pertinemment que cela ne servait pas à grand chose, ayant réalisé pas mal d'analyse d'application Android. Je ne sais pas pourquoi je n'avais pas songé à diffuser le code plus tôt, certainement parce que celui-ci était mal/peu commenté. Certainement parce que je pensais pouvoir mener la barque de ce projet à terme.
La réalité m'a rattrapé: le boulot, la famille et le temps que j'ai investi dans Youspot ont eu raison de ma santé (ou presque), et j'accumule un grand nombre de projets personnels qui restent en stand-by à cause de Youspot. Bref, décision fut prise d'ouvrir les sources, et tant qu'à faire autant promouvoir git, car je suis en train de migrer mes projets de subversion à git. C'est donc tout naturellement que le code source de Youspot a atteri sur github (https://github.com/virtualabs/Youspot/). Le code source de l'application, les ressources graphiques ainsi que le code PHP du webservice sont disponibles, et a priori n'importe qui peut recompiler l'application, l'arranger à sa sauce et monter son propre serveur Youspot.
Ce que j'espère de tout cœur, en partageant ce code source d'application, c'est qu'il puisse montrer aux développeurs débutant sur Android comment coder (de manière pas très propre et conforme ISO1664) une application assez complexe; ainsi que permettre à une ou plusieurs personnes qui seraient intéressées par l'application de reprendre le développement de celle-ci. La version actuelle présente sur le Market ne sera pas retirée, et le site www.youspot.org restera actif (merci Corbier ;), je tiens à le préciser.
Merci à tous d'avoir testé et soutenu Youspot, peut-être du renouveau très bientôt ? Qui sait.
Suite aux différentes révélations de piratages de sites qui ont eu pour source des pastes effectuées sur pastebin.com et consors, je me suis intéressé de plus près à ces systèmes et aux usages courants de ceux-ci. Ces systèmes dits de pastebin sont très utilisés par des développeurs, ou même des internautes pour partager des séries de textes, comme des codes sources ou encore le contenu de fichiers de configuration. Ces partages peuvent être réalisés de manière publique ou non.
J'ai orienté mon analyse dans deux directions. La première est classique, il s'agit tout simplement de mesurer la résistance des sites de pastebin au harvesting, la seconde de sonder les usages fait par les utilisateurs du service. Je dois dire que la première direction me semblait tracée, quant à la seconde j'ai été quelque peu surpris.
{L'{harvesting ou comment dénicher des pastes perdues}}
Tout système de pastebin se doit d'implémenter certaines fonctionnalités, comme:
Ces fonctionnalités doivent être implémentées dans tout pastebin qui se respecte, cependant ce n'est pas le cas de tous ! J'ai pu notamment éplucher le fonctionnement de plusieurs pastebin qui ne répondent pas à ces critères, dont certains sont relativement connus et usités. Le critère le moins souvent respecté est le troisième que j'ai précédemment énoncé, celui qui consiste à donner un alias de paste qui ne soit pas aisément trouvable. Or bon nombre de pastebin se contentent de l'incrémenter, comme par exemple pastebin.archlinux.fr, paste.ubuntu.com ou encore pastie.org.
Il devient alors aisé de décrémenter le numéro référençant le paste, et de lister l'ensemble des contenus accessibles, dont notamment les pastes qui sont privées et ne devaient a priori pas être lues par tout le monde. Le non-respect de la troisième fonctionnalité implique ainsi une entorse possible à la seconde fonctionnalité.
Quant à la première, certains pastebins ne l'implémentent pas du tout, comme c'est le cas sur le pastebin de la distribution Ubuntu, qui conserve des pastes datant de 2007, comme par exemple ce paste.
J'ai donc développé un petit outil permettant de récupérer les données intéressantes qui pourraient se trouver dans ces différents pastebins, afin de les analyser et de pouvoir repérer les usages faits de ces outils de stockage de texte.
Et on creuse à la mode Minecraft ...
Muni de cet outil, j'ai tout simplement commencé à récupérer bon nombre de pastes publiques ou privées, et conservé que celles qui me semblaient pertinentes (présence d'URLs, de référence à des mots de passe, des identifiants, etc ...).
J'ai été surpris de découvrir les différents usages fait de ces pastebins, car à part le partage de code source ou de texte et la diffusion de textes indiquant le piratage de tel ou tel serveur, je n'avais envisagé seulement qu'une poignée d'utilisations possibles. Alors que la réalité est toute autre !
Certes, les bouts de code partagés sont dans certains cas très intéressants, comme celui-ci récupéré sur le pastebin d'Ubuntu et qui dévoile une portion de requête SQL en place sur launchpad.net (développé par Canonical, la même société qui supporte Ubuntu):
Traceback (most recent call last): File "/srv/launchpad.net/codelines/current/scripts/ftpmaster-tools/sync-source.py", line 858, in ? main() File "/srv/launchpad.net/codelines/current/scripts/ftpmaster-tools/sync-source.py", line 853, in main current_binaries = read_current_binaries(Options.tosuite) File "/srv/launchpad.net/codelines/current/scripts/ftpmaster-tools/sync-source.py", line 483, in read_current_binaries cur.execute(query) psycopg.ProgrammingError: ERROR: column "published" does not exist at character 397 SELECT bpn.name, bpr.version, c.name FROM binarypackagerelease bpr, binarypackagename bpn, component c, securebinarypackagepublishinghistory sbpph, distroarchrelease dar WHERE bpr.binarypackagename = bpn.id AND sbpph.binarypackagerelease = bpr.id AND sbpph.component = c.id AND sbpph.distroarchrelease = dar.id AND sbpph.status = Published AND dar.id in (59, 60, 61, 62, 65, 63, 64)
Il est par ailleurs intéressant de noter que Canonical s'est servi de ce pastebin à des fins de partage de code interne, a priori sans se douter que n'importe qui pouvait le récupérer. On y trouve par ailleurs une donnée encodée en base64 qui ressemble étrangement à une clef publique SSH, dans les premiers pastes insérés dans le pastebin d'Ubuntu:
AAAAB3NzaC1yc2EAAAABIwAAAQEAnfeJoAXw+5hHrSgr09AQBLocDwlxguTAv7ZjbrWh09gbneg3Gl+lziraHUpIM3odvUhiWpKyjiPBPxBRyYdLijv774jxuZ34eDQ09U+L6ofsimB9dFuG0aduVJZCC/A6BAg9DZzXU9U6YdoYMlvvR9W7a9TUqE1Mtql0G30u0y1jTnguumosFllTCr1ww7AW4yu8UJz41OubwUiRSgNMhFSuPmqhf/v8v1Y38j2eeb6CvsZGMmPOQ2QqvHVc+mjbeqONDTuE0PFdHc86a59oejodEtpJuKw5FSmaxNCrQWJTZ+GkLRGHMwn3iNqOMWtUeud8IQBWdVRpIozirnP5Aw==
On trouve aussi des identifiants d'accès à différents services en fouillant un peu (les identifiants et mots de passe ont été modifiés):
ftp://3dsp_********@3dsp.com.cn/ user: 3dsp_******** passwd: m4r*** user: 3dsp_******** passwd: fw1***
Cette utilisation correspond à l'usage normal du pastebin, cependant on peut s'apercevoir très rapidement que ces systèmes sont aussi employés pour diffuser des versions crackées de jeux, comme le tout récend Dead Island, qui se retrouve sur fileserve en archive multi-parties et dont plusieurs pastes ont été réalisées sur différents pastebins, référençant les différents fichiers. Bon c'est du direct download, mais c'est certainement employé pour diffuser ces informations.
http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part01.rar http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part02.rar http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part03.rar http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part04.rar http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part05.rar http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part06.rar http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part07.rar http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part08.rar http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part09.rar http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part10.rar http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part11.rar http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part12.rar http://www.filesonic.com/file/188*******/D34d_I5la_Reloaded_By_EscorpionENS.part13.rar
Un autre usage observé, et qui se rapproche de ce que l'on a pu voir avec l'annonce sur ces systèmes de piratages de serveurs, est la publication de comptes email compromis, avec dans la grande majorité des cas le compte email et de manière optionnelle les mots de passe:
TARGET: Sony Pictures International [sonypictures.com] [exposed sonypictures.com database] NAME: sweepstakes - sptv_seinfeld_delboca_users EMAIL | PASSWORD 1@grandhaven.us | swe*** 10coleen@bellsouth.net | rox*** 121cabana@animail.net | a0a*** 123@11.com | 123*** 12347890@charter.net | 2ca*** 1369venom@gmail.com | tho*** 1544@comcast.net | mic*** 1709green@gmail.com | g9g*** 1948baby@comcast.net | mar*** 19jackson@comcast.net | den*** 1agordon@roadrunner.com | scr*** 1Chance4Laura@gmail.com | can*** 1colleenruth@q.com | yos*** 1koko2@gmail.com | spa*** 1l9b8w7b@gmail.com | 19L*** 1lindam@gmail.com | sca*** 1lizardqueen@gmail.com | bud*** 1redsox1@sbcglobal.net | cas*** ...
Dans le même style, certains pirates récupèrent des informations de keyloggers directement via des pastes:
---------------------------------------------------------- Program: Firefox Url/Host: http://aimbots.net Login: Swa******** Password: bax*** Computer: TROY-PC Date: 2011-05-08 22:53:23 Ip: 69.108.***.*** ---------------------------------------------------------- Program: Firefox Url/Host: http://www.d3scene.com Login: Swa******** Password: bax*** Computer: TROY-PC Date: 2011-05-08 22:53:23 Ip: 69.108.***.*** ---------------------------------------------------------- Program: Firefox Url/Host: http://www.fpscheats.com Login: taj********@yahoo.com Password: bax*** Computer: TROY-PC Date: 2011-05-08 22:53:24 Ip: 69.108.***.*** ---------------------------------------------------------- Program: Firefox Url/Host: http://www.fpscheats.com Login: Swa******** Password: bax*** Computer: TROY-PC Date: 2011-05-08 22:53:24 Ip: 69.108.***.*** ----------------------------------------------------------
Ou encore partagent des bouts de code PHP réalisant ce qui semble être un webshell (PHPJackal):
$intro="<center><table border=0 style='border-collapse: collapse'><tr><td bgcolor='#666666'><b>Script:</b><br>".str_repeat('-=-',25)."<br><b>Name:</b> PHPJackal<br><b>Version:</b> $v<br><br><b>Author:</b><br>".str_repeat('-=-',25)."<br><b>Name:</b> NetJackal<br><b>Country:</b> Iran<br><b>Website:</b> <a href='http://netjackal.by.ru/' target='_blank'>http://netjackal.by.ru/</a><br><b>Email:</b> <a href='mailto:nima_501@yahoo.com?subject=PHPJackal'>nima_501@yahoo.com</a><br><noscript>".str_repeat('-=-',25)."<br><b>Error: Enable JavaScript in your browser!!!</b></noscript>$et</center>";^M $footer="$*msgbox*PHPJackal v$v - Powered By <a href='http://netjackal.by.ru/' target='_blank'>NetJackal</a>$et";
J'ai aussi pu identifier quelques annonces de carders, et foultitude de liens pointant sur des sites pornographiques, avec des accès valides (oui j'ai vérifié, et non je n'ai pas sali le clavier ou l'écran):
I'm Seller for: CC, CVV US,UK,CA, EURO,AU, Italian,Japan,France,...all cc. Paypal verify, Software Spam mail mail list, code PHP,Shop Admin and CC fullz info, CC DOB, Dump, Banklogin, Pri sock....Domain hosting. If you want to test you must send money for me Contact me if you need it: YahooID: sell_cvv.good89 You Send money => I send cvv2 good Payment via LR Sell Paypal account US reg 3 month ago: 18$/1 acc: Verified Sell Paypal account US: 10$/1 acc: Verified Sell Bank account info US: 7$ Sell PVN to ----> US : 8$/month ( Fake IP US) Sell Visa Debit US : 120$ "Sell cvv US UK AU EU full info live 100% good price 1 Sock live = 1$/1sock live > 5day ... http://123****:987****@members.collegefucktour.com/full/ http://Dre****:WP2****@americancatfighting.com/members/ http://caf****:mcf****@www.hioctanemag.com/membership/ http://epo****:epo****@members.larinlanexxx.com/ http://rom****:rom****@realspankingspremium.com/members/ http://ani****:ani****@www.beautygirl-story.org/ http://sam****:sam****@transworldasia.com/private/members/members-main.php http://713****:par****@readvintage.com/members/ http://JAS****:FIS****@www.blacksandmatures.com/members/v2/ ...
Conclusion
Actuellement, les pastebins servent de système de stockage (presque) anonymes, et autant les utilisateurs que les développeurs de pastebins (à l'exception de certains pastebins comme pastebin.com, et autres) ne s'y prennent pas comme il faut. En faisant cela, des données personnelles et/ou confidentielles sont exposées, et un petit malin récupérant l'intégralité des pastes régulièrement pourrait tomber sur des informations sensibles. Aucune limitation de requêtes n'est présente, pas de surveillance du contenu (supposé privé amha).
Le manque de protection par mot de passe ou de pastes consultables qu'une seule fois (via l'emploi de jetons) se fait rapidement sentir. Les développeurs de ces plateformes sont responsables de la sécurité des données insérées par les utilisateur, bien que la grande majorité se déchargent allègrement de cette responsabilité au travers de disclaimers comme celui-ci:
<quote>With great power comes great responsibility. Pastie wisely. </quote>
Toutefois, cela reste une très bonne source de recherche pour dénicher des informations sensibles, comme des comptes email/facebook compromis, des accès aux hotspots Neuf, des informations sensibles issues d'entreprises dont les employés partagent via ces systèmes, et pas seulement détecter la compromission d'un serveur. De même, les outils de veille technologique devraient intégrer l'indexation de ce type de contenu, contenant potentiellement (et temporairement dans certains cas) des données vitales concernant une personne ou une entreprise.
C'était samedi dernier, ma femme traînait comme chaque weekend sur MSN, guettant chacun de ses contacts afin de discuter des choses en cours, etc... Et son petit frère vient lui parler, et le plus normalement du monde lui demande de mettre une annonce à sa place sur le site www.leboncoin.fr. Geekant à côté, ce fait m'a clairement intrigué, mais je l'ai laissée faire, tout en restant méfiant. Et je n'ai pas eu tort.
tu vas m aider juste 5min ...
Je sentais bien qu'elle galérait à suivre les indications de son frère, qui par ailleurs avait un langage bizarre. Petit extrait de la conversation:
mme_virtu: tu veu que jappel xxx: tu vas m aider juste 5min a remplir un formulair d'annonce sur un site d' annonce gratuite car il y a mon pc qui beugg sur le site et qui me soul et me donne la merde mme_virtu: ah et quest ce que je peu faire xxx: voila tu va sur le site www.leboncoin.fr et tu klic sur deposer une annonce et apres tu me di la suite cbon?? tu es sur le site ?? ?? mme_virtu: oui ji suis xxx: ok tu klic sur deposer une annonce mme_virtu: c fai xxx: ok Code postal: 50110 Département: Manche Région: Basse-Normandie voila tu remplir et tu me di la suite mme_virtu: OKI ENSUITE xxx: oui tu me di et je te donne mme_virtu: OK
Bref, il se montrait un poil trop insistant. Elle était là pour l'aider quoi, il aurait dû être plus reconnaissant le bougre. Je flairais le piège. Pour le coup, il lui demande par la suite de télécharger des images directement via des URLs, de les sauvegarder et de les ajouter à l'annonce. C'est là que ma femme a laché l'affaire, n'étant pas experte de la chose, elle me passe son laptop et me demande de le faire à sa place. Je le prends, termine la saisie de l'annonce, et note les informations intéressantes fournies par mon interlocuteur:
Je soumets, et là il me demande de la valider à sa place, en me collant directement le lien dans MSN. Encore une fois, très louche tout ça. Je lui fais croire que j'ai validé, et il me demande d'en poster une nouvelle. J'en profite pour faire les vérifications d'usage:
mme_virtu: ok, vous arrivez quand ici ? xxx: tu a remplir deja ?? mme_virtu: nan pas encore, je veux juste savoir quand est-ce que tu viens me voir lol xxx: demain soir ok tu remplir et tu me di ok on fini vite mme_virtu: ca peut pas attendre dimanche, ca me saoule ... xxx: ok tu sa quand?? tu veux quand alor ? mme_virtu: dimanche quand tu seras a la maison xxx: koi?? tu remplir la ??
Bon, comme prévu il a eu faux à la question piège (la date de son arrivée), à savoir qu'il devait venir le lendemain en début d'après-midi et non le soir. Pour le coup je l'ai fait un peu patienter, généralement cela a le don d'énerver l'interlocuteur (ce qui a été le cas ici). Pour terminer, je refuse tout simplement de poster une seconde annonce à sa place, et il se déconnecte aussitôt sans autre forme d'au-revoir, ce qui me confirme encore une fois que ce n'était pas mon beau-frère en face, mais bel et bien un pirate.
En parallèle de cette conversation, j'avais googlé rapidement quelques mots-clefs histoire de voir si c'était une arnaque connue, et quelle ne fut pas ma surprise de lire plein d'avis d'internautes qui se sont fait avoir par ce type de piège.
Oui, mais pourquoi ? Pourquoiiiiii ??
La première question qui m'est passée par l'esprit était celle du pourquoi: pourquoi demander à une tierce personne de poster une annonce sur le site www.leboncoin.fr alors qu'elle pourrait le faire elle-même. J'ai donc entrepris de faire quelques recherches dans ce sens.
Première partie de réponse, qui m'a semblé évidente: pour éviter d'être tracé. En effet, les annonces postées indirectement par les pirates sont très alléchantes, et peuvent attirer de potentielles victimes qui pourraient décider d'acheter un bien fictif et se feraient donc arnaquer de quelques milliers d'euros. En cas d'enquête, c'est l'adresse IP de la personne qui a posté l'annonce qui est suspecte. Ceci dit, les proxies anonymes et/ou ouverts existent, et permettent de passer outre. J'étais sceptique.
J'ai donc décidé de vérifier par moi-même si leboncoin interdisait l'envoi d'annonce de l'étranger:
Impossible donc de déposer une annonce si on ne provient pas d'une adresse IP française, et cela afin de limiter les fraudes je suppose. Pour un étranger, demander à un français de passer une annonce à sa place a donc deux avantages: pouvoir déposer et valider une annonce (lors de la discussion, mon interlocuteur m'a demandé de visiter un lien de validation d'annonce) tout en étant quasi pas traçable.
En recherchant sur Internet plus d'information sur ce type d'arnaque, je suis tombé sur deux URLs bien sympatiques:
Elles expliquent en partie les motivations de ces pirates, et notamment le fait que ceux-ci cherchent à déposer des annonces frauduleuses sur le site www.leboncoin.fr, mais tentent aussi de phisher le mot de passe MSN de la victime à l'aide de ce site même ! Je dois avouer que je n'avais pas directement pensé à cette solution...
1, 2, 3, 4, 5, 6 ... owné !
J'ai remarqué que le pirate m'a demandé de mettre le mot de passe 123456 comme mot de passe de l'annonce, alors je me suis dit qu'il devait être "fan" de ce type de mot de passe. Ni une ni deux, je me suis connecté sur le portail de Yahoo, et je me suis authentifié sur le compte qu'il m'avait fourni avec le même mot de passe, bingo !
J'ai pu retrouver l'email de demande d'activation de l'annonce envoyé par www.leboncoin.fr:
Bon, jusque là rien de super passionnant. J'ai juste réussi à compromettre le compte email du pirate. Cependant, Yahoo propose une fonctionnalité capitale: la possibilité de regarder qui s'est connecté sur le compte (via l'option "Infos Compte"), et affiche notamment les adresses IP. C'est comme cela que j'ai pu récupérer les différentes adresses IP du pirate qui a créé ce compte:
Une rapide géolocalisation de ces adresses IP montre qu'elles proviennent du Bénin (Cotonou et villes proches), ce qui est apparemment très courant dans ce type d'arnaque. Le compte a été visité le lendemain de la tentative que j'ai essuyé, mais sans nouvelles du site www.leboncoin.fr . Quant au numéro de téléphone donné par le pirate, celui-ci n'est pas attribué.
Le cheval de Troie belge de retour !
Je n'ai pas pu récupérer plus d'information que cela sur le pirate (pas comme didoune qui a pu discuter avec lui et mesurer sa ... enfin bref), mais on peut se rendre compte très rapidement que l'attaque est réalisée par des personnes sans aucune connaissance technique en informatique et encore moins en sécurité:
Le site www.leboncoin.fr fait tout son possible pour éradiquer ce type de comportement, qui s'est d'ailleurs propagé sur facebook et d'autres messageries instantanées, mais cela reste la bonne vieille technique du cheval de Troie belge: "Bon maintenant tu ouvres ton navigateur, et tu fais ce que je te dis ...". Ce type de fraude n'est pas neuf, car plusieurs attaques de ce genre ont été recensées à partir de 2010.
On ne le dira jamais assez, mais ne faites pas n'importe quoi avec votre compte facebook ou MSN, sans quoi vous mettez votre sécurité, vos données personnelles ainsi que celles de vos amis en danger.