Débuter dans le vaste monde du hacking

Débuter dans le vaste monde du hacking

Par où commencer ? Que faire ? Quels outils ? Quoi apprendre ? Où apprendre ? Voilà le genre de question que l'on peut se poser lorsque l'on débute.

Premièrement, il faut bien clarifier ce que vous entendez par « hacking ». Bon nombre de personnes se disent intéressées par ce domaine mais on constate bien souvent qu'en fait, peu leur importe les techniques utilisées, comment elles fonctionnent, comment l'outil qu'elles utilisent fonctionne : tout ce qui les intéressent, c'est le résultat qu'elles obtiendront avec cet outil. Si votre but est de savoir où télécharger des virus, RAT, botnet ou de savoir comment pirater le compte Facebook/Twitter de votre ex, cet article et ce site ne sont absolument pas pour vous car ce n'est pas cet aspect là que nous aborderons. Et quand je parle de hacking, c'est principalement de sécurité informatique dont il s'agit même si ce domaine ne se limite absolument pas qu'à ce secteur. ;)

Contrairement à l'image populaire, non, le hacking n'est pas forcément une pratique obscure et illégale, tout dépendra de ce vous en ferez. Il ne vous sera pas non plus nécessaire d'aller au fin fond du web muni de votre super VPN pour apprendre diverses techniques. En fait, il existe énormément de tutos écrits par des gens très compétents et qui sont accessibles par une simple recherche sur Google. Il y a pas mal de documentation sur le sujet et c'est souvent par ce biais là que vous apprendrez.

L'autre grande question, c'est la mise en pratique et là aussi, contrairement à ce que l'on pourrait croire, on peut tout à fait s'entrainer de façon totalement légale et sans danger. Oui oui, vous avez bien entendu. Il existe des sites dont le but premier est l'apprentissage de la sécurité informatique. Ces sites mettent en place ce qu'on appelle des « challenges », c'est à dire des épreuves simulées qui, pour la plupart, pourraient se retrouver dans des situations réelles. Le but de ces challenges est généralement d'obtenir un flag (un mot de passe si vous préférez) qui permettra de valider l'épreuve. Il peut s'agir d'exploitation de faille, de cryptographie où le but est de déchiffrer un message codé, de retrouver des données sensibles dans une trame réseau etc.

Voici quelques uns de ces sites :

Je ne suis inscrit que sur les trois derniers, inutile de me chercher sur HackThis mais je l'ai tout de même indiqué dans la liste car il me semble, de ce que j'ai pu en voir, que sa difficulté est plus faible que les autres (à confirmer, je n'ai pas testé) donc probablement plus accessible pour un débutant (mais encore une fois, ne vous attendez pas à des situations très réalistes. Le coup « classique » du mot de passe dans le code source HTML, dans la vraie vie, personne ne fait et ne fera jamais cela). Newbie Contest et Root Me sont, par contre, certainement nettement plus complets et réalistes mais peut être moins évidents à aborder car on entre plus rapidement dans le vif du sujet mais ça se rapproche déjà bien plus de la « réalité ».

Ces sites (en tout cas, pour les trois derniers) sont décomposés en plusieurs « sections » : failles système, failles web coté client et serveur, cryptographie, réseau, cracking etc. Les pré-requis varient donc d'une section à une autre. Par exemple, pour les épreuves web - client, il est vivement conseillé de se pencher sur le javascript alors que pour le coté serveur, PHP s'avère être un meilleur choix. Pour les failles applicatives, le C et l'assembleur sont les langages phares. Alors, peut être vous demandez-vous pourquoi est ce nécessaire d'apprendre la programmation ? Dans le cas des failles, elles sont quasiment toujours dues à une mauvaise vérification des entrées provenant de l'utilisateur, or il est, je pense, préférable voir même indispensable de comprendre le code qu'on vous fournira (ou pas car il ne l'est pas toujours et ça sera donc à vous de « supposer » ce qu'il pourrait y avoir derrière et comment ça pourrait fonctionner) afin de bien comprendre comment et surtout pourquoi ces entrées peuvent impacter le comportement du programme et par conséquent vous permettre éventuellement de comprendre également comment compromettre la sécurité mise en place (si cela est possible). La programmation est donc une étape indispensable car intrinsèquement liée (même chose pour, par exemple, le réseau : si vous souhaitez réalisez un certain type d'attaque sur un réseau, il est indispensable de comprendre comment le protocole en question fonctionne).

Concernant les challenges, il faut bien préciser également qu'il ne s'agit pas de tutos ! La solution ne vous est jamais donnée (enfin si, mais seulement après avoir validé l'épreuve). C'est à VOUS de vous renseigner et de la trouver et j'insiste bien là dessus. Ce n'est pas Star Wars, il n'y a pas de maître Jedi qui vous apprendra tout ce qu'il sait, ça sera à vous de le faire par vous même. C'est là une des premières difficultés : il faut apprendre à chercher, à se documenter, et ce par soi-même et puis essayer d'appliquer ça au challenge. C'est de cette manière que vous progresserez et apprendrez : en bûchant (ou comme dirait le diction, en forgeant). Un bon réflexe est de repérer le nom de la faille (ce qui n'est généralement pas compliqué vu qu'on vous fournit des documents s'y rapportant) et de parcourir les divers tutos que vous trouverez en tapant ce nom dans Google. Ensuite, il faudra mettre la théorie en pratique. Oui, le hacking, c'est, à l'heure actuelle, une grosse part de recherche.

Autre point épineux : les connaissances de base. Effectivement, si les premières épreuves peuvent se résoudre sans connaissances spécifiques, vous vous rendrez vite compte qu'il sera rapidement indispensable d'avoir un bagage minimum. Si vous souhaitez, par exemple, savoir comment fonctionne une injection SQL et que vous ne péter pas un mot de SQL, je vois mal comment vous pourriez réussir. Alors oui, il existe des outils qui vous automatise tout cela mais si vous partez dans cette optique, on en revient alors au problème du second paragraphe. Retenez bien qu'on ne peut pas apprendre à votre place. Il n'est pas non plus nécessaire de connaître dix langages de programmation sur le bout des doigts mais il est par contre quasi indispensable de comprendre le(s) langage(s) utilisé(s) dans la section d'épreuves qui vous intéresse (la programmation, encore et toujours elle :) ). Là encore, le web regorge de cours et de tutos sur les différents langages (petit coup de pub au passage pour Zeste de Savoir). On peut vous expliquer ce que vous ne comprenez pas, vous aiguiller mais il ne faudra pas espérer qu'on vous donne la solution. Je me répète pas mal de fois mais on voit souvent des personnes se pointer, dire qu'elle sont « passionnées » par le hacking et finir leur message par « Apprenez moi ». La réponse que vous obtiendrez avec ce genre de demande sera bien souvent « Google est ton ami » et c'est on ne peut plus vrai. Maintenant, n'hésitez cependant pas pour autant à poser des questions (rappel : « Apprenez moi ! » n'est pas une question) même si elles vous semble idiotes : on a tous débuté un jour et le fait de se poser des questions est normal. Les sections web sont souvent recommandées pour débuter car les langages utilisés sont facile d'accès.

Concernant les outils ben là... c'est un peu selon vos goûts et couleurs. Du moment que vous ayez au moins un éditeur de texte, un compilateur, un navigateur et SURTOUT, votre cerveau et vos connaissances, le reste, on s'en fout un peu, c'est une question de préférence personnelle. Donc non, il n'est pas obligatoire d'être sous GNU/Linux même si je conseille malgré tout d'avoir des bonnes bases car vous y serez confronté dans certains types d'épreuve mais si vous préférez Windows, vous pouvez tout à fait rester sous Windows car, au final, ce n'est absolument pas le système d'exploitation qui « fera » vos compétences. Ceux qui vous balancent donc que la base c'est « Kali Linux » se trompent lourdement ; la base, c'est comprendre ce que l'on fait et ces personnes là ne comprennent généralement absolument pas ce qu'elles font. J'aurais même tendance à vous conseiller, avis purement personnel, si vous souhaitez installer une distribution Linux, de prendre ce que vous voulez... sauf Kali Linux : le problème majeur pour les débutants avec cette distribution, c'est qu'elle mache (enfin plutôt les outils qui sont dessus et qui sont, pour la plupart, tout à fait disponible autant sous Windows que sous Linux) tellement tout qu'au fond ils n'apprennent absolument rien. On se contente d'utiliser les outils pré-installés sans piger ce qu'ils font concrètement : on pirate des sites à coup d'injections SQL via sqlmap et on ne sait pas faire la moindre requête SQL, on exploite des buffer overflows grâce à metasploit et on n'est même pas capable de mentionner ne serait ce que le nom du type de la faille... Ça, pour moi, ça n'est pas du tout du hacking. Prendre une autre distribution vous forcera déjà à devoir vous démerder un peu plus (ne serait ce simplement que pour l'installation de ce dont vous avez besoin) et surtout à devoir un minimum comprendre ce vous voulez faire. Je connais d'ailleurs des personnes se débrouillant nettement mieux sous Windows que d'autres qui ne jurent que par Kali Linux. Pourquoi ? Tout simplement parce que les premiers savent pertinemment ce qu'il y a sous le capot alors que les seconds, eux, se sont purement et simplement arrêtés à la carrosserie et ignore ce qu'il y a en dessous. Eh oui, la voilà, la véritable différence : ce qui fera vos compétences, c'est bel et bien en comprenant « ce qu'il y a sous le capot ». Et si vous continuez à hésiter entre Windows/GNU Linux, il y a toujours la possibilité d'une machine virtuelle ou d'un dual boot quand on se pose ce genre de question concernant le choix d'un OS. Mais gardez bien à l'esprit que la chose la plus importante est la compréhension de ce que vous faites et pas que vous utilisiez l'OS « trucmuche » ou « machinchouette ».

Bref, le meilleur moyen pour apprendre, c'est la pratique et comme je viens de vous le montrer, inutile d'aller bien loin, nous avons tout ce qu'il nous faut à portée de main MAIS « ça ne viendra pas tout seul » : n'attendez pas que la connaissance vienne à vous parce que ça n'arrivera JAMAIS, c'est à VOUS d'aller chercher la connaissance. Et qui sait, peut être que d'ici peu, c'est moi qui vous harcellerai pour obtenir un indice sur un challenge (et je ne suis pas encore au bout de mes peines, croyez moi). Car le hacking, c'est cela aussi : un continuel apprentissage. ;)

Facebook button Twitter button Google button

Laissez un commentaire

Votre adresse email ne sera pas publiée. Les champs marqués d'une * sont obligatoires.

Commentaires (2)

Tiphons 28/08/2016

Vraiment j'ai bien aimer merci beaucoup

Rémy 04/09/2016

Super article merci