Logo Blog perso d'Ozwald

Jafar, j'suis coincé !

Par Oz le - Sécurité
GIFAR Pentest

Allez, encore un titre de billet à la c*n basé sur un jeu de mot douteux. Donc, vous avez une petite idée de ce dont ce billet va parler ?...Nan ?..Toujours pas ?...Bon et bien je vous donne la réponse alors : les Gifar (jeu de mot avec "Jafar") Les gifars ne sont pas bien nouveaux (ça a au moins un an si je ne m'abuse), mais j'ai un petit peu l'impression que le concept a fait un "flop" assez vite après avoir été dévoilé, d'où la suite du titre : "j'suis coincé" (la citation entière "Jafar j'suis coincé" étant un moment drolissime du film "Aladdin" de Disney, 1992, ça ne nous rajeunit pas tout ça). Bon, maintenant que vous savez de quoi nous allons parler, passons aux choses sérieuses !

Jafar and Iago - From "Aladdin" by Disney in 1992

GIFAR, c'est quoi ?

Un GIFAR c'est un fichier GIF combiné à un fichier JAR. Pour être plus précis je pourrai d'ailleurs dire "concaténé" plutôt que "combiné". Et voilà. C'est juste ça.

L'intérêt des GIFAR c'est qu'un fichier GIF se lit à partir du début (c'est assez instinctif) avec un header suivit du contenu à proprement parler, en revanche les fichier JAR (qui ne sont en fait que des fichiers ZIP) se lisent en partant de la fin ! Ainsi si on concatène un fichier GIF avec un fichier JAR on peut lire le fichier résultant dans les deux sens (i.e. à partir du début ou à partir de la fin) et trouver ainsi, selon le sens choisi, un fichier GIF ou un fichier JAR tout à fait correct.

Ce type de fichier est donc assez amusant puisqu'on y voit ce que l'on vient y chercher : si vous cherchez un GIF vous trouverez bien un GIF, si vous chercher un JAR vous trouverez bien un JAR. Là où ça devient utile c'est que beaucoup de sites web permettent aux utilisateurs d'uploader des images et vérifient, au moment de l'upload, qu'il s'agit bien d'une image et non d'un quelconque code malveillant...ça tombe bien un GIFAR c'est une image au format GIF tout à fait correct :) ...mais un GIFAR c'est aussi un joli fichier JAR tout à fait correct également1.

Et comment ça s'exploite ?

Bon, maintenant que l'on sait ce qu'est un GIFAR : à quoi celà peut il bien servir ? Dans le paragraphe précédent on a déjà apporté une réponse triviale : ça sert à travestir un fichier JAR sous les traits d'un fichier GIF, et donc ça peut servir à uploader des fichiers JAR sur des serveurs qui n'acceptent que les fichiers images. Mais ensuite ? Mon petit avis à deux sesterces sur la question c'est que les GIFAR n'ont pas fait tant de bruits que ça parce que, justement, ils sont assez délicats à exploiter.

La première attaque qui vient à l'esprit consiste en effet à uploader notre GIFAR puis à "se demmerder" pour faire exécuter le JAR dans le navigateur des visiteurs. Petit souci : pour que ça soit faisable il faut un XSS dans le site en question afin d'ajouter les balises HTML qui vont bien pour introduire notre GIFAR en tant que JAR dans les pages du site (et non en tant que GIF, ce qui manquerait d'intéret). On voit donc bien qu'une telle attaque nécessite à la fois une vérification laxiste du type d'image uploadé et un XSS, ce qui commence à faire beaucoup. De plus si on met en perspective l'intéret d'une telle exploitation on se rend compte que c'est beaucoup d'efforts pour pas grand chose : par défaut une applet java ne peut quasiment rien faire (pas d'accès au disque local du client, et pas de communication réseau sauf vers le site d'où provient l'applet). Néanmoins il y a moyen de contourner ces limitations :

  • Navigateur web mal configuré qui autorise les applet à foutre le chantier sur le disque local (rarissime...j'espère);
  • utilisation de requête réseau vers le site où est hébergé le GIFAR afin d'essayer de laisser des traces quelque part de données clients que l'on voudrait récupérer (ex: si on est sur un forum on fait une requête qui va nous envoyer un message privé contenant le contenu des cookies qui nous intéresse...pour peu qu'ils ne soit pas en http-only bien entendu);
  • et enfin : la signature des applets.

La signature des applets ? Oui oui, la signature des applets. Une applet, ça peut se signer :) Une applet signée s'affranchit d'ailleurs de quasiment toutes les limitations (i.e. : on obtient l'accès au disque dur, on peut ouvrir des socket vers n'importe où, etc.) ce qui en fait d'excellents candidats à une attaque par GIFAR+XSS. Comment fait on pour signer une applet alors me direz vous ? Celà doit être extrèmement compliqué. Et bien non, ça se fait en deux lignes avec les outils du JDK :

$ keytool -genkey -alias votreAlias
$ jarsigner -verbose monapplet.jar votreAlias

Easy as a Pie :) ...MAIS ça n'est pas gagné pour autant. En effet une applet signée s'affranchit de toutes les limitations, mais pour qu'elle ai le droit de s'exécuter l'utilisateur doit l'y autoriser explicitement, donc vous allez avoir un gros vilain popup tout moche qui demandera à l'utilisateur si il souhaite exécuter cette applet. Bon, ça n'est pas la fin du monde, mais ça commence à devenir lourdingue puisqu'il nous faut, pour une exploitation réussi : pouvoir uploader un GIF, trouver un XSS, que la victime de notre XSS accepte explicitement de lancer notre applet.

Signature - Photo Creative Common by "Luca Zappa" on Flickr

Conclusion

Après ce petit article introductif tout mignon sur les GIFAR vous réalisez bien que ça n'est pas la panacée, mais je pense que c'est tout de même un excellent petit "trick" à avoir dans sa besace en cas d'attaques combinées ou d'exploitation délicate, et c'est pour ça que j'ai réalisé cet article :) Par exemple il pourrait vous être bien utile si vous vous retrouvez coincé en pentest sur une machine avec juste une ligne de commande limitée en taille et pas d'accès aux logiciels de téléchargement usuels (wget, tftp, etc.) mais que vous pouvez uploader des GIF...

  1. pour les rares qui auraient lu l'article jusqu'ici sans savoir ce qu'est un fichier JAR : c'est une archive de code java exécutable

Si j'avais un marteau

Par Oz le - Sécurité
Botnet Cyber-Crime

Comme promis dans mon premier article sur les botnet voici un nouveau billet pour exposer quelques unes des utilités d'un botnet. Vous allez voir ça valait le coup d'attendre tant les botnet s'apparentent à des "outils à tout faire".

De nos jours tous les botnet sérieux appartiennent à la mafia et leur objectif est donc clairement de faire de l'argent. Certes, on trouve encore quelques petits botnets qui ne suivent pas la logique du profit, mais ils sont marginaux et je ne parlerait donc pas d'hacktivisme ici1. Parlons donc de gros sous : Comment gagner de l'argent avec un botnet ?

Billets de monopoly - Creative Common by graciepoo on Flickr, mai 2009

Vous avez dit Mafia ?

D'abord la recette classiquissime au possible, celle qui a été à l'origine même des premières mafia (au sens usuel du terme) : la "vente" de protection. Je m'explique : visualisez votre magasin préféré. C'est fait ? Vous le voyez bien dans votre tête ? Avec les clients et les vendeurs ? Maintenant imaginez qu'il y a 1000 fois plus de clients que d'habitude : on se marche sur les pieds, on ne parvient pas à atteindre la caisse, on ne peut plus rentrer dans la magasin...bref : le magasin ne fonctionne plus :( Sur internet c'est pareil : vous choisissez un site web dont le métier est de prendre des paris online, et vous le menacez d'envoyer à ses portes 500 000 ordinateurs simultanéments (ce qui aura pour effet de rendre son site web inopérant, et donc de l'empécher d'exercer son activité de commerce tant que les 500 000 ordinateurs fraperont à la porte) sauf si, bien entendu, il vous accordes quelques menus piecettes...disons 10% du chiffre d'affaire qu'ils auraient perdu si vous aviez lancé votre attaque. C'est une bonne affaire : ils évitent de perdre 90% de ce chiffre d'affaire ;) ...Bref : extorsion par menace au DDoS2.

Mais aussi...

Autre méthode toute bête : des centaines de milliers de machines ça fait beaucoup de puissance de calcul et beaucoup de bande passante sur internet, donc ça a la capacité d'envoyer beauuuuucouuuup de mails à l'heure. Vous proposez donc à un propriétaire de site web peu scrupuleux d'envoyer quelques millions d'e-mails de publicité pour son site, contre rémunération bien entendu :) (oui, ça s'appelle du spam.)

Une petire dernière pour la route, toute bête encore : on avait dit dans l'article précédant que les centaines de milliers d'ordinateurs membres du botnet étaient des ordinateurs appartenant "à madame Michu" sur lesquels on avait installé un logiciel malveillant. Ca serait pas mal si le logiciel malveillant avait la possibilité d'intercepter tous les couples "identifiants/mot de passe" qui transitent par cet ordinateur...par exemple celui qu'utilise madame Michu pour aller regarder son compte en banque tout les mois et, éventuellement, virer de l'argent depuis ce compte :)

Bref il y a pléthores de possibilités et je vais laisser votre imagination travailler un petit peu (après tout il n'y a pas de raison que ça soit moi qui fasse tout le travail ;) ). Donc en guise de conclusion : les botnets sont d'intéressants outils à multiples facettes pour les botmasters, et une source presque intarissable d'articles pour ce blog donc attendez vous à en voir quelques autres à l'avenir ;) !

Swiss Knife - Creative Common by "focusforaword" on Flickr

  1. Si vous voulez en savoir plus à ce sujet...attendez un autre article que j'écrirai peut être plus tard ;)
  2. DDoS: Distributed Denial of Service

Bot Bot Botnet

Par Oz le - Sécurité
Botnet Cyber-Crime Malware

Quand j'ai pensé au titre de ce billet je me suis tout de suite dit que c'était une excellente idée et j'ai carrément arboré un grand sourire niais tout seul devant mon écran...mais maintenant que je l'ai écrit je réalise que sans explication personne ne pourra deviner ce à quoi je pensais en le choisisant donc voici l'explication : C'est un jeu de mot (merdique, soit) avec l'onomatopé bien connu "Cot Cot Codec" que j'ai modifié en accord avec mon envie de parler de botnet aujourd'hui.

Volaille - Creative Common by avlxyz on Flickr

Quelques bases1

Même si c'est l'enfance de l'art pour quiconque s'interesse un minimum à la sécurité informatique je vais ré-expliquer quelques bases sur les botnet (mais c'est vraiment parce que je suis trop gentil ;) ).

Avant tout un botnet c'est quoi ? Un "botnet" c'est un ensemble d'ordinateurs sur lesquels un individu (ou un groupe d'individu) possède une certaine influence, généralement à l'insu de leurs propriétaire. En version plus simple à comprendre (mais un peu moins exacte du coup) : un botnet c'est un ensemble d'ordinateurs que controlent secrètement de vilains pirates.

Comment sont construits ces botnets ? Les botnets sont, pour l'écrasante majorité, composés d'ordinateurs appartenant "à madame Michu". Ce sont donc des ordinateurs de particuliers qui sont compromis par l'installation d'un logiciel malveillant. Pas de trait de génie à attendre pour installer ce logiciel sur des centaines/milliers/millions2 d'ordinateurs d'ailleurs, les recettes classiques et évidentes s'appliquent :

  • Vers/Virus
  • Site web piégé
  • Distribution directe du programme via P2P ou sites web dédiés sous un nom sympa comme "Mi-grosSoft Office.exe", "Universal NoCD crack.exe", "Free Virus Remover.exe", etc.

Enfin à quoi ça sert un botnet ? Basiquement ça sert à créer un groupe important d'ordinateurs qui sont capables de récupérer les ordres d'un individu (ou d'un groupe d'individu) et de les exécuter. A partir de là il y a de nombreuses utilisations possibles pour une armée d'ordinateur zombies3 et j'en expose quelques une dans un article en cours de rédaction (donc repassez sur ce blog dans les jours à venir si vous voulez une étude un petit peu plus en profondeur des usages qu'on peut faire d'un botnet ;) )

Zombies - Creative Common by "Mister Wind-Up Bird" on Flickr, avr. 2009

A vos ordres, chef

Bon, maintenant que les concepts théoriques de bases sont connus de tous mes lecteurs4 on va pouvoir passer à quelques études pratiques ! Le point auquel nous allons nous intéresser dans ce premier article sur les botnet c'est : comment les botmaster communiquent ils leurs ordres aux pc-zombie ?

Il y a bien longtemps, à l'époque des premiers botnets, le fonctionnement de base était simple. Une fois infecté un ordinateur allait systématiquement rejoindre un certain channel irc (éventuellement protégé par mot de passe) et il y recevait les ordres de son maitre puis y faisait son rapport. Simple, efficace, évident :) Peut être trop simple d'ailleurs...En effet cette méthode a beaucoup d'inconvénients : un chan IRC avec des centaines de milliers de personnes qui répondent "oui maitre" à l'un d'entre eux ça n'est pas très discret, de plus si le botnet se fait repérer il est facile pour les autorités de couper le serveur IRC et là c'est "bye bye botnet" pour le pirate qui avait passé du temps à le monter.

Du coup on a eu quelques raffinements. Par exemple au lieu d'ouvrir un channel sur irc.undernet.org les botmasters5 se sont mis à installer leurs propres serveurs irc (de préférence sur des serveurs compromis et avec des versions customisées d'IRC pour réduire le traffic superflus). C'est tout de suite plus discret, mais pas encore parfait parce que pas mal d'ordinateurs (en particulier en entreprise) sont derrière des firewall et/ou proxy applicatifs qui bloquent les ports IRC et/ou carrément le protocol IRC. Du coup on a eu une petite mode de botnet controllés non pas par IRC mais via des serveurs web HTTP (bah ouais : le HTTP c'est vachement plus discret que l'IRC). Mais ça s'est vite avéré limité...

En effet un botnet ça prend du temps (et de l'argent ?) à construire donc ça serait bien si on pouvait assurer sa survie, or avec un point de rendez-vous unique comme un serveur HTTP (ou IRC) pour controller le botnet on met en danger la survie du réseau (en effet il suffit à une autorité quelconque de couper le serveur de ralliement pour que tout le botnet soit perdu6). Pour résoudre ce problème deux nouveaux concepts ont été introduits dans les botnets :

  • Le P2P > Des réseaux de P2P sont employés à tour de bras par énormément de monde pour partager des fichiers7 ou pour discutter8, donc il est tout à fait possible de les utiliser pour donner des ordres à ses ordinateurs zombie. Un exemple pratique serait de distribuer un fichier texte "mes_ordres.txt" sur le réseau Kad(eMule) : Le pirate partage ce fichier sur Kad, les zombie (qui sont également sur Kad) le télécharge et exécutent les ordres. Le premier avantage c'est que, contrairement au cas où les ordres sont posés sur un serveur web, il est impossible d'empécher les zombie d'obtenir les ordres en coupant un simple serveur. Le second avantage c'est qu'il devient très dur de remonter à l'IP qui a posté le fichier sur le réseau (i.e. : celle du botmaster).

  • OTP > "OTP" ça signifie "One Time Password" et c'est un concept assez intéressant : en très résumé un "One Time Password" c'est du texte construit à partir d'une règle secrète connues des seuls initiés. Par exemple je peux convenir avec un ami que notre OTP ça sera "le jour de la semaine concaténé à l'année", ainsi si je veux communiquer avec mon ami je n'aurai qu'à regarder quel jour on est et pour lui prouver que c'est bien moi qui lui parle je lui donnerai le mot de passe "lundi2009". La force de l'OTP, par rapport à simplement convenir d'un mot de passe unique avec mon ami, c'est que même si quelqu'un intercepte notre mot de passe il est incapable de savoir quel sera le mot de passe du lendemain (bon...avec l'exemple que j'ai donné c'est pas trop dur de deviner, mais si à la place du jour et de l'année on avait décider de concaténer un sel énorme avec un timestamp unix et notre OTP serait finalement le SHA256 de tout ça, ça devient plus délicat à deviner ;) )

Grâce à ces deux concepts on peut créer des choses extrèmement puissantes, la plus belle dont j'ai connaissance ayant été employé par Storm : Les bots calculaient chaque heure un nouvel OTP, ils se connectaient au réseau Skype9 et rentraient en contact avec un compte qui avait pour identifiant l'OTP calculé; ce compte était la source des ordres. Résultat :

  • Utilisant Skype les communications passaient aisément tout les firewall/proxy/nat.
  • Utilisant Skype les communications étaient chiffrées donc discrètes.
  • Utilisant un OTP il était impossible de prédire la source des ordres et donc de l'usurper10.
  • Utilisant Skype et un OTP il était imposible de couper le lien entre le botmaster et ses bot (à moins de couper Skype en intégralité...).

Bref : Du très bien pensé :) 11

Full Metal Jacket - Screaming Sergeant

Mais...à quoi ça sert tout ça ?

Les utilités d'un botnet sont aussi vastes que l'imagination humaine. Je pourrai arrêter cette section là, mais vous seriez frustrés de ne pas en savoir plus. Je pourrai également commencer à expliquer les nombreuses utilités d'un botnet, mais là ça ferait un post vraiment beaucoup trop long. Donc à la place je vais arrêter cet article ici, et vous donner rendez vous dans quelques jours pour un article exposant quelques unes des utilités d'un botnet :) ! Donc comme on dit aux "zoo essai12" : stay tuned.

  1. "All your base are belong to us" de toute façon !
  2. Oui, on a vu des botnet de plusieurs millions de machines. Bien que la méthode de comptabilisation par IP soit remise en question par ce rapport d'observation de torpig qui aurait put être estimé à plus d'un milion de machines par le décomptes des IP alors qu'en fait il n'y avait qu'environ 180k machines
  3. Vocabulaire : on peut appeller un pc membre d'un botnet un pc-zombie
  4. Lecteurs adorés, bien entendu!
  5. Vocabulaire : botmaster = les gens qui dirigent les botnets
  6. C'est ce qu'on appelle un SPOF en jargon technique (Single Point Of Failure)
  7. Napster, Morpheus, eMule, etc.
  8. Skype
  9. Cerise sur le gateau : toutes les communications sont donc chiffrés
  10. On a vu des groupe de white hat usurper des botmaster afin de lancer un ordre de désinfection de tout le réseau par exemple :)
  11. Pour tout vous avouer je n'ai pas suivi la chute de Storm, et je ne sais donc pas si des failles ont été trouvées dans ce fonctionnement
  12. USA

K.I.S.S.

Par Oz le - Geek
Fluxbox Gentoo Linux

La philosophie du K.I.S.S.

A priori l'écrasante majorité d'entre vous a pensé à un groupe de rock ou à un baiser à l'anglaise en lisant le titre de ce billet.

A priori l'écrasante majorité d'entre vous s'est trompé sur le sens de ces quelques lettres dans le cadre de ce billet ;) !

Ce billet est en réalité intitulé KISS en référence au proverbe "KISS"1. Ce proverbe est en fait l'acronyme anglais de "Keep It Simple, Stupid", que l'on pourrait traduire par "Fais simple, Imbécile !", et qui est donc une apologie de la simplicité.

KISS

Et que doit on garder simple alors ?

Si j'ai choisis d'intituler ce billet "KISS" c'est parce que j'avais envie de vous parler de l'environnement graphique de mon pc et qu'en y réfléchissant j'ai réalisé qu'au cours de ces dernières années j'avais de plus en plus appliqué ce proverbe à mon choix d'environnement graphique.

Pour les quelques égarés qui liraient ce blog et qui n'auraient jamais touché un linux de leur vie je rappele qu'un gestionnaire de fenêtre (ce que j'appele "environnement graphique") c'est la partie de l'OS qui est en charge d'afficher le bureau, les fenêtre, tout le merdier quoi (en très résumé :) ). Sous Windaube il n'y en a qu'un de disponible (toutes vos fenêtres ont la même tête, et il n'est pas envisageable d'en changer), sous linux il y en a plusieurs (du coup on peut en imaginer un où les fenêtre seraient ronde, ou bien un autre où les les boutons "agrandir", "réduire", et "fermer" seraient chacun dans un angle de la fenêtre au lieu d'être les uns à coté des autres en haut à droite, etc.). Et pour les non-égarés qui connaissent tout ça je les imagine maintenant, la bave trollesque aux lèvres, dans l'attente de l'annonce de mon choix entre KDE et Gnome...et je vais les décevoir : je suis utilisateur de Fluxbox ^^ !

Fluxbox c'est un gestionnaire de fenêtre léger, simple, et qui fait son travail de gestionnaire de fenêtre ni plus ni moins. KDE et Gnome, eux, sont des bureaux complets : ils embarquent le gestionnaire de fenêtre mais aussi l'explorateur de fichier et une horde d'autres petits logiciels pour répondre aux besoins de tout les jours. Moi je n'aime pas les logiciels qui essaient de deviner mes besoins de tout les jours, et encore moins ceux qui essaient d'y répondre en ramenant une horde d'outils logiciels pour ça !2

Tools - Creative Common by mtneer_man on Flickr, avr. 2009

Le choix du roi

Oui le titre de ce paragraphe peut paraitre prétentieux mais comme je le suis un peu et que de toute façon c'est une expression : je me permets ! Donc, une fois le choix de Fluxbox fait, il m'a tout de même fallut trouver les "petits logiciels qui répondent à mes besoins de tous les jours" (puisque, je me répète, Fluxbox vient sans rien d'autre que la capacité d'afficher des fenêtres) et ce sont bien tout ces choix, affinés au cours des années, qui donnent sa personnalité à mon environnement graphique. En voici la liste, brute de pomme :

  • Thunar : Explorateur de fichier esthétique et avec peu de dépendance (il a détroné "rox" que j'utilisais avant mais qui était quand même franchement moins beau)
  • fbsetbg : prog pour mettre une image en fond d'écran, parce que ça ne vient pas d'office avec Fluxbox lol (je vous l'avais bien dit que Fluxbox il gérait les fenêtre ni plus ni moins ;) )
  • iDesk : pour afficher des icones sur le bureau. En réalité je ne l'utilise plus (je n'ai plus d'icones sur mon bureau, je trouve ça moche et finalement inutile) mais si vous ressentez le besoin d'avoir des icones il est vraiment très bien.
  • conky : pour afficher pleins d'info (principalement du texte brut) en sur-impression sur le fond d'écran. Parce que vu que je n'ai pas d'icone j'ai plein de place sur mon bureau et que c'est sympa d'avoir l'occupation processeur affiché sur son fond d'écran, ou les flux RSS de son site préféré, ou encore la sortie standard d'un script maison codé un soir d'insomnie et qui fait Dieu-seul-se-souvient-quoi :)3
  • xcompmgr : pour avoir les effets de vrai transparence (c'est du Compiz ultra light pour ceux qui connaissent...bah ouais compiz ne semble pas marcher sous Fluxbox :( ) mais en fait je ne l'utilise plus non plus parce que grâce à ma super carte graphique ATI et à ses drivers en mousse il mettrait mon processeur à genoux...

  • xpdf : pour visualiser les pdf4

  • GImageView5 : pour visionner rapidement des images

  • Nedit : éditeur de texte graphique pour remplacer vim de temps en temps (j'utilisais Gedit avant, mais Nedit a infiniment moins de dépendance et l'a donc détroné, même si il est franchement laid ^^)

  • Et l'artillerie lourde bien entendu : Firefox, Thunderbird, OpenOffice3, Gimp, et audacious6

Voilà, on a fait le tour de 90% des logiciels avec GUI que j'utilise :) Si vous en connaissez d'autre n'hésitez pas à me les signaler, j'aime bien découvrir de nouveaux softs (seule contrainte : peu de dépendances...j'ai pas envie de compiler toutes les libs KDE juste pour avoir Anjuta ;) )

  1. Proverbe carrément élevé au rang de principe par certains
  2. Toute ressemblance avec un OS commercial ayant pour emblème une fenêtre ne serait que pure coïncidence
  3. Dans le doute affichez la sortie d'un "dmesg tail", ça a toujours son petit effet en sur-impression sur son fond d'écran :)
  4. Par exemple les papiers passionants qu'on peut trouver suites aux confs comme le SSTIC ou encore WOOT, ou bien entendu la BH
  5. "gimv" en ligne de commande
  6. Bon, ok, audacious ce n'est pas de l'artillerie lourde, mais un peu quand même ^^

Oh les belles plantes !

Par Oz le - Sécurité
Honeypot Malware Nepenthes

Savez vous ce que signifie "Nepenthes" ?

"Nepenthes" désigne un genre botanique qui regroupe des espèces de plantes carnivores à pièges passifs de la famille des Népenthacées1. Ces plantes ont donc pour particularité de générer des pièges (appellés "urnes") afin de capturer passivement toute proie assez bête2 pour s'y introduire et se faire digérer. Ces plantes vivent en milieu chaud et humide (visez Sumatra ou Bornéo si vous voulez avoir une chance d'en croiser en milieu naturel ;) ) et sont plutôt jolies si vous voulez mon avis :

Nepenthes - Creative Common by "Eric in FS" on Flickr

Et l'informatique là dedans ?

Maintenant que vous avez quelques bases concernant les Nepenthes je peux vous parler du logiciel qui tire son nom de ces charmantes plantes carnivores. Nepenthes est un logiciel issue du projet mwcollect (dont je vous avoue ne pas avoir suivi les diverses péripéties mais qui semble relativement mal en point) et son but est donc dans la philosophie du projet : la collecte de malware.

Comme les Népenthacées, le logiciel Nepenthes fabrique des pièges passifs et attend gentiment qu'une proie vienne s'y aventurer afin de la capturer. En termes informatique : Nepenthes ouvre des ports correspondant à des services notoirement porteurs de failles (pour n'en citer que quelques un : 80, 135, 139, ...) puis il attend qu'on s'y connecte. Lorsqu'on établit une connection sur l'un des ports ouvert, Nepenthes commence à simuler une vulnérabilité connues. Si la simulation est convaincante (bonnes réponses aux bons stimulis) et qu'on est un malware se propageant par l'exploitation de cette faille, on va donc envoyer un shellcode.

Nepenthes tente alors de décoder le shellcode en s'aidant d'une bibliothèque de shellcode usuels, si il y parvient et que le shellcode est du type "download & execute" Nepenthes va gentiment aller télécharger le fichier en question et l'exécuter3 le stocker dans un endroit sûr (enregistrement dans un répertoire local, upload sur site web, stockage en BDD, etc.). Et voilà le tour est joué ! Nepenthes vient de capturer un malware :)

Nepenthes - d'après l'ascii art original, avr. 2009

A quoi ça sert alors ce Nepenthes ?

Résumons nous : Nepenthes est un logiciel qui permet la capture passive de malware exploitant des failles connues et des shellcodes usuels. Or la récolte de malware, même exploitant des failles connues, peut avoir beaucoup d'intérêt :)

Imaginez que vous soyez un éditeur d'antivirus : c'est une opportunité de collecter des fichiers malicieux encore inconnus dont vous pourrez extraire une signature pour votre bouffeur de ressources produit. Imaginez que vous soyez un chercheur en sécurité informatique : c'est un outil bien pratique pour "prendre la température" du net et suivre les tendances. Enfin imaginez que vous ne soyez rien de tout ça : collectionner des malware ce n'est, en fin de compte, pas plus étrange que de collectionner des papillons :) !!!

Pour ma part je me classerai donc dans la catégorie des collectionneurs de papillons (avec un petit bout de chercheur en sécurité informatique quand même, faut bien se jeter des fleurs de temps en temps ;) ). Du coup j'ai installé un Nepenthes dans une VM et j'espère bien capturer quelques malwares puis réussir à en tirer quelque chose4 dans les mois à venir.

Butterfly - Creative Common by Museum Wales on Flickr, avr. 2009

Comment on installe un Nepenthes ?

Mettre en place un Nepenthes est simplissime : je m'attendais à aller chercher les sources sur le site puis à compiler le schmilblick mais en fait un package existait pour ma distro et c'est le cas pour plusieurs distro majeures (ah oui, il semblerait qu'on puisse aussi l'utiliser sous windows et mac si on a envie...). Bref pour moi en une ligne l'installation était faite, et en 10mn la configuration aussi (d'ailleurs cette dernière gagnerait à être un peu plus simple : lorsque je m'y suis mis j'ai retrouvé quelques secondes l'impression que la découverte des fichiers de conf de postfix m'avait faite il y a quelques années de ça ^^)

Vous pouvez décider des vulnérabilités que vous vouler simuler, les méthodes de download que vous voulez supporter (http, ftp, tftp , etc.), et ce que vous désirez faire des fichiers téléchargés. Pour ma part j'ai laissé les vulnérabilités par défauts, toutes les méthodes de téléchargements de malware, et j'ai décidé d'enregistrer les malwares récoltés dans un répertoire local (tout simplement ^^). Ensuite j'ai été paramétrer mon routeur afin de rendre accessible depuis les net les ports sur lesquels mon Nepenthes écoute. Et voilà les pièges sont montés. Plus qu'à attendre patiemment des résultats intéressants pour en faire un futur billet, alors restez à l'affût !

  1. Merci Wikipedia
  2. Bétise toute relative tant la plante déploie d'astuces pour attirer les proies. On se laisserait berner aisément.
  3. Nepenthes est un honeypot à faible intéraction
  4. Des statistiques sur le pourcentage de malware reconnus par tel ou tel antivirus en fonction de son age par exemple. Ou pourquoi pas carrément un spécimen inconnu que je parviendrait à analyser et dont l'autopsie pourrait alors faire l'objet d'un billet sur ce blog. Etc.

« Page 11 / 11