METASPLOIT : le guide ultime du hacker (1)

METASPLOIT : le guide ultime du hacker (1)

Hi guys, c’est Anass 🤠 et aujourd’hui, on va parler de Metasploit.

En fait, si vous voulez vraiment être hacker, vous devez absolument maîtriser ce framework, n’y ait pas peur, car ça ne feras pas de vous un script kiddy😂, même les pentesters professionnels l’utilisent fréquemment durant leurs tests d’intrusion pour gagner du temps et avoir plus d’efficacité.

Dans cette série de Metasploit : le guide ultime du hacker, on va découvrir ensemble ce framework allant des bases jusqu’aux subtilités que chaque hacker doit connaître, et puis comme ça vous aurez à la fin de cette série une vraie compétence d’un vrai hacker 😉.

Pourquoi apprendre Metasploit :

Comme je l’ai dit au début de ce tutoriel, Metasploit est un fremework (ensemble d’outils et de logiciels organisés qui simplifie une tâche complexe) qui va nous être utile dans les différentes étapes d’un test d’intrusion.

Durant le processus d’intrusion, on a besoin de scanner, fuzzerpayload, encoder Etc et au lieu d’être dispersé à gauche et à droite avec différents outils, Metasploit nous offre l’opportunité de regrouper tous ces outils sous son aile, avec un tas d’autre fonctionnalité et script dédié au hacking.

Cela étant dit, le hacker utilisant Metasploit va optimiser en temps et en efficacité ses hacks, et en plus du large spectre d’outils qu’offre ce framework la capacité de modifier voir créer des modules propres à nous fait de lui une arme suisse pour les hackers.

Un peu d’histoire :

Metasploit a été développé par le fameux HD Moore, ce dernier à constater lors de son emploi dans une entreprise de sécurité qu’il passait une grande partie de son temps à la correction et la validation des exploits publique, donc il a eu l’idée de créer un petit framework (à cette époque-là) pour la création et le développement d’exploits, il a lancé la première édition de Metasploit basé sur Perl en octobre 2003 avec un total de 11 exploits.

Le projet a pris de l’ampleur au fil du temps ainsi qu’un grand feed-back positif de la part de la communauté des pentesters, au point qu’en 2007, il est devenu un framework indispensable pour tout spécialiste en sécurité informatique.

Durant la même année le projet a été réécrit entièrement en Ruby et a gagner un total de 150 000 lignes de code en plus, faisant la sortie de Metasploit 3.0.

En 2009 Rapid7 le leader dans le domaine de scan de vulnérabilités est devenue le sponsor officiel du projet Metasploit ce qui a permit à HD Moore de se focaliser sur son projet à plein temps et d’embaucher des programmeurs pour l’aider, dés lors, Metasploit a connu une accélération exponentielle.

Après, Rapid7 a libérer deux versions commerciales de Metasploit Express et pro qui offrent des fonctionnalités plus avancées pour les spécialistes.

Préparation du lab :

Si vous utilisez une distribution Linux orienté sécurité, il est fort possible que Metasploit est déjà pré installé, pour s’assurer, il suffit de taper msfconsole sur le terminal, normalement vous aurez quelque chose comme ça :

msfconsole

Si ce n’est pas le cas, la méthode la plus facile étant de télécharger l’installeur directement du site officiel.

Quelques notions :

L’utilisation de Metasploit devient vite confusante si vous ne comprenez pas les notions de base qu’on utilise fréquemment dans notre domaine, la compréhension de cette terminologie est indispensable pour pouvoir interagir facilement avec le framework.

Voici une liste de termes qu’on va rencontré souvent durant cette série de tutoriels :

Exploit : est une faille dans un système, application ou un service qui va permettre à un attaquant de l’exploiter afin de compromettre sa sécurité.

Payload : est un code qu’on veut que le système exécute pour avoir un résultat précis, par exemple un reverse shell est un payload qui se charge de créer une connexion de la machine victime vers la machine de l’attaquant tandis qu’un bind shell est un payload qui lie (bind) l’invite de commande avec un port en écoute.

Shellcode : semblable au payloads sauf qu’il est écrit en assembly, après avoir exploité une machine un meterpreter shell est fournis pour interagir avec la machine compromise.

Module : un bout de code qu’on peut importer, car souvent, vous avez besoin de scripts pour accomplir une tâche donnée, avec MSF vous pouvez l’importer comme un module externe, c’est l’un des beauté de ce framework.

Listener : quand vous exploiter un système ce dernier va tenter d’établir une connexion avec votre machine pour cela le listener va écouter jusqu’à l’établissement de la connexion.

Les interfaces de Metasploit :

Metasploit offre plusieurs interfaces d’interaction, je vais vous initier aux plus populaires :

msfconsole : est l’interface la plus populaire et la plus puissante aussi, basé sur la ligne de commande ce qui lui confère une flexibilité et une richesse extrême ainsi qu’un support de la communauté, depuis cette interface, vous pouvez exécuter un exploit, importer un module, créer un listener et beaucoup d’autre choses.

Armitage : c’est une interface graphique (GUI), les débutants l’aime bien parce qu’elle est assez intuitive (et riche aussi, mais pas autans que msfconsole) mais il faut comprendre que pour maîtriser Metasploit il faut mettre les mains dans ses viscéres , c’est vrai que ça fait peur de voir le sang, mais une fois qu’on est habitué, ça devient une zone de confort 😜.

Utilitaire de Metasploit :

Il est injuste de parler de msfconsole sans parler de msfvenom, en fait, msfvenom est un composant majeur de Metasploit qui vous permet de générer des payload, exécutables, shellcode, apk pour les utiliser dans vos exploitation.

Vous pouvez générer des shellcode écrit en plusieurs formats C, Ruby, python, JavaScript Etc selon votre situation et vos besoins.

Cependant, ces shellcodes crées ne sont pas si efface que ça à l’aire, car ils contiennent de mauvais caractère ce qui fait qu’un antivirus stupide peut les attraper facilement, pour cette raison-là que vous aurez besoin d’une autre fonctionnalité de msfvenom qui est l’encodage, ce dernier permet d’éviter ces mauvais caractères.

Pour afficher tous les encodeurs que vous pouvez utiliser entrez cette commande :

msfvenom -l encoders

Et voici le résultat :

liste_encoders

Notez que le meilleur classement est celui de l’encodeur x86/shikata_ga_nai (excellent) qu’on va utiliser dans un prochain exploit.

Metasploit…… Collecte d’informations :

Maintenant et que vous avez les bases nous allons approfondir nos connaissances en respectant la méthodologie du hacking en commençant par … La collecte d’informations.

N.B : afin d’appliquer ce qu’on va voir dans les étapes suivantes nous avons besoin d’un environnement propice et légal pour hacker dans des conditions optimales.

La collecte d’informations se divise en deux grands paliers : passive et active nous allons détailler les deux procédures ainsi que les outils utilisés pour chacune.

Collecte d’informations passive :

La collecte d’informations passive ou indirecte vous permet de récolter des informations concernant votre cible sans interagir avec elle, autrement dit sans inter-changement de paquets entre vous et votre cible ce qui élimine totalement tout risque de détection de votre recherche.

Votre but de cette méthode est d’avoir une idée générale sur l’infrastructure de votre cible : l’hébergeur, les systèmes d’exploitation et leurs versions, les noms des serveurs….Etc

Pour effectuer notre collecte, je vais utiliser whois lookup. Whois lookup est un outil qui contient une base de données immense sur les domaines publique disponible sur la toile, la simplicité de son utilisation et sa puissance le rend l’outil préféré des hackers quand ça concerne la collecte d’informations.

Tout d’abord, installer whois depuis votre msfconsole avec la commande suivante :

apt install whois

Puis pour avoir une vue d’ensemble d’un domaine quelconque tapez cette commande :

whois domaine.com

Vous aurez des informations de celui-ci dans une forme bien organisé :

google_whois

Dans cet exemple, la collecte d’informations concernant google.com nous divulgue que le nom du serveur dans lequel le nom de domaine est hébergé est NSX.GOOGLE.COM ce qui veut dire que le DNS (doamin name system) est hébergé par l’organisation elle-même qu’est Google, un détaille qui vous donne un aperçu sur la taille de l’organisation que vous ciblez.

Maintenant si vous voulez savoir l’adresse IP de votre cible vous pouvez utiliser un autre outil : nslookup (toujours depuis msf) :

domain_IP

À ce point-là, nous avons construit une vue générale sur notre cible incluant l’hébergeur, l’adresse IP, le pays … Et plusieurs d’autre informations qu’il ne faut absolument pas les négliger, car il se peu qu’un petit détaille fera la différence entre le succès et l’échec de votre test d’intrusion.

Maintenant, on va devoir entamer la phase active pour avoir des informations plus poussées.

Collecte d’information active :

Avec la collecte active l’interaction avec le système ciblé est directe, autrement dit vous êtes entrain d’envoyer et de recevoir des paquets avec votre cible, de cette façon vous obtiendrez des informations plus qualitatives (Application en exécution, version du système d’exploitation, port ouvert…Etc) mais les risques d’être détecté par un IDS (intrusion detection system) ou un IPS (intrusion prevention system) sont élevés.

Pour cette raison-là qu’il faut maîtriser cette étape-là pour en extraire le plus d’information avec le moindre bruit possible.

Nmap….. Scan de port :

Un port dans un système est une application utilisé comme une interface exécutant un service, par exemple, il est connu que le port 80 est réservé aux applications web donc toutes les information de cette application sont échangée depuis ce port.

Le fameux Nmap est un outil qui nous permet de scanner ces ports-là et d’identifier les services entrain d’exécution ainsi que beaucoup d’autre fonctionnalité avancé (NSE).

Le principe du scan est simple, Nmap envoie un paquet au system dans un port quelconque et si le system répond (n’importe quelle réponse) cela veut dire que le port est ouvert, si le système ne répond pas cela veut dire le port est fermé ou bien filtré.

Afin de démontrer l’utilisation de Nmap je vais utiliser une machine virtuelle comme étant ma cible :

machine_virtuelle

N.B : l’utilisation de Nmap sur des systèmes qui ne vous appartient pas est illégale, c’est pour cette raison que j’utilise une machine virtuelle.

Pour voir toutes les fonctionnalités qu’offre nmap entrez simplement la commande :

nmap -h

Une liste d’usage s’affiche décrivant toutes les variantes qu’on peu utiliser, il est très important de lire la documentation avant d’entamer votre scan.

nmap_help

Disons que je veux opter pour un scan basique, pour cela je ne lui passe aucun argument :

nmap_simple

Il y a quelques informations utiles dans ce screen-shot : tout d’abord nmap nous informe que 999 ports sont filtrés (et pas fermés), le port numéro 5 357 est ouvert et est sous le service wsdapi, et dernièrement nous avons l’adresse MAC du système ainsi que son type (system virtuel).

N.B : si vous exécuter la même commande sur un système Linux un message d’erreur se lève indiquant la déconnexion de votre cible alors qu’elle est belle bien connectée, dans ce cas la, il nous oriente d’utiliser l’argument -Pn afin d’éviter l’utilisation de ping (ICMP packets) pour extraire les informations que beaucoup de system bloque comme mesure de protection.

nmap_linux

Vous devez dans ce cas adaptez votre commande à :

nmap -Pn IP

nmap_linux_pn

revenons à notre exemple, vous pouvez utiliser l’argument -O pour détecter le système d’exploitation en marche :

nmap_os

Il nous dit que le système en marche est de type Windows (ce n’est pas précis 🤔).

Et si vous voulez des informations plus poussée, utilisez l’argument -A :

nmap_A

Nmap…. Zombie scan :

Une des fonctionnalités avancées de Nmap est le idle scan ou scan par zombie, le principe est le suivant ; vous allez spoofer une adresse IP d’une machine qui se trouve dans le même réseau que vous, puis vous allez effectuer vos scan en se cachant derrière (faire de lui un zombie) et qui va jouer le rôle d’intermédiaire entre vous et votre cible.

En fait, toute l’attaque repose sur lID incrémentiel qui est un nombre utilisé pour marquer chaque paquet envoyé du système, cela facilite la prédiction de la réponse du système recevant le paquet.

Tout d’abord, il va faloir identifier un zombie, pour cela, nous allons utiliser le module scanner/ip/ipidseq pour maper tout le réseau à la recherche d’un hôte qui correspond à nos besoin :

module_use

La commande show options vous affiche les options nécessaires au fonctionnement du module, certaines sont prédéfini et d’autre, c’est à vous de les définir.

La seule option qui nous intéresse ici, c’est RHOSTS, c’est l’intervalle d’adresses qu’on veut scanner, il peut être de ce format (192.168.1.1-192.168.1.254) ou bien 192.168.1.1/24, c’est à vous de choisir, puis exécutez le module :

idel_scan

nous avons une vingtaine d’hôte qu’on peut PAS utiliser, car l’IP ID n’est pas incrémentiel du coup ils ne sont pas vulnérable à cette attaque 😜.

Si ce n’est pas le cas pour vous (présence de Windows XP dans votre réseau), vous pouvez continuer votre attaque en utilisant la commande suivante :

nmap -sI -A IP_SPOOFÉ IP_CIBLE

Ssh ….scan :

Si durant votre scan vous trouverez une machine exécutant le protocole ssh (secure shell ) vous devez sans doute savoir quel est sa version, il se peut que vous tombiez sur une version qui n’est pas mis à jour ce qui augmente considérablement le risque d’avoir une faille dedans.

Afin d’identifier la version de ssh on va devoir utiliser le module scanner/ssh/ssh_version :

ssh_version

Ftpscan :

Le protocole ftp à connu beaucoup de difficulté dés son jeune âge, c’est un protocole complexe et pas suffisamment sécurisé, le module scanner/ftp/ftp_version peut nous donner quelque information :ftp_version

Autre chose très importante, il faut avoir le réflexe de chercher des exploit sur exploitDB quelle que soit la version que vous trouverez, car les zero days y en a tous les jours, donc ne sous-estimez rien et ne soyez pas faignant aussi 😉.

N.B : si vous voulez voir la liste de tous les modules scanner, il suffit de taper use auxialiary/ + TAB (↹), comme ça vous aurez toute la liste des modules :

all__modules

Voilà, dans cette première partie de Metasploit : le guide ultime du hacker, on a vu l’histoire de Metasploit, les différentes interfaces et la terminologie propre à ce framework, puis on a entamé méthodologiquement l’utilisation de Metasploit pour collecter les informations passivement et activement en se servant des outils comme whois lookupnslookup ..Et Nmap.

J’espère que ça étais claire pour vous, si vous avez des questions posez les en commentaires, je serai ravi d’y répondre 😀……Peace.

11 réactions au sujet de « METASPLOIT : le guide ultime du hacker (1) »

    1. There is no such a thing that protect 100% against hackers BUT what i can recommend to you is to update regularly your website and have a basic knowledge about hacking and security ;).

  1. What’s up to all, how is everything, I think
    every one is getting more from this site, and your views are good
    designed for new users.

Laisser un commentaire

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

11 + quatre =

Follow by Email
Facebook
YouTube