What’s up guys ? J’espère que vous allez bien !

 

Introduction

Aujourd’hui, je vais aborder un thème important, qui fait partie des questions qui reviennent très fréquemment : acquérir les fondamentaux du hacking et de la sécurité !

Beaucoup de débutants se sentent perdus au bout de quelques mois après avoir lu, travaillé et pratiqué une partie des bases.

Parfois ils pensent qu’il faut faire une formation payante (onéreuse), mais même pour ces formations il faut avoir des bases extrêmement solides pour suivre, c’est pourquoi je vais vous expliquer comment faire sans vous ruiner.

Il y a plusieurs façons pour comprendre et solidifier les fondamentaux de ce domaine très vaste que je considère un art complet qui a le droit de prendre place parmi d’autres. J’entends souvent dire il faut énormément de temps, ce n’est pas possible avec le travail (de tous les jours), les cours … C’est faux ! En travaillant tout simplement 1h par jour vous pouvez évoluer et avancer dans votre apprentissage.

Je vous explique par quoi commencer !

 

Petit rappel

Dans un premier temps, sans même entrer dans le vif du sujet il faut avoir une bonne organisation et une bonne gestion du temps. Pour cela, que se soit pour les travailleurs ou les étudiants je vous propose deux choses très importantes :

  • Se réserver 1h par jour à n’importe quel moment de la journée
  • Préparer le terrain à l’avance

Je m’explique, lorsque je rentre du travail j’allume mon ordinateur le temps de me laver les mains et de me changer. Une fois cette étape terminée j’ouvre le fichier, les cours ou le PDF sur lequel je travail (exemple : les réseaux TCP-IP). Je prends le temps de manger pour prendre des forces et je me mets au travail pendant 1h (si comme moi vous avez la possibilité de travail plus d’1h par jour faite le !).

Un point important également, je pense à faire des pauses d’une demi-heure voir 1h pour revenir dessus après. Je vous assure ça permet de mieux se concentrer et de trouver parfois une solution si vous êtes bloqués.

Autre chose, ne vous découragez pas !

Si vous avez envie de réussir et de progresser il n’y a pas le choix que de se mettre au boulot, j’en ai fait l’expérience et aujourd’hui je suis toujours en train de travailler pour améliorer certains points.

 

Le commencement

Lorsque je réfléchis, la toute première question que vous devez vous poser c’est :

Pourquoi je veux devenir un hacker ?

Je ne tolère pas les demandes et les motivations de type : hacker un compte Facebook (autres réseaux sociaux), une adresse mail ou même encore une personne de votre entourage pour vous venger.

 N’oubliez pas que le hacking est un art, vous n’apprendrez pas à hacker un compte Instagram sans comprendre le fonctionnement de ces Web App.  

Bien évidemment les motivations de chacun ne me regardent pas. je tiens à préciser que je ne vais pas vous montrer comment hacker un compte Facebook, mais vous expliquer ce que vous devez maitriser pour arriver à vos fins.

C’est parti !

Tout d’abord je vous conseille fortement de bien apprendre le vocabulaire, ou plutôt le jargon des hackers.

Je vous donne quelques exemples (lexique hacker qui maitrise ses bases) :

  • Reverse shell
  • Buffer overflow
  • CVE
  • Backdoor

 

 

L’entrée en matière 

Dans la continuité, il faut apprendre et comprendre le fonctionnement des réseaux et principalement les deux modèles très connus :  modèle OSI et TCP-IP

 

                

 

La maitrise des différents protocoles est primordiale :

  • ARP
  • TCP
  • UDP
  • IP
  • DNS
  • DHCP

Par la suite,  je pense qu’il faut apprendre les types de paquets qui transitent : comme les paquets ICMP par exemple.

La compréhension du fonctionnement et des différents protocoles (DHCP*, TCP-IP*, ARP…) d’un réseau est très importante pour un hacker. Cela lui permettra de s’introduire (MITM*) entre plusieurs couches ci-dessus ou d’intercepter des informations qui transitent entre deux machines communicantes.

MITM* : Man In The Middle attack est une attaque qui permet de récupérer les informations communiquées entre deux parties.

DHCP* : Dynamic Host Configuration Protocol (protocole de configuration dynamique des hôtes), le DHCP est un protocole réseau qui gère automatiquement les paramètres IP d’une station. Il va attribuer une adresse IP et un masque de sous réseau.

TCP-IP* : Transmission Control Protocol – Internet Protocol, c’est un ensemble de protocoles qui va permettre le transfert de données sur internet.

Vous pouvez surveiller et intercepter des anomalies au sein de votre réseau informatique, d’analyser les paquets qui transitent depuis l’interface réseau, en utilisant l’outil Wireshark. C’est un analyseur de paquets, il est très utile pour capturer le trafic issu de votre réseau informatique.

Attention, je n’oublie pas le matériel ! cultivez et familiarisez-vous avec le matériel utilisé sur le marché (les routeurs, switch, hubs…).

Pourquoi je vous parle des réseaux en premier ? En fait, une fois bien assimilé ce dernier vous allez pouvoir passer plusieurs étapes sans être forcément paralysés !

Sur la plateforme open Classroom vous y trouverez des cours très complets sur les réseaux, je vous conseille vivement de télécharger les cours et d’en prendre connaissance.

 

 

L’incontournable OS : LINUX

 

 

J’ai surpris beaucoup de débutants, essayant d’utiliser une machine Linux dédiée au Pentesting sans comprendre le système en lui-même à la source. C’est-à-dire, le fonctionnement de la ligne de commande via un terminal, l’utilisation des commandes Linux, l’architecture (qui est très différente de Windows)…

Linux est constitué de plusieurs systèmes d’exploitation open source contrairement à Windows. Dans une machine qui tourne sous Windows vous ne pourrez pas modifier les fichiers du système interne propre au bon fonctionnement de l’OS.

Alors que sur les OS Linux vous avez la liberté de modifier, déplacer…, n’importe quel fichier propre à la racine. Comme sous Windows il y a un compte administrateur, il y a sous linux le super-utilisateur (root). La différence c’est que le super-utilisateur (root) à tous les droits sur le système (il est vraiment super puissant) contrairement au mode administrateur de Windows.

 La force des systèmes Linux est son Terminal, tout est basé sur la ligne de commande qui est plus puissant que la console de Windows. Evidemment il y a des commandes à apprendre et à maîtriser.

Architecture :

▪ /bin/ : Contient toutes les commandes de base nécessaires au démarrage et à

l’utilisation d’un système minimaliste (par exemple : cat, ls, cp, sh).

▪ /sbin : Contient les commandes systèmes réservées aux administrateurs.

▪ /boot : Contient les fichiers nécessaires au démarrage du système d’exploitation.

▪ /dev : Contient des fichiers correspondants à un périphériques (disques, disquettes …).

▪ /etc : Contient la plupart des fichiers de configuration du système.

▪ /home/ : Utilisé pour stocker les répertoires utilisateurs (exemple : /home/user).

▪ /opt : Utilisé comme emplacement d’installation d’un logiciel utilisé.

▪ /tmp/ : Utilisé pour stocker les fichiers temporaires tout comme /var/tmp et /run/tmp

et généralement vidé à chaque démarrage.

 

Commandes :

 ls ou ls -all : permet de lister les fichiers dans un répertoire ou dans le répertoire courant

 cd : permet de changer de répertoire vers un autre

 pwd : permet d’afficher l’emplacement ou on se situe dans la hiérarchie du système

 cp : permet de copier un fichier ou répertoire

 ./ : permet d’exécuter un fichier

 cat : permet d’afficher le contenu d’un fichier

 mkdir : permet de créer un répertoire

 touch : permet de créer un fichier

 rm : permet de supprimer un fichier ou un répertoire

 mv : permet de déplacer ou de renommer un fichier ou répertoire

 man : permet d’afficher le manuel d’aide de n’importe quelle commande

 find : permet de trouver un fichier dans un répertoire ou système

 

Donc, une connaissance des commandes de base de Linux est obligatoire, la liste complète existe sur Internet ou sur la distribution que vous utiliserez.

 

 

Préparation du Lab

Pas besoin d’avoir une machine de guerre pour apprendre le hacking je vous rassure, il faut tout d’abord vérifier que votre CPU supporte la virtualisation afin d’utiliser un superviseur comme VirtualBox ou VMWare.

Si vous avez les bases de Linux, allez sur le site officiel de Kali Linux pour télécharger l’image iso adéquat (selon votre machine).

 

 

Les Méthodologies 

Ce n’est que le début, Eh oui ! je vais aborder maintenant les différentes méthodologies du hacking/pentesting :

  • PTES
  • OWASP
  • ISS

Dans ce cas de figure vous devez vous baser sur la méthode PTES ( Penetration Testing Execution Standards) c’est celle qui est la plus facile et la plus utilisée.

Qu’est-ce qu’il faut comprendre ?

 

  • La collecte d’informations

La collecte d’informations est composée de deux parties : active ou passive. La partie active est celle

ou vous êtes en interaction directe avec la cible, et la partie passive est non interactive.

 

Active : En communicant par n’importe quel moyen avec votre cible, ce dernier va vous communiquer des informations sensibles qui vont vous être utiles.

Passive : C’est une méthode qui peut prendre énormément de temps car vous n’avez aucune interaction avec votre cible, donc vous devez par vous-même aller chercher les informations.

Pour cette partie vous pouvez vous aider de : WHOIS, réseaux sociaux, Google Hacking, Shodan, etc.

Il existe des outils pour ce type de collecte comme Nmap, Nessus, Masscan … qui permettent d’obtenir des informations comme les ports ouverts, les services exécutants etc.

 

 

J’utilise aussi go buster, dirb, sublister pour énumérer les sous domaines d’un site web ou d’un nom de domaine.

 

 

 

 

  • L’exploitation

Tout le monde connaît aujourd’hui l’incontournable « Metasploit-Framework » !

 

 

Metasploit est un Framework très complet avec beaucoup d’outils, il est doté de plusieurs modules exploits*, auxiliary*, payloads* …. Ce Framework vous permettra d’analyser les vulnérabilités, d’exploiter les failles que vous avez collectées au préalable.

Exploit* : Un exploit un moyen d’attaque pour un pentester en profitant des défauts dans le système cible, afin de produire une action que la cible n’avait pas envisagée (par exemple injection SQL, buffer overflow (dépassement tampon), erreur de configuration…

Payloads* : Un payload est un code que nous allons faire exécuter par le système. Par exemple un reverse Shell qui va créer une connexion depuis la cible vers notre système hôte (comme une invite de commande de Windows) ou vous avez aussi le meterpreter Shell (très puissant !).

Shell : Un Shell est une interface utilisateur d’un système d’exploitation (LINUX). C’est une interaction homme-machine pour exécuter, lancer, des programmes et de les gérer.

Auxiliary* : un auxiliaire est un module qui permet de scanner

Ce sont ces modules qui rendent Metasploit si puissant. Avec Metasploit vous pouvez aussi importer des plugins (par exemple en utilisant : load nessus, load wmap …).

Franchement ce n’est pas sorcier, je vous assure il suffit d’avoir de la patience et une bonne volonté d’apprendre et surtout la pratique.

Durant cette phase d’exploitation, il y a une méthode que je n’aime pas trop mais qui peut s’avérer utile : le brut forcing ou attaque par dictionnaire.

Oui mais c’est quoi ?

Le brut forcing est une méthode utilisée en cryptologie, elle permet d’essayer toutes les combinaisons possibles pour trouver un mot de passe, une clé, un identifiant…, à partir d’un Wordlist.

C’est la méthode la plus simple mais attention le temps de casser un mot de passe peut être très long, cela dépendra de la longueur et la combinaison de votre mot de passe. C’est pourquoi il faut toujours privilégier des mots de passe suffisamment longs et de mélanger avec des caractères, chiffres. Dans les distributions Linux (Kali linux, Parrot OS…) destinées aux hackers/pentesters, il y a plusieurs outils de brut forcing préinstallés comme :

  • Hydra
  • JohnTheRipper
  • Medusa

 

 

  • La phase post-Exploitation

La phase post-exploitation est une étape très importante et cruciale pour les hackers, il va permettre de détailler et de montrer les impacts que peuvent avoir les vulnérabilités trouvées lors de de votre test d’intrusion. De voir les informations qui ont le plus de valeurs, critiques…

Il peut aussi vous être utile pour pérenniser un accès sur le système informatique cible en toute furtivité (un accès constant non autorisé). Par exemple en installant un Rootkit*, un Backdoor* (porte dérobée) …

Rootkit* et Backdoor* : ce sont des logiciels (codes, programmes) mis en place afin d’avoir un accès secret sans qu’un utilisateur légitime s’en aperçoive. Un rootkit est appelé un pot de miel en français.

 Petit bonus qui est très important : exploitdb (exploit database), à l’aide de cette plateforme en ligne vous pourrez vous servir des exploits existants pour mener à bien vos attaques.  Je m’en sers particulièrement pour l’escalade de privilèges root !

Je vais être cool je vais vous donner une autre plateforme super : GTFOBins

 

 

La programmation

Le langage de programmation est un moyen de communication avec un appareil informatique suivant une structure d’algorithme bien établie, propre à chaque langage. L’ordinateur ou le matériel informatique exécutera exactement ce que vous lui demanderez dans vos scripts. La programmation est un outil quotidiennement utilisé de nos jours par les hackers, entreprises et même dans l’enseignement. L’importance de la connaissance d’un langage de programmation « coder » va être utile pour n’importe quel type de hacker pour rédiger ses propres scripts d’attaques ou défenses.

Apprendre à lire ou modifier du code sera un point très important dans la vie d’un hacker, cela lui permettra d’injecter un bout de code pour détruire une machine cible ou d’extorquer des informations sensibles.

De nos jours plusieurs langages de programmation existent, les plus populaires et utilisés sont :

Python, Ruby, Perl, C …

 

 

Il y a aussi le PHP ou le HTML et CSS, MySQL (base de données) … qui vous permettra de créer vos propres sites internet par vous-même. L’avantage de pouvoir créer son site en utilisant le PHP est que vous pouvez vous protéger à des éventuelles cyberattaques dite SQLinjection* ou SQLi.

Beaucoup d’attaques se font sur la base du php pour obtenir un reverse_shell_php depuis une écoute de port et en uploadant un script.

Vous pouvez aussi utiliser Django qui est un outil basé sur Python pour créer vos applications web (beaucoup d’applications web utilisent Django aujourd’hui).

SQLinjection* : c’est une requête envoyée, non connue par le système dans une base de données qui est en cours dans une application web ou site web. (souvent pour récupérer les informations d’une base de données d’un site web).

 

Une technique qui est souvent utilisée est le « Phishing », cette méthode peut causer énormément de dégâts. Comment ça fonctionne ? L’attaquant va créer une copie quasi exacte d’un site officiel (Facebook par exemple) et va vous envoyer un lien de connexion afin de vérifier la sécurité de votre compte ou autre motif.

Si la cible clique sur le lien il va être automatiquement dirigé vers le site créé par le hacker afin qu’il puisse vous extorquer votre mot de passe (en utilisant un keylogger*), une fois que vous aurez rentré votre ID et mot de passe un message d’erreur va s’afficher et va vous rediriger vers le site officiel (ça sera déjà trop tard).

keylogger* : c’est un périphérique qui permet d’enregistrer les frappes effectuées sur un clavier.

 

 

Plateforme d’entrainement et CTFs

Je vais vous parler de deux sites qui doivent être ajouter dans vos favoris et surtout tous les soirs être ouverts 1h à minima : TryHackMe et VulnHub

Plus particulièrement TryHackMe à utiliser sans modération, vous y trouverez des cours très simples et super bien expliqués avec de la pratique !

L’avantage de ces derniers est que vous restez dans un cadre pédagogique. Ce qui vous aidera à vous performez et mieux comprendre les attaques et défenses.

Il y a aussi des forums d’interactions lorsque vous bloquez sur un sujet, des communautés, des groupes, pages Facebook…

 

 

Conclusion

Voilà les amis pour cet article, j’espère que ça été clair pour vous et surtout un coup de motivation pour vous mettre en action.

De plus, ne vous freinez pas sur la quantité d’informations prenez votre temps pour lire et relire plusieurs fois. Si vous avez des incompréhensions n’hésitez pas à me contacter je vous guiderai avec plus de détails et utiliserai une approche différentes pour mieux vous expliquer.

La seule solution pour acquérir ces fondamentaux est la pratique !

Je vous dis à très vite sur un prochain article, n’oubliez pas le travail paie toujours.

PEACE !

4 Responses

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

trois × 5 =

Follow by Email
YouTube