Comment mettre le hacking et la programmation en pratique
Dans l’article d’aujourd’hui, je vous propose de mettre le hacking en pratique. L’idée étant de nous entraîner sans risques et bien sûr légalement.
Cette question m’est venue d’une personne qui avait déjà lu pas mal d’articles mais qui ne savait pas vraiment par où commencer concrètement.
Évidemment, je précise systématiquement, mais l’on parle bien ici de hacking éthique (savoir comment corriger des vulnérabilités) et non pas pratiquer sur le compte FB de son ex.
Cela vous servira si vous avez déjà assimilé des connaissances que vous voulez mettre en pratique, ou si vous souhaitez simplement commencer et pratiquer en même temps.
Table des matières
Mettre la programmation en pratique
Pour commencer à programmer il est très préférable d’utiliser ce que l’on appelle un environnement de développement intégré. Il s’agit d’un logiciel qui vous aide à programmer.
Par exemple il permet de :
- Vous aider/corriger concernant la syntaxe
- Vous assister dans les méthodes de développement
- Compiler le code source sans démarches supplémentaires
- etc…
Il existe des environnements de développement intégrés plus spécialisés dans tels ou tels langages, mais généralement ils permettent de programmer dans plusieurs langages différents.
Si vous ne savez toujours pas par où commencer en programmation, je vous invite à lire l’article suivant avant de continuer :
https://www.leblogduhacker.fr/5-etapes-pour-debuter-en-programmation/
Vous saurez ensuite par quel langage vous devrez commencer et pourrez choisir l’environnement de développement intégré (que j’abrégerai « EDI ») correspondant.
Voici des exemples d’EDI :
- Visual Studio pour les langages .NET (VB, C#, VC++,…)
- Code::Blocks pour les langages C, C++,…
- Eclipse pour les langages Java, HTML, PHP, C,…
- Geany pour les langages C, Java, Python,…
L’idéal est de vous rendre sur les sites officiels pour observer si l’EDI prend en compte le langage que vous souhaitez étudier. Vous pouvez également en tester plusieurs pour voir celui qui convient le mieux pour vous.
Voici par exemple l’interface de Visual Studio :
Avant de commencer à programmer, il vous faudra bien entendu acquérir les bases du langage que vous avez choisi.
Bien que cela puisse aussi se faire par la pratique, je vous conseille de prendre un livre ou un tutoriel en ligne et d’apprendre.
C’est là qu’on me demande souvent quel livre choisir ou quel site visiter, je vous renvoie ici pour les sites :
https://www.leblogduhacker.fr/les-meilleurs-sites-pour-apprendre-la-programmation/
Pour les livres, il y a trop de choix différents. Je vous conseille de regarder ceux qui ont les meilleurs avis sur Amazon par exemple.
J’avais commencé à l’époque avec les livres suivants sur le langage Visual Basic .NET :
- Visual Basic 2010 Étape par étape : Parfait pour un débutant complet, à la fin on a tellement envie de programmer et de continuer. Il doit y exister des versions plus récentes actuellement.
- Professional Visual Basic 2010 : Parfait pour maîtriser à fond VB.NET
- Principes et pratiques avec C++ : De l’auteur même du langage C++, j’avais beaucoup aimé également.
- Sécurité PHP5 & MySQL : Beaucoup d’exemples dont je me sers tous les jours.
Une fois que vous commencez à comprendre les concepts du langage, l’idéal est de prendre un code source qui vous intéresse sur le net, de le télécharger/copier, de le comprendre et de le modifier.
Vous en trouverez beaucoup sur le site CodeProject.
Plus d’informations sur la programmation :
https://www.leblogduhacker.fr/10-astuces-pour-devenir-meilleur-en-programmation/
C’est bon ? Vous avez un EDI et un livre sous la main ? vous n’avez plus qu’à appliquer ce qui est dit pour pratiquer.
Mettre un site web (et un serveur) en pratique
Si vous souhaitez créer un site de test pour vous entraîner à programmer, à le pirater ou à le sécuriser, il faut savoir que vous n’avez en fait pas besoin de payer quoi que ce soit.
Vous pouvez héberger un site web sur votre propre ordinateur, que vous ayez Windows, Mac ou Linux.
Pour cela je vous renvoie vers les sites suivants :
- WAMP (Windows Apache MySQL PHP) pour Windows
- MAMP (Mac Apache MySQL PHP) pour Mac
- LAMP (Linux Apache MySQL PHP) pour Linux
Pour les installer et les configurer, vous trouverez beaucoup de tutoriels sur le net, en voici certains :
- http://www.infowebmaster.fr/tutoriel/debuter-wamp
- http://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/preparer-son-ordinateur-2
- http://www.apprendre-php.com/tutoriels/tutoriel-24-installation-et-prise-en-main-de-mamp.html
PS: Ne créez pas de sites gratuits du type votrepseudo.wordpress.com…vous n’aurez presque aucune flexibilité. En plus de ne pas détenir le système sous-jacent et de vous mettre des risques juridiques sur le dos, potentiellement.
Bien entendu, rien ne vous empêche de payer un petit serveur dédié pour avoir de quoi faire des manipulations sur un serveur également.
Pour les offres de serveurs, je ne sais trop quoi vous recommander… Essayez de vous faire votre propre idée entre Online.net, OVH, 1and1 entre autres…
Cela dit, la gestion d’un serveur demande des connaissances plus approfondies et n’est donc pas conseillée pour un débutant complet.
Mais si vous voulez tenter votre chance, là encore vous trouverez facilement des tutoriels vous montrant comment installer un serveur dédié.
En voici un que j’avais utilisé même si il commence à se faire vieux :
http://www.tutoriels-video.fr/installation-et-configuration-dun-serveur-dedie-debia/
N’hésitez pas à chercher encore et encore sur le net, prenez vous un tutoriel qui semble intéressant et mettez-le en pratique. Après tout, pour mettre en pratique, il faut passer à l’action. Il faut implémenter ce qui vous est dit, et essayer même si vous n’êtes pas sûr(e) que ça va fonctionner. Et rassurez vous ça finit toujours par fonctionner 😉
« Comment mettre le hacking et la programmation en pratique »Cliquez pour tweeterPartager sur FacebookPartager sur LinkedInPour ce qui est de la sécurité du site web, vous pouvez jeter un œil aux failles web populaires et les sécuriser vous mêmes si elles se présentent dans vos sites :
Vous pouvez également jeter un œil à la partie Mise En Situation du site pour bien comprendre le fonctionnement des failles et comment les sécuriser.
Et enfin, je peux également vous suggérer l’article suivant :
https://www.leblogduhacker.fr/creer-un-site-web-securise/
Mettre une machine virtuelle de test en pratique
En hacking, on se doit de comprendre un peu les failles systèmes et autres programmes malveillants.
Étant donné qu’on doit les manipuler, et pour ne rien casser, on met habituellement en place un « laboratoire de test ».
Ici votre petit laboratoire de test personnel peut être tout simplement une machine virtuelle.
Pour se faire, vous pouvez télécharger le fameux VirtualBox. J’en parle à la fin de l’article suivant si vous voulez des détails pour l’installer :
https://www.leblogduhacker.fr/se-familiariser-avec-linux/
Vous apprendrez par la même occasion à vous familiariser avec Linux.
Une fois VirtualBox installé, on peut s’amuser à lancer plusieurs systèmes de façon sécurisée et ainsi tester ou étudier diverses méthodes, notamment comment bien se protéger contre telle ou telle attaque.
À ce propos, il existe des systèmes spécialement vulnérables et conçus pour vous. Voici par exemple Metasploitable :
http://sourceforge.net/projects/metasploitable/
Cela demande des connaissances plus avancées notamment autour de MetaSploit, plutôt utilisé dans le monde professionnel.
Dans le même genre il y a LAMP Security Training :
http://sourceforge.net/projects/lampsecurity/
N’oublions pas Kali Linux (anciennement BackTrack) qui intègre beaucoup d’outils de pentesting et de sécurité en plus d’être une distribution Linux classique :
Je vous montre en vidéo comment l’utiliser avec WSL au lieu de Virtualbox si besoin :
https://www.youtube.com/watch?v=zRaUnclAb8c
Autres sites et outils pour s’entraîner
Dans cette partie, je vais citer d’autres sites ou applications qui vous permettront de mettre en pratique le hacking :
- https://www.hackthissite.org/ : Challenges divers sur le hacking.
- https://code.google.com/p/owasp-hackademic-challenges/ : Tester et améliorer vos connaissances sur la sécurité des applications web.
- https://code.google.com/p/webgoat/ : Application Web J2EE volontairement vulnérable pour vous entraîner.
- http://sourceforge.net/projects/hackxor/ : Un jeu dans lequel vous devez trouver et exploiter des vulnérabilités (XSS, CSRF, SQLi…) pour avancer.
- Et la liste continue : Tryhackme, Hackthebox… les CTF…
Peut-on pratiquer « sur de vrais sites ou systèmes » ?
Je rappelle que tous les conseils donnés ici concernent l’installation et la pratique sur vos propres systèmes en vue de les sécuriser.
Vous n’avez pas le droit de vous entraîner sur des machines qui ne vous appartiennent pas. SAUF à condition que vous ayez bien eu l’autorisation (écrite) avant.
À ce propos, il y a beaucoup de sites qui ont crée des programmes appelés Bug Bounty, il s’agit de rémunérer/récompenser les personnes qui trouvent des failles sur leurs sites.
Parmi eux on citera Facebook, Google, Avast, Adobe, 4chan, Microsoft, Mozilla, PayPal, Twitter…etc.
C’est une excellente occasion de gagner de l’argent si vous trouvez des vulnérabilités. Même si là encore vous devrez avoir un minimum d’expérience pour trouver et patcher des vulnérabilités critiques. Vous serez aussi soumis(e) à un règlement strict à suivre. Sous entendu que vous ne vous inscrivez pas pour obtenir un droit de faire ce que vous voulez.
Voici des listes de tous les sites proposant des programmes Bug Bounty :
- https://bugcrowd.com/list-of-bug-bounty-programs
- http://www.bugsheet.com/bug-bounties
- http://www.vulnerability-lab.com/list-of-bug-bounty-programs.php
- https://hackerone.com le plus connu.
Désolé pour les anglophobe, mais je donne effectivement beaucoup de liens vers des sites anglais. Il y a souvent plus de contenu en anglais et la maîtrise de cette langue entre dans les qualités d’un hacker.
Sur ce, je vous souhaite bon apprentissage, et si vous avez d’autres informations à partager sur la mise en pratique légale du hacking éthique, n’hésitez pas !