
Reflektiver x64-PE/DLL-Loader, implementiert mithilfe dynamischer indirekter Syscalls
Atlas ist ein reflektiver x64-Loader mit den folgenden Funktionen:
Atlas benötigt die folgenden Parameter, um ordnungsgemäß zu funktionieren:
Usage: atlas_x64.exe [Process name / PID] [Cleanup] [Server] [Port] [AtlasPatcher DLL] [DLL/PE to inject] <Entrypoint>
| Parameter | Beschreibung |
|---|
| Name / PID | Der Name oder die PID des Zielprozesses |
| Cleanup | Gibt an, ob die injizierten DLLs nach Abschluss aus dem Zielprozess entfernt werden sollen (Cleanup unterstützt 1 oder 0 als Werte) |
| Server | Die IP-Adresse des Remote-Servers, auf dem sich die DLLs befinden |
| Port | Der von Ihrem Server verwendete Port |
| AtlasPatcher DLL | Der Name der auf Ihrem Server gehosteten AtlasPatcher-DLL (standardmäßig atlas_patcher.dll) (Sie finden die DLL nach der Kompilierung unter /AtlasLdr/bin) |
| DLL/PE to inject | Der Name der DLL oder PE, die Sie injizieren möchten, gehostet auf Ihrem Server |
| Entrypoint | Ein optionales Argument; der Name der exportierten Funktion, die Sie als Einstiegspunkt verwenden möchten, wenn die DLL injiziert wird |

Der herkömmliche Ansatz für einen Loader besteht normalerweise darin, einen Injektor zu verwenden, der dafür verantwortlich ist, eine DLL mit dem Loader in den Zielprozess zu injizieren. Nach der Injektion wird die Ausführung an den Loader übergeben, der für das Mapping der schädlichen DLL verantwortlich ist. Im Gegensatz dazu verfolgt Atlas einen etwas anderen Ansatz, indem der gesamte Mapping-Prozess im eigenen Kontext durchgeführt wird, mit Ausnahme des Patchings der Import Address Table (IAT), das aufgeschoben wird.
Sobald die schädliche DLL in den Atlas-Kontext gemappt wurde, wird sie in den zuvor im Remote-Prozess reservierten Speicher kopiert. An diesem Punkt ist die schädliche DLL in den Remote-Prozess gemappt, aber die IAT wurde noch nicht gepatcht. Um dies zu beheben, injiziert AtlasLdr eine DLL (atlas_patcher.dll) mit minimalen Abhängigkeiten in den schädlichen Prozess, die das Patchen der IAT der schädlichen DLL übernimmt und dann den Ausführungskontext an sie übergibt.
Dieser Ansatz trägt dazu bei, Größe und Komplexität der zu injizierenden Loader-DLL zu reduzieren und minimiert die Erkennungswahrscheinlichkeit des Injektors, da wir die DLL mit dem Loader selbst laden können.
Atlas muss mit x86_64-w64-mingw32-g++ kompiliert werden. Sobald Sie es auf Ihrem System haben, führen Sie einfach make (oder mingw32-make.exe) im Projektordner aus.
