Nous avons couvert l'injection de processus et le creusement de processus. L'injection de processus est le processus consistant à injecter à un processus déjà en cours d'exécution un code malveillant ou un shellcode. L'évidement de processus consiste à créer un processus légitime dans un état suspendu, puis à démapper le code légitime de la mémoire et à le remplacer par le code shell. L'injection de processus et le creux sont utiles pour masquer les rootkits et les shellcodes dans des processus d'apparence inoffensive afin de maintenir l'accès et la persistance. Cela faisait partie de TryHackMe abuse des composants internes de Windows parcours de l'équipe rouge.

Nous avons également couvert l'injection de DLL et le détournement de DLL ainsi qu'un scénario pratique du laboratoire TryHackMe Abusing Windows Internals qui fait partie du parcours de l'équipe rouge. L'injection de DLL repose sur l'utilisation d'appels d'API Windows pour effectuer des actions spécifiques telles que la sélection d'un processus en cours d'exécution, l'allocation de mémoire et l'écriture de la DLL malveillante dans la région de mémoire allouée. Le détournement de DLL repose sur l’obtention d’autorisations d’accès pour localiser et remplacer une DLL légitime par une DLL malveillante.

Obtenez les notes d'étude COMPTIA Pentest+

Cours sur les techniques d'élévation des privilèges Windows

Description du défi

Tirez parti des composants internes de Windows pour échapper aux solutions de détection courantes, en utilisant des approches modernes indépendantes des outils.

Faits saillants de la vidéo

L'injection de processus est couramment utilisée comme terme général pour décrire l'injection de code malveillant dans un processus via des fonctionnalités ou des composants légitimes.

À un niveau élevé, l’injection de shellcode peut être divisée en quatre étapes :

  1. Ouvrez un processus cible avec tous les droits d'accès.
  2. Allouez de la mémoire de processus cible pour le shellcode.
  3. Écrivez le shellcode dans la mémoire allouée dans le processus cible.
  4. Exécutez le shellcode à l’aide d’un thread distant.

Le Process Hollowing offre la possibilité d’injecter un fichier malveillant entier dans un processus. Ceci est accompli en « creusant » ou en décartographiant le processus et en injectant des PE (P.ortable Eexécutable) des données et des sections dans le processus.

Dans un processus de haut niveau, le creusement peut être divisé en six étapes :

  1. Créez un processus cible dans un état suspendu.
  2. Ouvrez une image malveillante.
  3. Supprimez le code légitime de la mémoire du processus.
  4. Allouez des emplacements de mémoire pour le code malveillant et écrivez chaque section dans l'espace d'adressage.
  5. Définissez un point d’entrée pour le code malveillant.
  6. Sortez le processus cible d’un état suspendu.

Au niveau d'un thread de haut niveau (exécution), le détournement peut être divisé en onze étapes :

  1. Localisez et ouvrez un processus cible à contrôler.
  2. Allouez une région de mémoire pour le code malveillant.
  3. Écrivez du code malveillant dans la mémoire allouée.
  4. Identifiez l’ID du thread cible à détourner.
  5. Ouvrez le thread cible.
  6. Suspendez le thread cible.
  7. Obtenez le contexte du fil de discussion.
  8. Mettez à jour le pointeur d’instruction vers le code malveillant.
  9. Réécrivez le contexte du thread cible.
  10. Reprenez le fil de discussion piraté.

À un niveau élevé, l'injection de DLL peut être divisée en six étapes :

  1. Localisez un processus cible à injecter.
  2. Ouvrez le processus cible.
  3. Allouez une région de mémoire pour les DLL malveillantes.
  4. Écrivez la DLL malveillante dans la mémoire allouée.
  5. Chargez et exécutez la DLL malveillante.

Réponses de la salle

Identifiez le PID d'un processus exécuté en tant que THM-Attacker à cibler. Une fois identifié, fournissez le PID comme argument pour exécuter shellcode-injecteur.exe situé dans le répertoire Injecteurs sur le bureau.

Quel flag est obtenu après l'injection du shellcode ?

Identifier un PID d'un processus exécuté en tant que THM-Attacker vers la cible. Fournissez le PID et le nom de l'exécutable comme arguments à exécuter creuser-injecteur.exe situé dans le répertoire des injecteurs sur le bureau.

Quel drapeau est obtenu après avoir creusé et injecté le shellcode ?

Identifier un PID d'un processus exécuté en tant que THM-Attacker vers la cible. Fournissez le PID comme argument à exécuter fil-injecteur.exe situé dans le répertoire Injecteurs sur le bureau.

Quel drapeau est obtenu après le détournement du fil ?

Quel protocole est utilisé pour s'exécuter de manière asynchrone dans le contexte d'un thread ?

Quel est l’appel API Windows utilisé pour mettre en file d’attente une fonction APC ?

Le pointeur de fonction void peut-il être utilisé sur un processus distant ? (o/n)

Quel autre appel d'API Windows a été utilisé par TrickBot pour créer un nouveau thread utilisateur ?

Les techniques d'injection utilisées par TrickBot étaient-elles réfléchissantes ? (o/n)

Quel nom de fonction a été utilisé pour écrire manuellement les hooks ?

Vidéo pas à pas

A propos de l'Auteur

Je crée des notes de cybersécurité, des notes de marketing numérique et des cours en ligne. Je fournis également des conseils en marketing numérique, y compris, mais sans s'y limiter, le référencement, les publicités Google et Meta et l'administration CRM.

Voir les Articles