samedi 29 juin 2013

Mes anciens articles de HACK

Dans les années 2000, alors que je n'avais qu'une vingtaine d'années, j'étais passionné par le hacking.

Si cette discipline m'a obligé à posséder de fortes compétences en réseaux, il est arrivé un moment où ma seule façon de progresser fût d'apprendre les arcanes de l'informatique, comprendre comment fonctionne précisément les choses pour entrer dans le cercle très fermé des "EL8" (comprendre élite).

Il faut savoir qu'en hacking, les personnes les plus respectées ne sont pas celles qui ont pénétré les plus gros serveurs, mis à genoux les plus gros systèmes ou volé les documents les mieux gardés de la planète, mais se sont celles qui trouvent et mettent en oeuvre les procédés et programmes qui permettent ces exploits.

Être un hacker consiste donc à étudier précisément un système afin de pouvoir détourner son utilisation originale pour le faire fonctionner à son avantage.

C'est dans ce sens que jadis j'avais écrit plusieurs articles techniques que je vais vous présenter ici.

Introduction

Lorsque l'on évolue dans le monde du hack, nul besoin de vous préciser que l'on ne signe jamais ses écrits avec son vrai nom, la bonne pratique consiste à utiliser un pseudonyme au cas où nos procédés violeraient les lois du copyright. Comme mes articles ciblent des systèmes qui sont aujourd'hui obsolètes, je pense qu'il n'y a plus de danger. Seule subsiste la manière et l'esprit qui permettrons à chacun d'apprécier la logique à avoir pour évoluer dans ce monde passionnément obscure.

C'est pour cela que tous les "papers" que je vais vous présenter serons signés "ThreaT" qui était mon pseudonyme. C'était l'époque du folklore, et vous verrez dans mes articles que certains pseudonymes étaient encore plus ridicules que le mien :)

Les articles

Attention : les liens ci-dessous vont vous mener vers des documents comportant énormément de fautes d'orthographe. Si j'essaye aujourd'hui de faire des efforts, ce n'était pas le cas à l'époque. Merci de votre compréhension. 

WSPing PRO Pack Cracking tutorial : Ce premier article explique la façon dont j'ai procédé pour déverrouiller la protection d'un logiciel  permettant de faire des tests réseaux. Je devais avoir 18 ou 19 ans lorsque je l'ai écrit. C'était l'époque où je commençais à maîtriser l'ASM et où je me passionnais pour l'ingénierie inverse (reverse engineering) dont le but est de désassembler un produit pour en comprendre les concepts de fabrication. Cet article est très technique mais on peut y voir comment s'y prennent les crackers pour casser les protections de vos logiciels préférés.

Virus Linux Shell Script Infection : Dans cet article il est question d'un des premiers virus pour Linux dont l'idée m'est venue par hasard. D'après la date de l'article je venais tout juste d'avoir 20 ans et le monde de la micro commençait à intéresser le grand public. Cet article a eu beaucoup de succès à l'époque de sa sortie, et pas mal de retour m'ont été faits sur les forums ou les canaux IRC.

Shell Script Infection part II : Après les nombreux retours sur le premier article traitant du virus Linux, j'ai écrit un deuxième article pour améliorer et optimiser le concept. Celui-ci a eu encore plus de succès que le premier et fût cité en référence dans pas mal d'autre "papers" de la communauté. Je me souviens d'ailleurs qu'au cours d'une conversation IRC avec un autre passionné, celui-ci m'avait expliqué que cet article était vraiment trop connu et qu'il était blasé de le voir cité à tous les coins de rue. Je m'en souviens car je ne savais pas vraiment comment prendre sa remarque...

Remote NT Shell Obtention : Ici arrive l'un de mes premiers articles permettant d'accéder au Graal : le contrôle à distance d'une machine à travers un "shell" (interpréteur de commande). Aujourd'hui avec la panoplie d'outils de contrôle à distance comme teamviewer, l'accès bureau à distance, VNC, ... cela peut paraître dérisoire, mais à l'époque où les serveurs étaient des machines sous Windows NT 4 avec 32Mo de RAM, ou les connexions internet étaient du RNIS  (hein ? quoi ?) ne dépassant pas les quelques Ko/s de débit, et où à peine 15% de la population française devait être connectée à internet, obtenir un moyen de contrôler une machine à distance relevait du défi technique.

Explorer.exe Buffer Overflow : Cet article est grosso-modo ma première tentative d'exploitation d'un buffer overflow. Pour ceux qui ne connaissent pas cette technique, sachez que les hackers usent de plusieurs procédés pour pénétrer les systèmes, et l'un d'entre eux consiste à exploiter une vulnérabilité d'un programme informatique appelée le dépassement de tampon. Le concept est simple : un ordinateur exécute une suite d'instructions comme un cuisinier suit une recette de cuisine. La technique consiste à placer en plein milieu de la recette un "continuez en suivant les instructions de la page x" (page soigneusement insérée par une technique appelée l'injection de shellcode). Lorsque le cuisinier arrive sur la page x, les instructions demandent à ouvrir la porte pour laisser entrer les voleurs, chose que le cuisinier fait sans poser de question pensant que cela fait partie de la recette de cuisine.

ThreaT Backdoor : Après avoir goûté au contrôle à distance (cf : Remote NT Shell Obtention), je me suis mis à créer une véritable backdoor permettant d'avoir un accès total par ligne de commande à une station distante. A cette époque je vivais sur Paris où la scène underground était très active. J'ai présenté ce projet à  un meeting de hack privé organisé dans un appartement regroupant pas mal de tête du milieu. C'est d’ailleurs au cours de cette présentation que j'ai rencontré des gars talentueux avec qui j'ai partagé plusieurs nuits blanches à coder, reverser et m’intéresser au kernel NT (Le noyaux du système Windows)

Make It Overrun : Dans la lignée des failles type buffer overflow, cet article présente l'exploitation d'un programme fourni par Microsoft écrit en langage WIL. Si celui ne présente pas grand intérêt sur le plan de sa possibilité d'exploitation, la technique reste quant à elle très intéressante pour présenter un cas concret aux novices passionnés.

Nethide : A partir d'ici, on commence à parler de choses sérieuses : les rootkits.
Dans cet article, j'explique de manière didactique comment modifier le programme netstat.exe (outil en ligne de commande permettant de lister toutes les connexions actives sur un ordinateur) dans le but de modifier son comportement afin que certaines connexions soient cachées à l'administrateur système. L'article demande un bon niveau en programmation bas niveau, en débogage système et quelques notions réseaux fondamentales. Je devais avoir 22 ans lorsque je l'ai écrit et je crois que c'est à partir de ce moment-là que mon niveau en informatique a commencé à être acceptable.

Cracking the WFP : Après Nethide, cet article monte le niveau d'un cran en s'attaquant à la WFP (Windows File Protection) qui est un procédé permettant à Windows de protéger vos fichiers systèmes sensibles. Mis au point en collaboration avec Crazylord, un hacker rencontré lors de la gamma OH (le meeting où j'ai présenté ThreaT Backdoor) nous expliquons comment détourner la protection pour injecter un rootkit maison du processus TASKMGR. Truc normal quoi...

Hardcode 1 : Pour cet article, j'avais pour projet d'écrire un e-zine (magazine électronique) dans lequel il serait question de patcher tout et n'importe quoi. Ce premier numéro présente une évolution de la commande "NET SHARE" pour lui donner la possibilité de faire un partage sur une machine distante. Malheureusement, je n'ai jamais continué ce projet qui aurait pu être très fun. L'article reste cependant très intéressant pour les passionnés de programmation bas niveau.

Regedit buffer overflow : Vous connaissez Regedit ? C'est l'outil Microsoft permettant d'éditer la base de registre. Figurez-vous que j'avais trouvé une faille dans cet outil présent sur tous les ordinateurs équipés du système Microsoft Windows® toute version qui permettait d’exécuter du code à l'insu d'un utilisateur. A la suite de cet article, j'ai publié une autre faille sur Regedit qui elle permettait d’exécuter du code en local ou à distance ! Le code source de l'exploit (le programme permettant d'exploiter la faille) a été diffusé sur NT bug track ou plus de 200 000 personnes l'on consultés. Encore plus fort, à l'époque j'avais proposé un patch de Regedit pour corriger la vulnérabilité, et celui-ci était disponible AVANT celui de Microsoft. Un pur délire encore consultable aujourd'hui sur des sites de sécurité tel que SecurityFocus, qui m'a même valu plusieurs publications dans la presse comme sur "Réseau-Telecom.net"

Real Win32 Generic Shellcode : Mon dernier article signé ThreaT, peut être l'apothéose d'une vie de hacker : Comment créer un Shellcode générique pour Windows. Le sujet est très technique, mais les possibilités sont immenses. Vous vous rappelez de l'histoire de la recette de cuisine dans laquelle on insère une page d'instruction ? (voir le résumé d'Explorer.exe Buffer Overflow). Le shellcode est cette page d'instruction, c'est donc l’élément crucial de l'attaque par détournement de pointeur (buffer overflow, format string, shatter attack, ...). Le problème c'est que chaque livre de cuisine à son propre format, nous devons à chaque fois créer une page d'instruction "spécifique" ce qui est très compliqué. Dans cet article j'explique comment créer une page "générique" afin de pouvoir l’insérer dans n'importe quel livre de cuisine. Je vous laisse imaginer la suite...

Sur ce...

L’écriture de ce billet a fait remonter pas mal de souvenir. Pour rester dans l’ambiance du hacker rebelle, je terminerai donc sur ce paragraphe nostalgique tiré du fameux "Hacker Manifesto" qui a bercé toute ma crise d’adolescence :

C'est notre monde maintenant... Le monde de l'électron et de l'interrupteur, la beauté du baud. Nous utilisons un service déjà existant, Sans payer ce qui pourrait être bon marché si ce n'était pas la propriété de gloutons profiteurs, et vous nous appelez criminels. Nous explorons... et vous nous appelez criminels. Nous recherchons la connaissance... et vous nous appelez criminels. Nous existons sans couleur de peau, sans nationalité, sans dogme religieux... et vous nous appelez criminels. Vous construisez des bombes atomiques, vous financez les guerres, Vous ne punissez pas les patrons de la mafia aux riches avocats, Vous assassinez et trichez, vous manipulez et nous mentez en essayant de nous faire croire que c'est pour notre propre bien être, et nous sommes encore des criminels.
Oui, je suis un criminel. Mon crime est celui de la curiosité. Mon crime est celui de juger les gens par ce qu'ils pensent et dise, pas selon leur apparence. Mon crime est de vous surpasser, quelque chose que vous ne me pardonnerez jamais.
Je suis un hacker, et ceci est mon manifeste.Vous pouvez arrêter cet individu, mais vous ne pouvez pas tous nous arrêter... Après tout, nous sommes tous les mêmes.

Aucun commentaire:

Publier un commentaire