
Proxy delle API di memoria tramite mozglue.dll firmata
PoC di ricerca per rilevamento: operazioni di memoria proxy (mappatura della memoria, allocazione di memoria locale) tramite mozglue.dll firmato da Mozilla in modo che le callback del kernel attribuiscano il modulo utente finale a una DLL di un vendor fidato (firmato Mozilla) invece che a un modulo non fidato o non firmato.
Entrambi sono esportazioni MFBT_API da mozglue.dll (richiede installazione di Firefox):
| Modalità | Esportazione | Sorgente Mozilla |
|---|
inject | mozilla::MapRemoteViewOfFile | WindowsMapRemoteView.cpp · header |
alloc | MozVirtualAlloc | mozjemalloc.cpp · mozmemory_wrap.h |
Nomi mangled MSVC x64:
?MapRemoteViewOfFile@mozilla@@YAPEAXPEAX0_K01KK@Z
MozVirtualAlloc
MSYS2 mingw-w64:
./build.sh
./build.sh shellcode # facoltativo: ricostruisci shellcode/msgbox.bin
Un mozglue_gate.exe precompilato è incluso nel repository per test rapidi di detection-engineering (64-bit, richiede Firefox installato).
# Mappatura cross-process + APC (MapRemoteViewOfFile)
.\mozglue_gate.exe inject <pid> shellcode\msgbox.bin
# Allocazione RWX locale (MozVirtualAlloc)
.\mozglue_gate.exe alloc --size 10240
shellcode/msgbox.bin mostra "Hello from Mozglue" / didascalia gluegate (nessun processo figlio).
Richiede Firefox classico: C:\Program Files\Mozilla Firefox\mozglue.dll (o --mozglue / MOZGLUE_DLL).

Il modulo utente finale è firmato e considerato fidato da Mozilla Corporation
MapViewOfFile

VirtualAlloc

mozglue.dll!MozVirtualAlloc o mozglue.dll!?MapRemoteViewOfFile nello stack di chiamate da un processo non firmato o non firmato da Mozilla.mozilla.dll (soprattutto quello già installato in Program Files).Solo per ricerca di sicurezza autorizzata e test di rilevamento.