/
Confinement des ransomwares

Démystifier les techniques de ransomware à l'aide d'assemblages .Net : une attaque en plusieurs étapes

Dans première partie Dans cette série, nous avons examiné des exemples de fonctionnalités de programmation qui peuvent être utilisées par les rançongiciels dans leurs techniques malveillantes. Puis dans deuxième partie, nous avons également examiné les principes fondamentaux de Microsoft .Net cadre logiciel et assemblages associés d'EXE et de DLL pour comprendre comment ces fonctionnalités sont rendues possibles.

Dans cette dernière partie, nous combinerons tout ce qui a été discuté jusqu'à présent dans un ensemble de charges utiles par étapes afin de démontrer les principes fondamentaux d'une attaque par charge utile en plusieurs étapes.

Configuration de la charge utile et des attaques

Nous commençons par définir les charges utiles qui seront utilisées pour l'attaque. Toutes les fonctionnalités précédentes, y compris les nouvelles, seront prises en compte pour créer les charges utiles échelonnées. Il s'agit de démontrer globalement comment les différentes tactiques et techniques que nous avons vues jusqu'à présent peuvent être combinées, comme c'est généralement le cas pour les rançongiciels.

Nous allons utiliser les charges utiles suivantes :

  • Application EXE initiale : Stager payload
  • EXE du rançongiciel principal : charge utile de la phase 1
  • 2et DLL principale du ransomware : charge utile Stage-2

L'utilisation de plusieurs charges utiles pour accomplir différentes tâches dans cet exemple d'attaque constitue une attaque en plusieurs étapes. Si l'on se reporte à la série précédente sur les charges utiles et les balises de malwares, deuxième partie a discuté plus en détail des types de charges utiles malveillantes. J'y ai expliqué la différence entre un type de charge utile échelonnée et un type de charge utile échelonnée. En résumé, un stager est une application exécutable initiale souvent plus petite qui peut agir comme téléchargeur, un compte-gouttes et/ou une charge utile pour un fichier de charge utile principal plus performant et souvent plus volumineux, connu sous le nom de stage. Le but de la charge utile du stager est de configurer l'étage principal. Dans cet exemple d'attaque, utilisant le transfert de charge utile comme décrit ci-dessus, les différentes charges utiles auront les différentes tâches suivantes :

La charge utile de Stager EXE effectuera les opérations suivantes :

  • Techniques d'évasion
  • Télécharge deux fichiers « texte » sur le disque. Ces fichiers sont en fait un EXE et une DLL.
  • Lancez le 2et fichier EXE
  • Le stager sort alors
  • The Running 2et EXE (étape 1) charge la DLL (étape 2)

Les charges utiles Stage-1 EXE et Stage-2 DLL exécutent ensuite les actions malveillantes de type ransomware suivantes :

  • Techniques d'évasion
  • Découverte
  • Manipulation des processus
  • Énumération des lecteurs et des fichiers
  • Chiffrement des fichiers

Stager : exécutable de la charge utile initiale (EXE)

L'attaque commence avec notre charge utile initiale, le stager livré à la machine victime. Cela se fait souvent par le biais de techniques d'ingénierie sociale telles que le phishing. Une fois que la charge utile initiale est livrée et exécutée, elle commence à exécuter le jeu d'instructions malveillant.

Évasion

Il attendra d'abord un temps spécifié sans effectuer aucune action. Il s'agit d'une technique d'évasion conçue pour durer plus longtemps que l'analyse des menaces liées aux machines virtuelles. Après cela, il téléchargera un exécutable bien connu sur Internet, tel qu'une application de bloc-notes. Il s'agit d'un leurre et d'une autre tactique d'évasion pour éviter d'être repéré.

D'autres techniques peuvent inclure la vérification des clics de souris ou la vérification des répertoires de documents pour détecter la présence de fichiers associés à l'utilisation normale d'un système informatique, par opposition à une machine virtuelle sandbox utilisée pour l'analyse des menaces.

Téléchargeur, compte-gouttes et chargeur

Une fois ces actions d'évasion initiales exécutées, la charge utile du stager (initiale) exécutera à nouveau une troisième action de mise en veille. Il attendra à nouveau pendant un certain temps avant de passer à la prochaine série d'instructions qui consistera à télécharger les fichiers de charge utile de l'étape. Ces fichiers sont hébergés à distance par l'attaquant, comme indiqué ci-dessous.

Le stager procède ensuite au téléchargement de deux fichiers texte « notepadlog0120231224.txt » et « notepadlog0120231513.txt ». Cette phase suivante est indiquée en texte rouge dans l'exemple ci-dessous.

Notez que les liens de téléchargement des fichiers de charge utile sont en fait masqués à l'aide du codage base64, qui a été décrit comme la quatrième technique dans le première partie de cette série.

La charge utile initiale convertit le base64 en interne à la volée en liens de téléchargement d'origine.

Les deux fichiers texte téléchargés sont en fait respectivement un exécutable (EXE) et une bibliothèque de liens dynamiques (DLL), déguisés en fichiers texte. Voici les charges utiles de stade 1 et de stade 2 pour cet exemple d'attaque de ransomware en plusieurs étapes. Une fois les téléchargements réussis, ces fichiers sont renommés dans leur type d'origine.

La charge utile du stager lance ensuite la charge utile exécutable de l'étape 1 pour lancer l'attaque de ransomware proprement dite. Le stager a maintenant atteint sa fonction et se ferme une fois que la charge utile de l'étape 1 est chargée en mémoire et commence à fonctionner. Ainsi, comme indiqué dans la première technique de première partie de cette série, cette charge utile de la phase initiale est le téléchargeur et le compte-gouttes pour la charge utile EXE et la charge utile DLL de l'étape 2 et le chargeur uniquement pour la charge utile de l'étape 1. La charge utile de la DLL sera chargée en tant que charge utile de niveau 2 par la charge utile EXE de phase 1 en cours d'exécution, d'où une attaque de charge utile en plusieurs étapes.

Exécutable Stage-1 (EXE)

Une fois que l'exécution a été transmise à l'exécutable de l'étape 1, il se met d'abord en veille pendant une durée spécifiée, comme indiqué ci-dessous.

Il supprimera ensuite le fichier de charge utile du stager. »payload_initial_stager.exe» du système de fichiers afin de supprimer toute preuve. Dans l'exemple ci-dessous, le fichier a été supprimé et ne se trouve plus dans le répertoire.

La charge utile de niveau 1 est maintenant prête à exécuter son ensemble d'actions pour poursuivre le reste de l'attaque.

Découverte

Ensuite, il effectuera certaines techniques de découverte sur le système infecté. Ces techniques de découverte permettent à l'acteur de la menace d'en savoir un peu plus sur le système infecté. Discovery aide l'opérateur de la menace à prendre en compte certaines considérations de sécurité opérationnelle cruciales pour garantir le succès global de l'attaque. Dans cet exemple, la charge utile de l'étape 1 effectue une vérification de la liste des processus. Certains processus susceptibles de vous intéresser seront les processus EDR (Endpoint Detection and Response), les antivirus (AV) ou les processus de machine virtuelle. Ils permettent de comprendre la probabilité de détection de la charge utile.

Sur la base des résultats des informations de découverte, un acteur de la menace peut prendre des décisions importantes en matière de sécurité opérationnelle. Par exemple, si un processus EDR connu est détecté sur le système ou si la charge utile détecte des processus de machine virtuelle, la charge utile peut être invitée à quitter pour éviter d'être détectée.

L'auteur de la menace peut également décider d'utiliser des techniques d'évasion supplémentaires pour contourner l'EDR ou même tenter d'utiliser d'autres moyens pour mettre fin complètement au processus EDR.

La découverte permet également de déterminer la valeur du système compromis. Par exemple, s'agit-il d'un serveur de base de données de production ou d'un système de paiement contenant de précieuses données clients ? Plus le système est essentiel pour une entreprise, plus il est probable qu'une rançon soit payée.

Manipulation de processus : binaires Living-off-the-Land (LotL)

Un autre ensemble d'informations utiles concerne les informations relatives au système, telles que le système d'exploitation, la langue, les paramètres régionaux et les correctifs et mises à jour installés ou absents du système. Ce type d'informations peut aider à planifier des attaques supplémentaires, telles que des exploits de vulnérabilité.

En supposant que le processus EDR n'ait pas été détecté, la charge utile continuera car l'auteur de la menace peut être sûr de pouvoir en traiter d'autres. Ainsi, après avoir vérifié les informations du processus, la charge utile exécutable de l'étape 1 utilise une technique Living-off-the-Land et lance une invite de commande Windows distincte, comme indiqué dans l'exemple ci-dessous.

Une fois l'invite de commande lancée, la charge utile lui transmet certaines commandes Windows pour qu'elle s'exécute. Cette commande générera des informations système telles que le type de système, les informations sur le processeur, la disponibilité et les correctifs. Un instantané de la sortie est affiché en texte rouge dans l'exemple ci-dessous.

Bibliothèque de liens dynamiques (DLL) Stage-2

Comme indiqué dans les articles précédents, un fichier DLL contient du code informatique qui ne peut pas être exécuté seul. Ainsi, dans notre exemple, le fichier EXE de la phase 1 utilise également le code de la DLL de l'étape 2 pour terminer le reste du cycle d'attaque.

Stage-1 EXE lors du chargement de la charge utile de la DLL stage-2

Une fois que la charge utile EXE de l'étape 1 a terminé ses actions, elle charge la charge utile de la DLL de l'étape 2. La charge utile de la DLL contient le code qui sera utilisé pour les étapes finales de l'attaque, qui consistent à vérifier la présence de lecteurs sur le système, puis à chiffrer les fichiers sélectionnés sur ces lecteurs.

Le code DLL lance d'abord une vérification des lecteurs pour trouver les lecteurs du système infecté, en répertoriant les informations utiles sur chacun d'eux. Sur l'écran ci-dessus, les informations concernant les lecteurs du système qui sont prêts à être accessibles sont particulièrement intéressantes par rapport à celles qui ne le sont pas. Cela permet de cibler les fichiers sur les bons lecteurs pour le chiffrement et d'éviter les erreurs en tentant d'opérer sur des lecteurs en lecture seule ou inaccessibles.

Chiffrement

À ce stade, le cryptage de la rançon est maintenant prêt à être lancé. Le code de chiffrement de la DLL de niveau 2 vérifie d'abord la présence d'une liste de fichiers texte dans le répertoire. En effet, nous ne chiffrerons que des fichiers texte dans cette dernière démonstration. La charge utile affiche ensuite tous les fichiers texte trouvés.

Les fichiers découverts sont ensuite chiffrés par la charge utile. Les extensions de fichier sont également remplacées par »« .crypté » pour afficher les fichiers texte cryptés.

Ci-dessous, nous pouvons également voir les images avant et après du répertoire où se trouvent les fichiers texte, montrant les modifications après le cryptage.

Enfin, vient la demande de rançon : cela alerte généralement l'utilisateur du fait que ses fichiers ont été cryptés. Il leur explique également comment payer la rançon et obtenir la clé de décryptage pour déchiffrer les fichiers. Dans de nombreux cas, le paiement de la rançon ne garantit pas automatiquement l'accès à la clé de déchiffrement.

Notez que dans notre exemple, nous avons choisi de mettre tout le code de cryptage dans un fichier DLL qui est devenu notre charge utile de niveau 2. Cela est principalement dû au fait que, comme indiqué dans les articles précédents, une DLL est un fichier de bibliothèque, ce qui signifie qu'elle peut être réutilisée. Par exemple, si, en tant qu'attaquant, nous choisissions d'utiliser une charge utile EXE de niveau 1 complètement différente, peut-être en raison de nouvelles améliorations apportées à l'évasion à l'avenir, nous n'aurons pas à réécrire la partie chiffrée de notre code de charge utile pour finaliser cette nouvelle campagne d'attaque. Nous pouvons simplement associer notre nouvelle charge utile au fichier DLL d'étape 2 existant et demander au nouvel EXE de charger la DLL pour chiffrer les fichiers.

Atténuation contre les ransomware

En fin de compte, les rançongiciels utiliseront trois frontières principales : infection, exécution et persistance.

Ceux-ci peuvent être classés de manière générale comme suit :

  • Système de fichiers
  • Registre
  • Memory
  • Network (distant et local — lateral movement)

Les défenseurs doivent donc continuer à créer les bons outils et à les utiliser de la bonne manière pour une atténuation efficace de la sécurité. Danse third part de la série précédente sur les charges utiles et les balises de malwares, il existe une analyse plus détaillée de l'atténuation de la défense en profondeur en s'appuyant sur la philosophie de la violation présumée et de la cyberrésilience.

Cette série en trois parties a démontré comment les différentes tactiques et techniques utilisées par les malwares, en particulier les rançongiciels, peuvent être mises en œuvre. En comprenant ces différentes tactiques et techniques, les défenseurs peuvent être mieux placés pour évaluer leurs politiques et défenses cybernétiques existantes afin de prendre des contre-mesures efficaces.

Vous souhaitez en savoir plus sur la protection de votre organisation contre les rançongiciels et les violations ? Contactez-nous dès aujourd'hui.

Sujets connexes

Aucun article n'a été trouvé.

Articles connexes

Démystifier les techniques de ransomware à l'aide d'assemblages .Net : 5 techniques principales
Confinement des ransomwares

Démystifier les techniques de ransomware à l'aide d'assemblages .Net : 5 techniques principales

Learn about 5 ransomware techniques using the .Net software framework.

Comment répondre aux recommandations de la CISA sur le ransomware Phobos grâce à Illumio
Confinement des ransomwares

Comment répondre aux recommandations de la CISA sur le ransomware Phobos grâce à Illumio

Préparez-vous au ransomware Phobos grâce à la plateforme de segmentation Illumio Zero Trust.

Placer la barre plus haut pour les attaquants : comment la microsegmentation peut protéger les entreprises contre les attaques similaires à celles de Kaseya
Confinement des ransomwares

Placer la barre plus haut pour les attaquants : comment la microsegmentation peut protéger les entreprises contre les attaques similaires à celles de Kaseya

Comment la microsegmentation aurait pu réduire la surface d'attaque et atténuer les conséquences de l'attaque de Kaseya.

Charges utiles et balises malveillantes : comment démarrent les communications malveillantes
Cyber-résilience

Charges utiles et balises malveillantes : comment démarrent les communications malveillantes

Les balises de programmes malveillants permettent à un attaquant d'exécuter un programme malveillant par le biais d'un script. Les reconnaître permet de développer des stratégies de détection et de confinement.

Charges utiles et balises malveillantes : types de charges utiles malveillantes
Cyber-résilience

Charges utiles et balises malveillantes : types de charges utiles malveillantes

Comprendre les différents types de charges utiles et examiner un exemple de code malveillant qu'ils peuvent utiliser.

Charges utiles et balises de malwares : techniques pour atténuer l'impact
Cyber-résilience

Charges utiles et balises de malwares : techniques pour atténuer l'impact

Dans la dernière partie de cette série, nous nous concentrons sur certaines techniques d'obfuscation utilisées pour masquer les charges utiles des malwares et examinons les techniques d'atténuation que les entreprises peuvent utiliser.

Supposez Breach.
Minimisez l'impact.
Augmentez la résilience.

Vous souhaitez en savoir plus sur la segmentation Zero Trust ?