
検出研究用PoC: Mozillaの署名付き mozglue.dll を介してメモリ操作(メモリマッピング、ローカルメモリ割り当て)をプロキシすることで、カーネルコールバックが最終ユーザーモジュールを、信頼されていないモジュールや署名なしモジュールではなく、信頼されたベンダーDLL(Mozilla署名)に帰属させます。
両方とも mozglue.dll の MFBT_API エクスポート です(Firefoxのインストールが必要)。
| Mode | Export | Mozilla source |
|---|---|---|
inject | mozilla::MapRemoteViewOfFile | WindowsMapRemoteView.cpp · header |
alloc | MozVirtualAlloc | mozjemalloc.cpp · mozmemory_wrap.h |
x64 MSVC マングル名:
?MapRemoteViewOfFile@mozilla@@YAPEAXPEAX0_K01KK@Z
MozVirtualAlloc
MSYS2 mingw-w64:
./build.sh
./build.sh shellcode # optional: rebuild shellcode/msgbox.bin
迅速な検知エンジニアリングテスト用に、ビルド済みの mozglue_gate.exe がリポジトリに含まれています(64ビット版、Firefoxのインストールが必要)。
# Cross-process map + APC (MapRemoteViewOfFile)
.\mozglue_gate.exe inject <pid> shellcode\msgbox.bin
# Local RWX alloc (MozVirtualAlloc)
.\mozglue_gate.exe alloc --size 10240
shellcode/msgbox.bin は 「Hello from Mozglue」 とキャプション gluegate をポップアップ表示します(子プロセスなし)。
クラシックFirefoxが必要: C:\Program Files\Mozilla Firefox\mozglue.dll(または --mozglue / MOZGLUE_DLL)。
最終ユーザーモジュールは Mozilla Corporation の署名/信頼済みです
MapViewOfFile
VirtualAlloc
mozglue.dll!MozVirtualAlloc または mozglue.dll!?MapRemoteViewOfFile が、署名なしまたは Mozilla 署名プロセス以外のコールスタックに含まれる。mozilla.dll を読み込んでいる(特に programfiles 内に既にインストールされているもの)。許可されたセキュリティ研究および検知テストの目的にのみ使用してください。