Tutoriel – DLL Hijacking

DLL-Hijacking Tuto

Description :

Dans les environnements Windows, lorsqu’une application ou un service démarre, il recherche un certain nombre de DLL afin de fonctionner correctement.

Si ces DLL n’existent pas ou sont implémentées de manière non sécurisée (les DLL sont appelées sans utiliser de chemin complet), il est possible d’élever les privilèges en forçant l’application à charger et à exécuter un fichier DLL malveillant.

Il convient de noter que lorsqu’une application doit charger une DLL, elle passera par l’ordre suivant:

  • Le répertoire à partir duquel l’application est chargée
  • C:\Windows \System32
  • C:\Windows\Système
  • C:\Windows
  • Le répertoire de travail actuel
  • Répertoires dans la variable d’environnement PATH système
  • Répertoires dans la variable d’environnement PATH utilisateur

Programme Vulnérable + Analyse :

Après analyse, tous les fichiers présents qui permet le bon fonctionnement du programme que sa soit avec des extensions (.DLL ou .EXE). Tout le monde peut modifier écrire ou ajouter un fichier, (Administrateurs, Utilisateurs authentifiés ou des Utilisateurs non authentifié).

Analyse des processus:

Cela consiste à répertorier tous les processus sur le système et à découvrir ces processus qui s’exécutent en tant que SYSTEM et dont les DLL sont manquantes.

Cela peut être fait simplement en utilisant l’outil de surveillance de processus de Sysinternals et en appliquant les filtres ci-dessous:

Ici à l’aide de Process Monitor nous filtrons les extensions ciblées qui sont nos fameuse DLL.

Après quelques recherches nous avons trouvé une DLL qui pourrait provoquer une RCE (Remote Code Exécution).

Nous avons compilé un code avec le language C qui va nous permettre de déclencher la calculatrice au moment de l’exécution du programme.

Proof Of Concept :

#include <windows.h>
#define DLLIMPORT __declspec (dllexport)

DLLIMPORT void HrCreateConverter() { evil(); }
int evil()
{
WinExec("calc", 0);
exit(0);
return 0;
}

Après avoir compilé notre code avec une DLL où l’on nomme PowrProf dll, nous l’avons transféré dans le dossier contenant notre programme puis exécuté, la calculatrice s’exécute avec succès :).

Puisque nous avons réussi à exécuter du code, nous allons faire la même opération mais avec MSFvenom qui va nous permettre des creer une DLL malveillante et ainsi d’avoir accès au Pc de la victime.

Création d’un Payload :

Comment envoyer notre DLL malveillante? il y a plusieurs façons de faire 🙂 ici par exemple nous allons mettre en téléchargement via le Torrent.

Le setup du programme avec notre DLL et un petit fichier texte qui explique à l’utilisateur, qu’une fois le programme installé il faut qu’il mette la DLL dans le même dossier content le programme, s’il veut que le crack fonctionne 🙂 .

Oui je sais ce n’est pas bien, mais les pirates mettent en place ce genre de technique afin d’envoyé des Ransomwares par exemple.

Prise de contrôle d’un PC :

L’utilisateur suit les recommandations de notre fichier texte et ajoute notre DLL malveillante. Nous lançons un port d’écoute et nous allons attendre que l’utilisateur exécute le programme ou redémarre son Pc.

Voilà nous avons pris le contrôle d’un ordinateur grace un détournement d’une DLL et des permissions mal configuré par l’éditeur du software 🙂 .

Pour éviter cela il faut faire les mises à jour de votre système d’exploitation, attention à ce que vous téléchargez sur le web, et aussi avoir un bon antivirus à jour . 🙂

Laisser un commentaire

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