Analisi Tecnica di un Campione PDF Adobe Acrobat con JavaScript Multi-Stage
Panoramica
Questo repository pubblica un'analisi di reverse-engineering incentrata sul codice di un campione PDF dannoso che incorpora JavaScript Adobe Acrobat a stadi.
Il campione analizzato utilizza un campo modulo nascosto come loader iniziale, ricostruisce il corpo di un secondo stadio JavaScript tramite la decodifica dei flussi Acrobat, esegue un triage dell'ambiente e un abuso delle interfacce specifiche di Acrobat, stabilisce uno staging basato sulla rete e infine decripta, decompatta ed esegue un payload di terzo stadio differito.
L'obiettivo di questo repository è l'analisi difensiva e la documentazione. L'attenzione è rivolta al comportamento osservabile, alla struttura del codice recuperato e alla ricostruzione della catena di attacco.
Risultati Chiave
- Il PDF contiene un launcher Stage-1 incorporato memorizzato in un campo modulo nascosto (
Btn1).
- Il JavaScript Stage-2 recuperato disabilita i gruppi di contenuto opzionali per ridurre gli indicatori visivi.
- Il campione costruisce i propri wrapper di esecuzione privilegiata attorno alle API Acrobat come
app.beginPriv() e app.endPriv().
- Esegue un triage del target, tra cui:
viewerVersion
viewerType
platform
- inferenza del sistema operativo basata sul filesystem
- parsing dell'intestazione PE per rilevare Reader x64
- Configura primitive orientate allo sfruttamento che coinvolgono getter costruiti ad hoc e interfacce native Acrobat come
ANShareFile(...) e ANFancyAlertImpl(...).
- Costruisce URL beacon ricchi di telemetria per un endpoint remoto hardcoded e utilizza feed JavaScript RSS come parte del flusso di staging.
- Il percorso finale del loader visibile è esplicito:
- decodifica hex di
bird1
- decrittazione AES-CTR
- inflate DEFLATE
- memorizzazione come
global.final_js
- esecuzione tramite
eval(...) differito
Riepilogo della Catena di Attacco
- Il JavaScript del PDF legge il campo nascosto
Btn1
- Stage-1 decodifica e pianifica Stage-2
- Stage-2 inizializza la logica offuscata e nasconde i livelli OCG
- L'ambiente target viene identificato tramite fingerprinting
- Viene tentata la configurazione nativa Acrobat orientata allo sfruttamento
- Vengono preparati i canali di telemetria e staging
- Lo script interroga il materiale del payload popolato a runtime
- Il contenuto crittografato viene decrittato e decompresso in memoria
- Un payload JavaScript di terzo stadio viene eseguito tramite
setTimeOut
Perché Questo Campione È Rilevante
Il campione è significativo perché non è un semplice PDF statico con frammenti di script incorporati. Si comporta come un loader multi-stage strutturato che:
- qualifica l'ambiente target
- abusa delle funzionalità privilegiate specifiche di Acrobat
- prepara la consegna del payload successivo
- ricostruisce il codice successivo interamente in memoria
Questa combinazione lo rende rilevante sia per l'analisi dei malware PDF sia per lo studio del comportamento di fiducia e staging del JavaScript di Acrobat.
Analisi Dettagliata
L'Analisi Dettagliata è disponibile qui.