
Proxy de API de memoria a través de mozglue.dll firmado
PoC de investigación de detección: proxy de operaciones de memoria (mapeo de memoria, asignación de memoria local) a través de mozglue.dll firmado por Mozilla para que las devoluciones de llamada del kernel atribuyan el módulo de usuario final a una DLL de proveedor confiable (firmada por Mozilla) en lugar de un módulo no confiable o sin firmar.
Ambos son exportaciones MFBT_API de mozglue.dll (requiere instalación de Firefox):
| Modo | Exportación | Código fuente de Mozilla |
|---|---|---|
inject | mozilla::MapRemoteViewOfFile | WindowsMapRemoteView.cpp · encabezado |
alloc | MozVirtualAlloc | mozjemalloc.cpp · mozmemory_wrap.h |
Nombres alterados (mangled) de MSVC x64:
?MapRemoteViewOfFile@mozilla@@YAPEAXPEAX0_K01KK@Z
MozVirtualAlloc
MSYS2 mingw-w64:
./build.sh
./build.sh shellcode # opcional: reconstruir shellcode/msgbox.bin
Se incluye un mozglue_gate.exe precompilado en el repositorio para pruebas rápidas de ingeniería de detección (64 bits, requiere Firefox instalado).
# Mapeo entre procesos + APC (MapRemoteViewOfFile)
.\mozglue_gate.exe inject <pid> shellcode\msgbox.bin
# Asignación RWX local (MozVirtualAlloc)
.\mozglue_gate.exe alloc --size 10240
shellcode/msgbox.bin muestra "Hello from Mozglue" / título gluegate (sin proceso hijo).
Requiere Firefox clásico: C:\Program Files\Mozilla Firefox\mozglue.dll (o --mozglue / MOZGLUE_DLL).
El módulo de usuario final está firmado/es de confianza de Mozilla Corporation
MapViewOfFile
VirtualAlloc
mozglue.dll!MozVirtualAlloc o mozglue.dll!?MapRemoteViewOfFile en la pila de llamadas de un proceso sin firmar o no firmado por Mozilla.mozilla.dll (especialmente uno ya instalado en Program Files).Solo para investigación de seguridad autorizada y pruebas de detección.