
Chargeur réflexif PE/DLL x64 implémenté à l'aide d'appels système indirects dynamiques
Atlas est un chargeur réflexif x64 qui possède les fonctionnalités suivantes :
Atlas nécessite les paramètres suivants pour fonctionner correctement :
Usage: atlas_x64.exe [Process name / PID] [Cleanup] [Server] [Port] [AtlasPatcher DLL] [DLL/PE to inject] <Entrypoint>
| Paramètre | Description |
|---|---|
| Nom / PID | Le nom ou le PID du processus cible |
| Cleanup | Indique si vous souhaitez supprimer les DLL injectées du processus cible à la fin (Cleanup accepte les valeurs 1 ou 0) |
| Server | L'adresse IP du serveur distant où vous stockez les DLL |
| Port | Le port utilisé par votre serveur |
| AtlasPatcher DLL | Le nom de la DLL AtlasPatcher (par défaut atlas_patcher.dll) hébergée sur votre serveur (vous trouverez la DLL sous /AtlasLdr/bin une fois compilée) |
| DLL/PE à injecter | Le nom de la DLL ou du PE que vous souhaitez injecter, hébergé sur votre serveur |
| Entrypoint | Un argument optionnel ; le nom de la fonction exportée que vous souhaitez utiliser comme point d'entrée lorsque la DLL est injectée |

L'approche conventionnelle d'un chargeur implique généralement un injecteur chargé d'injecter une DLL contenant le chargeur dans le processus distant que nous ciblons. Une fois injectée, l'exécution est transmise au chargeur, qui est chargé de mapper la DLL malveillante. En revanche, Atlas adopte une approche légèrement différente en effectuant l'intégralité du processus de mappage dans son propre contexte, à l'exception de la correction de la table des adresses d'importation (IAT), qui est différée.
Une fois que la DLL malveillante a été mappée dans le contexte d'Atlas, elle est copiée dans la mémoire préalablement réservée dans le processus distant. À ce stade, la DLL malveillante est mappée dans le processus distant, mais l'IAT n'a pas encore été corrigée. Pour y remédier, AtlasLdr injecte une DLL (atlas_patcher.dll) avec un minimum de dépendances dans le processus malveillant, qui se charge de corriger l'IAT de la DLL malveillante, puis lui transfère le contexte d'exécution.
Cette approche permet de réduire la taille et la complexité de la DLL du chargeur à injecter dans le processus distant et minimise les risques de détection de l'injecteur, car nous pouvons charger la DLL à l'aide du chargeur lui-même.
Atlas doit être compilé avec x86_64-w64-mingw32-g++ ; une fois que vous l'avez sur votre système, exécutez simplement make (ou mingw32-make.exe) dans le dossier du projet
