Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2021-40444 — Mal generatore di DOCX che sfrutta CVE-2021-40444 (RCE di Microsoft Office Word) con side-loading di DLL basato su CAB e catene di attacco RAR/WSF senza CAB per test di penetrazione. | Kitploit
Strumenti/GitHubGitHub/tiagob0b/cve-2021-40444
Generazione di PayloadExploitSfruttamento di Applicazioni WebPenetration TestingGenerazione di ShellcodeBinary Exploitation
GitHubtiagob0b/cve-2021-40444

CVE-2021-40444

Mal generatore di DOCX che sfrutta CVE-2021-40444 (RCE di Microsoft Office Word) con side-loading di DLL basato su CAB e catene di attacco RAR/WSF senza CAB per test di penetrazione.

Vedi Repository
204 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2021-40444 completamente armato

Generatore di docx malevoli per sfruttare CVE-2021-40444 (Remote Code Execution in Microsoft Office Word), funziona con file DLL arbitrari.

Contesto

Sebbene molti PoC siano già presenti su Internet, ho deciso di cimentarmi nell'armare questa vulnerabilità, poiché ciò che ho trovato disponibile mancava di informazioni preziose che vale la pena condividere, considerando anche che Microsoft ha già rilasciato una patch per questa vulnerabilità.

Finora, le uniche risorse preziose che ho visto per creare un generatore completamente funzionante sono:

  • Blog di Ret2Pwn
  • Tweet di j00sean

Le risorse sopra citate delineano molti dei requisiti necessari per creare una catena completa. Per evitare di ripetere troppe informazioni inutili, mi limiterò a riassumere i dettagli rilevanti.

Catena dell'exploit

  1. Il Docx viene aperto
  2. La Relationship salvata in document.xml.rels punta a un html malevolo
  3. Viene avviata l'anteprima di IE per aprire il link HTML
  4. Il JScript all'interno dell'HTML contiene un object che punta a un file CAB e un iframe che punta a un file INF, con il prefisso della direttiva ".cpl:"
  5. Il file cab viene aperto, il file INF viene archiviato nella directory %TEMP%\Low
  6. A causa di una vulnerabilità di Path traversal (ZipSlip) nel CAB, è possibile archiviare l'INF in %TEMP%
  7. Quindi, il file INF viene aperto con la direttiva ".cpl:", causando il side-loading del file INF tramite rundll32 (se si tratta di una DLL)

Requisiti trascurati

Ci sono parecchi requisiti trascurati perché questo exploit funzioni, che hanno fatto sì che anche buoni PoC, come quello di lockedbyte, fallissero nel funzionare correttamente.

Forse nessuno li ha "rilasciati" esplicitamente per evitare che la vulnerabilità fosse sfruttata ulteriormente. Ma ora è stata patchata, quindi non dovrebbe causare troppi problemi rilasciare i dettagli.

File HTML

Come da questo tweet di Will Dormann, l'HTML dovrebbe avere una dimensione di almeno 4096 byte per attivare la "Preview" in MS Word.

File CAB

Il file CAB deve essere patchato a livello di byte per evitare errori di estrazione e per ottenere lo ZipSlip:

  • filename.inf dovrebbe diventare ../filename.inf
  • filename.inf dovrebbe essere esattamente <12-char>.inf Non è proprio vero, la parte importante è modificare coffCabStart
  • CFFOLDER.typeCompress dovrebbe essere 0 (non compresso)
  • CFFOLDER.coffCabStart dovrebbe essere aumentato di 3 (a causa dell'aggiunta di '../'')
  • CFFOLDER.cCfData dovrebbe essere 2
  • CFFILE.cbFile dovrebbe essere maggiore dell'intero CFHEADER.cbCabinet
  • CFDATA.csum dovrebbe essere ricalcolato (o azzerato) [OPZIONALE]

Le ragioni di questi vincoli sono molte, e non ho passato abbastanza tempo per comprenderli a fondo tutti, ma vediamo i più importanti:

  • TypeCompress: Se il CAB è compresso, il trucco di aprirlo in un object per attivare la scrittura dell'INF fallirà Falso, sono riuscito a ottenere lo stesso risultato con un campione compresso MSZIP
  • CoffCabStart: CoffCabStart fornisce la posizione assoluta della prima struttura CFDATA, poiché abbiamo aggiunto un '../', dovremmo aumentare questo valore di 3 per puntare al file (è più un'ipotesi)
  • cCfData: Poiché c'è un solo file, dovremmo avere solo 1 CFDATA, non sono troppo sicuro del perché debba essere impostato a 2 In effetti, possiamo lasciarlo a 1
  • cbFile: Curiosamente, se l'estrazione del CAB termina senza errori, il file INF verrà contrassegnato per l'eliminazione da WORD, rovinando l'exploit. L'unico modo per prevenirlo è far credere a WORD che l'estrazione sia fallita. Se il valore di cbFile è definito come maggiore del file cabinet stesso, l'estrattore raggiungerà un EOF prima di leggere tutti i byte definiti in cbFile, generando un errore di estrazione.
  • [OPZIONALE] Questo valore sembra non essere controllato da MS Word. In ogni caso, per avere un CAB corretto, il valore csum dovrebbe essere ricalcolato. Fortunatamente, come notato da j00sean e secondo la documentazione MS, questo valore può essere 0

NOTA1: Defender ora rileva se il file CAB contiene un PE utilizzando il valore _IMAGE_DOS_HEADER.e_magic come firma, impedendo potenzialmente che i file PE vengano incorporati nel CAB. Può questa firma essere aggirata? Non ne sono sicuro ma, come osservato in precedenza, questa è una vulnerabilità patchata, quindi non ho intenzione di investire molto altro tempo su questo. Sta al lettore curioso sviluppare ulteriormente la cosa.

NOTA2: La patch Microsoft blocca schemi URI arbitrari, apparentemente usando un approccio blacklist (questa è solo una supposizione)

Attacco DLL

La principale catena di attacco associata a CVE-2021-40444 è l'attacco DLL caricato tramite lo schema URI .cpl. Per sfruttarlo, un attaccante deve generare una DLL appositamente creata. Se vuoi provarlo, prova il mio script evildll-gen.

JScript, VBScript, Javaw, MSIexec, ...

Come notato da Max Maluin, è possibile interagire con diversi tipi di file abusando di IE e dell'URI associato basato sull'estensione del file. Sebbene questo possa essere un buon modo per sfruttare IE, ha dei limiti.

In effetti, va notato che il metodo usato nell'exploit per scaricare file si basa sugli aggiornamenti dei controlli ActiveX e non può essere usato per scaricare file arbitrari. Secondo la documentazione Microsoft, il tag codebase può puntare solo ad alcuni tipi di file: OCX, INF e CAB.

Anche se possiamo scaricare direttamente un file OCX o INF, non possiamo comunque essere sicuri di scaricare il file nella posizione giusta all'interno del sistema. Con l'exploit CAB, è possibile spostare il file .inf in un percorso noto usando il path traversal, ma in qualsiasi altro caso il file verrà archiviato in una directory casuale, rendendo praticamente impossibile referenziarlo.

Ad oggi, non ho trovato un modo per concatenare download ed esecuzione SENZA un file CAB.

Nota: Parlando solo di IE, l'HTML smuggling potrebbe essere uno scenario possibile per sfruttare la vulnerabilità.

Attacco senza CAB usando file RAR ibrido

Questa tecnica è stata divulgata per la prima volta da Eduardo Braun su Twitter e ulteriormente spiegata in questo documento.

Si noti che usando questa tecnica, la catena di attacco è leggermente diversa. Questo attacco richiede che l'utente scarichi un file RAR appositamente creato, ottenuto concatenando uno script WSF valido e un file RAR valido. Una volta aperto, il RAR conterrà un DOCX con un riferimento a un HTML, che a sua volta tenterà di caricare il file RAR come script WSF.

Per riassumere:

  1. Il file RAR appositamente creato viene scaricato (probabilmente nella cartella Download)
  2. Il DOCX viene estratto e aperto
  3. La Relationship salvata in document.xml.rels punta a un html malevolo
  4. Viene avviata l'anteprima di IE per aprire il link HTML
  5. Il JScript all'interno dell'HTML contiene uno script/iframe che punta al file RAR, con il prefisso dello schema URI ".wsf:"
  6. Poiché il RAR è stato progettato per essere contemporaneamente un RAR valido e uno script WSF valido, lo script viene eseguito
Scarica lo strumento