Red Hot Cyber
Condividi la tua difesa. Incoraggia l'eccellenza. La vera forza della cybersecurity risiede nell'effetto moltiplicatore della conoscenza.
Cerca
UtiliaCS 970x120
Fortinet 320x100px
Notepad++ sotto attacco! Come una DLL fasulla apre la porta ai criminal hacker

Notepad++ sotto attacco! Come una DLL fasulla apre la porta ai criminal hacker

Manuel Roccon : 5 Novembre 2025 22:22

Nel mese di Settembre è uscita una nuova vulnerabilità che riguarda Notepad++. La vulnerabilità è stata identificata con la CVE-2025-56383 i dettagli possono essere consultati nel sito del NIST. La vulnerabilità CVE-2025-56383 è un caso di DLL Hijacking che interessa l’editor di testo Notepad++ v8.8.3 e potenzialmente versioni successive.

Sfruttando questa debolezza, un utente malintenzionato può ingannare l’applicazione per fargli caricare una DLL dannosa che ha lo stesso nome di una libreria legittima richiesta dal programma (un esempio comune riguarda i file DLL nella cartella dei plugin).

Se l’attacco riesce, il codice malevolo viene eseguito con gli stessi permessi dell’utente che sta utilizzando Notepad++, consentendo l’esecuzione di codice arbitrario sul sistema target.


Enterprise

Prova la Demo di Business Log! Adaptive SOC italiano
Log management non solo per la grande Azienda, ma una suite di Audit file, controllo USB, asset, sicurezza e un Security Operation Center PERSONALE, che ti riporta tutte le operazioni necessarie al tuo PC per tutelare i tuoi dati e informati in caso di problemi nel tuo ambiente privato o di lavoro. Scarica ora la Demo di Business Log per 30gg


Supporta Red Hot Cyber attraverso: 

  1. L'acquisto del fumetto sul Cybersecurity Awareness
  2. Ascoltando i nostri Podcast
  3. Seguendo RHC su WhatsApp
  4. Seguendo RHC su Telegram
  5. Scarica gratuitamente “Byte The Silence”, il fumetto sul Cyberbullismo di Red Hot Cyber

Se ti piacciono le novità e gli articoli riportati su di Red Hot Cyber, iscriviti immediatamente alla newsletter settimanale per non perdere nessun articolo. La newsletter generalmente viene inviata ai nostri lettori ad inizio settimana, indicativamente di lunedì.

Tuttavia, è fondamentale notare che questa CVE è stata etichettata come contestata (“Disputed”) da diverse fonti.

Ciò accade perché l’attacco è effettivamente possibile solo se l’utente ha installato Notepad++ in una directory che, per errore o cattiva configurazione, consente l’accesso in scrittura a utenti non privilegiati.

Nelle installazioni standard di Windows, un utente normale non dovrebbe avere i permessi per modificare i file nella cartella di installazione del programma, il che ridimensiona il problema da una vulnerabilità intrinseca del software a un rischio derivante da una configurazione del sistema operativo non sicura.

E’ stato rilasciato un poc che dimostra con alcuni screen come è possibile in notepad++ eseguire DLL Hijacking della libreria NppExport.dll visibile nel link sottoastante.

La tecnica del DLL Hijacking (letteralmente “dirottamento di DLL”) è un metodo di attacco che sfrutta il modo in cui il sistema operativo Windows cerca e carica le librerie di collegamento dinamico (Dynamic Link Libraries o DLL) necessarie a un’applicazione per funzionare.

In sostanza, un aggressore induce un’applicazione legittima a caricare ed eseguire una DLL malevola al posto della DLL originale e attesa.

La DLL Hijacking è simile alla DLL Injection ma se ne distingue per il meccanismo: la DLL Injection è una tecnica generica che forza un processo in esecuzione a caricare una DLL arbitraria (spesso dannosa) direttamente in memoria, mentre il DLL Hijacking sfrutta un’errata gestione del percorso di ricerca di una DLL esistente o mancante per far caricare la versione malevola al suo posto.

Analizziamo cosa di intende per DLL Hijacking e testiamo direttamente su Notepad++

Tipi Comuni di DLL Hijacking

Ci sono diverse varianti di questa tecnica:

DLL Search Order Hijacking (Dirottamento dell’ordine di ricerca DLL): sfrutta l’ordine predefinito di ricerca di Windows. L’aggressore inserisce la DLL in una cartella con precedenza (ad esempio, la stessa cartella dell’eseguibile dell’applicazione).

DLL Side-Loading (Caricamento laterale di DLL): Una forma molto comune. L’aggressore copia un eseguibile legittimo e affidabile (ad esempio, un programma firmato digitalmente) e la sua DLL malevola (con il nome della DLL attesa) in una cartella esterna, spesso accessibile all’utente. Il codice malevolo viene eseguito sotto il contesto di un processo affidabile, eludendo i controlli di sicurezza basati sull’integrità o sulla lista bianca degli eseguibili.

DLL Substitution (Sostituzione di DLL): Un approccio più aggressivo e diretto dove l’aggressore bypassa l’ordine di ricerca per sovrascrivere la DLL originale e legittima con un file malevolo nello stesso identico percorso.

Phantom DLL Hijacking (Dirottamento della DLL fantasma): sfrutta un’applicazione che tenta di caricare una DLL che non esiste affatto sul sistema (magari per un errore di programmazione o una dipendenza non necessaria). L’aggressore piazza la DLL malevola con il nome del file mancante, forzando il caricamento.

Come un applicazione carica un DLL?

Quando un’applicazione deve caricare una DLL e non ne specifica il percorso completo e assoluto, Windows inizia una ricerca in una serie di directory predefinite e in un ordine specifico.

L’ordine di ricerca per le DLL (che può variare leggermente a seconda delle API di caricamento e delle configurazioni di sistema) solitamente include:

  • La directory da cui viene caricata l’applicazione (la sua cartella).
  • La directory di sistema (%SystemRoot%\System32).
  • La directory di Windows (%SystemRoot%).
  • La directory corrente di lavoro.
  • Le directory elencate nella variabile d’ambiente PATH.

Per cui un aggressore sfrutta questa sequenza per piazzare una DLL malevola (con lo stesso nome della DLL legittima mancante, attesa oppure sostituendola) in una delle directory che Windows controlla prima della posizione della DLL vera.

Quando l’applicazione viene avviata, Windows trova e carica la DLL malevola prima di raggiungere la posizione della DLL legittima (oppure caricando la ddl diversa se è stata sostituita).

Il codice malevolo all’interno di questa DLL viene quindi eseguito, spesso con gli stessi privilegi dell’applicazione che l’ha caricata.

Obiettivi dell’Attacco

Questa tecnica è popolare tra gli aggressori perché consente di:

Esecuzione Stealthy (Furtiva): Il codice malevolo viene eseguito all’interno del processo di un’applicazione legittima (spesso anche firmata), rendendolo difficile da rilevare dai tradizionali sistemi antivirus o di monitoraggio.

Persistenza: Una volta piazzata, la DLL malevola può garantire che il codice dell’aggressore venga ri-eseguito ogni volta che l’applicazione legittima viene avviata.

Escalation dei Privilegi: Se l’applicazione legittima viene eseguita con privilegi elevati (ad esempio, come SYSTEM), anche il codice malevolo erediterà quegli stessi privilegi.

Esempio di DLL Hijacking substitution

Questo esempio è molto semplice e utilizzaremo Notepad++ per analizzare questo metodo di attacco. 

Andremo a sostituire la libreria originale con una  contenente solo un payload che farà avviare la calcolatrice.

In questo caso usiamo lo script sottostante per generare una nuova DLL dove nel MAIN è presente un payload che verrà avviato.

#include <processthreadsapi.h>
#include <memoryapi.h>

void Payload()
{
  STARTUPINFO si;
  PROCESS_INFORMATION pi;
  
  char cmd[] = "calc.exe";
  
  ZeroMemory(&si, sizeof(si));
  si.cb = sizeof(si);
  ZeroMemory(&pi, sizeof(pi));

  CreateProcess(NULL, cmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
{
  switch (fdwReason)
    {
    case DLL_PROCESS_ATTACH:
      Payload();
      break;
    case DLL_THREAD_ATTACH:
      break;
    case DLL_THREAD_DETACH:
      break;
    case DLL_PROCESS_DETACH:
      break;
    }
  return TRUE;
}

Quindi compiliamo la libreria usando mingw32-gcc.

x86_64-w64-mingw32-gcc -shared -o NppExport.dll version.c

Dopo aver sostituito NppExport.dll e avviato l’applicazione la calcolatrice viene aperta.

Sfortunatamente l’applicazione rileva che qualcosa legato alla libreria e restituisce un errore. 

Il motivo è molto semplice, questa non contiene gli export originali, per cui c’è un controllo che avvisa di questo, ostacolo che vedremo come superare nel passo successivo.

Nonostante questo errore Notepad++ prosegue la sua normale esecuzione.

E’ da considerare che in altri casi questa sostituzione potrebbe dare un errore critico e fermare l’esecuzione dell’applicazione, in quanto contenente funzioni essenziali per applicazione stessa.

Esempio tramite tramite proxy DLL

Nell’esempio precedente è stato visto come compilare una nuova libreria e sostituire a una originale al fine che app esegua del contenuto malevolo. Questa sostituzione però causare il crash dell’applicazione o errori vari.

Per cui vediamo una tecnica di DLL hijacking tramite proxy. Il DLL Hijacking by Proxying (dirottamento di DLL tramite proxy) è una tecnica avanzata di cyberattacco che permette all’aggressore di eseguire codice malevolo all’interno di un’applicazione legittima senza causare il crash o l’interruzione del programma.

Il concetto è molto semplice. 

  1. L’aggressore rinomina la DLL originale (es. libreria.dll in libreria_orig.dll). Successivamente, piazza la sua DLL malevola nella posizione prioritaria, chiamandola con il nome originale (libreria.dll).
  2. L’applicazione app.exe una volta avviata chiede al sistema operativo di caricare legit.dll.
  3. Il S.O. segue l’ordine di ricerca e trova per prima la DLL Malevola (libreria.dll). Quindi carica la DLL malevola nella memoria del processo app.exe.
  4. Il codice d’attacco (il payload dannoso) viene eseguito immediatamente (ad esempio, all’interno della funzione DllMain).
  5. La DLL malevola carica la DLL legittima rinominata (libreria_legit.dll) e la usa come proxy. Tutte le richieste di funzione successive provenienti da app.exe vengono inoltrate alla DLL originale (libreria_legit.dll).
  6. L’applicazione riceve le risposte corrette dalla DLL originale tramite il proxy e continua a funzionare normalmente. L’utente non si accorge del dirottamento.

Qui uno schema semplificato del procedimento:

Analizziamo nella pratica cosa consiste questo attacco, prendiamo per comodità una repo esistente che contiene tutto quello che ci serve a questo scopo.

https://github.com/tothi/dll-hijack-by-proxying

Cloniamo il progetto.

All’interno è presente una libreria base (che abbiamo usato nell’esempio precedente) per esecuzione di un payload una volta che questa viene caricata nell’app.

Preleviamo la DDL da eseguire Hijacking, in questo caso NPPExport.dll che è stata rinominata.

Generaimo attraverso li scoript deng_def.py il file version.def file contenente i reindirizzamenti di esportazione tramite lo script Python

Il file .def contiene una sezione chiamata EXPORTS che elenca tutte le funzioni che la DLL deve esporre, in modo da poterle reindirizzare alla DLL legittima originale.

Già da qui è possibile vedere che vari nomi di funzioni vengono reindirizzati a NppExport_orig.dll.

Per finire compiliamo la libreria attraverso mingw-w64:

Le opzioni di compilazione sono simili al primo esempio, ma in questo andiamo ad aggiungere le definizioni degli export aggiuntivi che questa libreria ha bisogno (version.def)

  • -shared: dice al compilatore di creare una libreria a collegamento dinamico (una DLL su Windows) invece di un eseguibile standard (.exe).
  • -o NppExport.dll: Specifica il nome del file di output.
  • version.def: specifica un file di definizione del modulo (Module Definition File) spiegato in precedenza.
  • ./dll-hijack-by-proxying/version.c: Questo è il file sorgente C che farà aprire la calcolatrice una volta caricata la libreria.

Ora posizioniamo la nuova libreria di fianco a quella originale modificata

NppExport.dll esegiurà il proxy di tutte le chiamate alle funzioni esportate nel file legittimo NppExport_orig.dll evitando che applicazioni segnali malfunzionamenti.

Se eseguiamo il software non verrà dato nessun errore e il codice malevolo eseguito correttamente.

Immagine del sitoManuel Roccon
Ho iniziato la mia carriera occuparmi nella ricerca e nell’implementazioni di soluzioni in campo ICT e nello sviluppo di applicazioni. Al fine di aggiungere aspetti di sicurezza in questi campi, da alcuni anni ho aggiunto competenze inerenti al ramo offensive security (OSCP), occupandomi anche di analisi di sicurezza e pentest in molte organizzazioni.

Lista degli articoli

Articoli in evidenza

Immagine del sito
Notepad++ sotto attacco! Come una DLL fasulla apre la porta ai criminal hacker
Di Manuel Roccon - 05/11/2025

Nel mese di Settembre è uscita una nuova vulnerabilità che riguarda Notepad++. La vulnerabilità è stata identificata con la CVE-2025-56383 i dettagli possono essere consultati nel sito del NIST. L...

Immagine del sito
Pericolo per gli utenti OneDrive: le DLL infette si nascondono nei file condivisi
Di Redazione RHC - 05/11/2025

Gli aggressori stanno utilizzando una tecnica avanzata che implica il caricamento laterale di DLL tramite l’applicazione Microsoft OneDrive. In questo modo riescono ad eseguire codice malevolo senza...

Immagine del sito
Furto del Louvre: Windows 2000 e Windows XP nelle reti oltre che a password banali
Di Redazione RHC - 04/11/2025

I ladri sono entrati attraverso una finestra del secondo piano del Musée du Louvre, ma il museo aveva avuto anche altri problemi oltre alle finestre non protette, secondo un rapporto di audit sulla s...

Immagine del sito
Trump non vuole esportare i chip Nvidia. La Cina risponde: “Tranquilli, facciamo da soli”
Di Redazione RHC - 04/11/2025

Reuters ha riferito che Trump ha detto ai giornalisti durante un’intervista preregistrata nel programma “60 Minutes” della CBS e sull’Air Force One durante il viaggio di ritorno: “I chip pi�...

Immagine del sito
Hanyuan-1: il computer quantistico cinese che funziona a temperatura ambiente e sfida gli USA
Di Redazione RHC - 04/11/2025

Il primo computer quantistico atomico cinese ha raggiunto un importante traguardo commerciale, registrando le sue prime vendite a clienti nazionali e internazionali, secondo quanto riportato dai media...