tml> demonstration

Et dans la pratique ?

La mise en place d’une attaque n’est réellement pas compliqué. Alors cet article n’a pas comme but de vous apprendre à attaquer votre voisin ou votre ennemi juré, mais plutôt de vous expliquer que dans notre société numérique, la menace subsiste à chaques coins de rues. Cette partie étant assez longue, il est préférable de faire un plan. Cet article va se construire comme suit:

- Les étapes d’une exploitation
- Quelques mots de vocabulaires, explication et outils connus
- Une démonstration
- Une conclusion

Commençons de suite par la définition de l’exploitation et ses grandes étapes.
Une exploitation est une utilisation d’une faille qui n’a pas été bouchée par une mise à jour. Tout système comporte des failles. Les failles qui n’ont pas encore fait l’objet d’études ou qu’aucun correctif n’existe pour la boucher, est appelé faille0day. Ce type de faille est très recherchée par les hackers, et peuvent être vendue sur le darkweb pour des sommes monstrueuses.
Toute exploitation se déroule plus ou moins sur le même modèle. Toute attaque passe par une série d’étapes communes.

- La première étape est la recherche d’informations, un hacker va chercher des informations sur le système d’information qu’il va attaquer. Que ce soit une faille humaine ou logicielle, il a besoin d’informations. Basiquement, il va se concentrer sur les logiciels installés, les ports ouverts, les habitudes de l’utilisateur, les services tournant sur la machine ou encore la topologie réseau.

- La deuxième étape sera l’utilisation de la faille en elle même (exploit), car après après avoir trouvé la faille il faut l’exploiter. Nous verrons cela en détails dans le chapitre suivant.

- La troisième étape est l’injection de payload (de code) dans un but bien précis, (vol d’informations, affichage de message, formatage ou encore encryption de disque)

- La quatrième étape est l’effacement des traces. Pour éviter de se faire repérer il faut absolument effacer toutes traces de notre passage, que ce soit les logs, les paramètres changés ou simplement supprimer un historique.

- La cinquième étape est contradictoire avec l’étape précédente, elle est cependant facultative. Cette étape est une étape de PostExploitation. En général c’est ici que nous laissons une backdoor dans la machine de la victime. Une backdoor est un moyen pour l’attaquant de revenir sur la machine de la victime beaucoup plus facilement. Le hacker laisse volontairement une faille sur le système.

Rentrons dans un point un peu plus pratique. Dans cette partie, nous allons se concentrer sur la définition d’exploit, de payload, d’outils connus, d’antivirus, d’invisibilité et enfin de privilège.

Un exploit, est un code, une partie de programme capable d’utiliser, d’infiltrer une faille. Il existe un site web, https://www.exploit-db.com qui reprend tous les exploits connus, c’est une énorme base de données qui est mise à jour tous les jours par des centaines de personnes.

Un payload comme expliqué plus haut est un code injecté grâce à l’exploitation de la faille pour effectuer une action bien précise. Le payload le plus connu est Meterpreter. Nous allons en parler juste après.

Un shell, est une interface homme machine, logiciel qui permet de lancer des commandes, dans un environnement “Unix” (https://fr.wikipedia.org/wiki/Unix). Nous verrons que le but principal d’un hacker est l’ouverture d’un shell en mode administrateur.

Il existe sur toute les machines différent niveau d'exécution. Les privilèges ou actions autorisées sont différentes selon le compte utilisateur utilisé. Vous avez par exemple un simple compte utilisateur et un compte administrateur. Sur une machine de type “Unix”, l’utilisateur ayant le plus de droit, d’autorisations est le compte “root”.
Un hacker va donc faire ce qu’on appelle le “privilege escalation”, qui est l’utilisation de faille pour passer de simple utilisateur à un utilisateur ayant les droits root, donc les droits les plus hauts.

Nous allons parler des outils les plus connus, Metasploit Framework (MSF) est sûrement l’outil le plus utilisé dans la mise en place d’exploit et de payload. C’est un outil open source développé en 2003. Il a été créé pour le test de pénétration dans les systèmes informatiques.
Je vous renvoie vers le site officiel pour plus d’informations : https://www.metasploit.com

Il existe plusieurs sous outils incorporés à MSF, tel que le payload meterpreter, msfconsole, msfpayload ou encore msfencode.
Depuis juin 2015, msfencode et msfpayload ont été remplacé par msfvenom.
Et les antivirus dans tout ça ? Comment ne pas se faire repérer ?
Et bien c’est justement ici que msfencode va faire son apparition. Msfencode sert à modifier la signature du payload, de façon à ne pas être détecté par l’antivirus. Il encode le code (shellcode) en caractère purement alphanumériques.
Il reste un point à évoquer, c’est la sécurisation de la connexion entre la victime et l’attaquant. Il est bien sûr hors de question de laisser transiter en clair les données sur le réseaux. Voilà pourquoi la connexion est chiffrée de bout en bout en passant par des serveurs distants pour dissiper les traces.


Enfin la démonstration, Pour celle-ci, nous utiliserons, Metasploit Framework installé sur une machine linux et une machine windows 7 (comportant la faille EternalBlue, cfr notre chapitre sur les ransomwares).

Nous éxecuterons l’attaque comme suit :


- Analyse
- Exploit
- Payload

Attention, nous ne montrerons pas toutes les étapes de configuration, et de mise en place, juste les effets d’un telle attaque. Le but étant de vous montrer à quel point c’est simple et non de vous transformer en hacker ! Cette attaque est très simple, d’où son aspect dévastateur.
Voici la topologie mise en place pour la démonstration:


La faille EternalBlue, est une faille du système d’exploitation windows et plus particulièrement du protocole smb. (BufferOverFlow)

1) L’analyse, nous allons dans un premier temps vérifier que la machine est exploitable via cette faille.Pour cela nous allons utiliser un scanner, qui est un module auxiliaire de MSF.

Nous voyons dans les dernières lignes, que la machine est bien vulnérable.

2) Exploitation


Utilisation de l’exploit ms17_010_eternalblue, tout les exploit sont codé en ruby (un langage de programmation libre orienté objet).

3) Définition du payload

Utilisation d’un payload de type reverse shell tcp


Remplissage du buffer

Nous avons une session reverse shell ouverte et parfaitement fonctionnelle.

La commande “echo “you have been hacked” > hack.txt” dans le reverse shell nous donne bien le résultat voulu sur la machine victime. Ici c’est un simple fichier texte, mais nous pouvons imaginer le vol de donnée, le déploiement de ransomware, ou encore la mise en place d’une backdoor.

Revenons sur un peu plus de théorie. Nous avons réalisé un analyse Wireshark pour voir ce qui passait dans le réseau.

Nous voyons bien l’utilisation du protocole smb (pour la faille) et tcp (pour le shell et la connexion)

Néanmoins, absolument tout passe en clair sur le réseau.

C’est ici que se termine cette démonstration.

Vous aurez sans doute remarqué l’efficacité et la simplicité d’utilisation d’un tel outil. C’est pourquoi nous vous rappelons qu’il faut être prudent quant à notre utilisation de l’ordinateur et d’internet. N’oubliez pas nos moyens pour éviter tout cela, restez à jour, choisissez un bon antivirus, et soyez certain de tout les fichiers que vous ouvrez sur votre ordinateur.
Pour plus d’info, n’hésitez pas à consulter notre section se protéger.

« shell is only the beginning » !