Netsh Helper DLL: Netsh Helper DLL (T1546.007)

La tecnica T1546.007 sfrutta un meccanismo di estensibilità legittimo dell'utility netsh.exe, il tool a riga di comando che Microsoft distribuisce con Windows per configurare interfacce di rete, firewall, WLAN e servizi correlati. Netsh supporta helper DLL registrate nel registro sotto la chiave HKLM\SOFTWARE\Microsoft\Netsh: ogni volta che netsh.exe viene invocato, il processo carica in memoria tutte le DLL elencate, offrendo all'avversario un vettore di esecuzione arbitraria estremamente discreto.

L'appartenenza alle tattiche TA0003 (Persistence) e TA0004 (Privilege Escalation) riflette la doppia natura della tecnica. Da un lato garantisce persistenza silenziosa: la DLL viene caricata a ogni esecuzione di netsh, che può avvenire manualmente, tramite script di logon, come parte di prodotti VPN o soluzioni di gestione endpoint. Dall'altro, se netsh viene eseguito da un processo privilegiato (task pianificato in SYSTEM, servizio, installer VPN), la helper DLL eredita quel contesto, ottenendo elevazione di privilegio senza exploit.

La forza offensiva sta nella bassa telemetria nativa: la chiave di registro è scarsamente monitorata, l'esecuzione di netsh è un pattern legittimo negli ambienti enterprise, e il caricamento DLL avviene all'interno di un binario firmato Microsoft. Le condizioni per l'attacco richiedono privilegi amministrativi locali per scrivere in HKLM, condizione tipicamente soddisfatta dopo la fase di accesso iniziale o come step successivo a un'escalation locale.

In un esercizio red team la registrazione di una helper DLL richiede pochi passaggi ma va sempre eseguita in laboratorio isolato, tipicamente una VM Windows 10/11 non aggiornata con endpoint protection e integrata in un dominio di test.

Il primo passo è preparare la DLL. Si può usare Visual Studio Community (gratuito per uso personale/educational) oppure MinGW-w64 (open source) per compilare una DLL C/C++ che esporti la funzione InitHelperDll, firma richiesta dal contratto Netshell. La documentazione ufficiale Microsoft su Netsh Helper descrive la struttura NETSH_MODULE_ENTRY e le funzioni di callback obbligatorie. Un helper minimale può limitarsi a scrivere un marker su disco o lanciare calc.exe via CreateProcessW per validare la catena.

La registrazione avviene con il comando nativo:

netsh add helper C:\path\to\payload.dll

In alternativa si può scrivere direttamente la chiave di registro con reg add HKLM\SOFTWARE\Microsoft\Netsh /v MyHelper /t REG_SZ /d C:\path\payload.dll. Entrambe le operazioni richiedono privilegi amministrativi. Per triggerare il carico è sufficiente eseguire netsh interface show interface o qualsiasi altro sottocomando.

Per strutturare l'esercizio in modo realistico si possono usare i seguenti tool, tutti open source o gratuiti a scopo di ricerca:

  • Atomic Red Team (open source) — contiene test T1546.007 pronti all'uso con payload di riferimento e cleanup automatico
  • Metasploit Framework (open source) — modulo exploit/windows/local/persistence_netsh per generare e installare helper DLL Meterpreter
  • PowerSploit (open source, archiviato ma funzionante) — funzioni PowerShell per manipolare registry key di persistenza
  • Sysinternals Suite (gratuito) — Process Monitor per verificare il caricamento della DLL e Autoruns per confermare la persistenza registrata

Una catena completa parte da un foothold utente standard, procede con un'escalation locale (es. token impersonation da servizio vulnerabile), scrittura della helper DLL in una directory scrivibile ma dall'aspetto legittimo come C:\ProgramData\Vendor\netmon.dll, registrazione nel registro e infine trigger tramite scheduled task che invoca netsh. Documenta ogni step nel report con timestamp, hash della DLL e output di Process Monitor filtrato su netsh.exe.

Per il cleanup: netsh delete helper payload.dll e rimozione manuale del file. Non lasciare mai artefatti nel lab condiviso.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.