Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2019-11708 — 完全なエクスプロイトチェーン (CVE-2019-11708 & CVE-2019-9810) - Windows 64ビット上のFirefoxに対する。 | Kitploit
ツール/GitHubGitHub/0vercl0k/cve-2019-11708
エクスプロイトウェブアプリケーション悪用ペイロード開発Archived
GitHub0vercl0k/cve-2019-11708

CVE-2019-11708

完全なエクスプロイトチェーン (CVE-2019-11708 & CVE-2019-9810) - Windows 64ビット上のFirefoxに対する。

リポジトリを見る
624786年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Full chain exploit for CVE-2019-11708 & CVE-2019-9810

これは、Windows 64 ビット上の Firefox を標的としたフルブラウザ侵害エクスプロイトチェーン (CVE-2019-11708 & CVE-2019-9810) です。CVE-2019-9810 を使用してコンテンツプロセスと親プロセスの両方でコード実行を獲得し、CVE-2019-11708 を使用して親プロセスを任意の URL にブラウズさせるように仕向けます。

bigint

私は以前、A journey into IonMonkey: root-causing CVE-2019-9810 の記事と関連する github リポジトリ で、CVE-2019-9810 の根本原因と悪用について説明しました。

CVE-2019-11708 は、mfsa2019-19 のセキュリティ勧告によって修正され、Mozilla Bug Tracker では Bug 1559858 として割り当てられました。問題の要約は以下のとおりです:

root@kitploit:~
Insufficient vetting of parameters passed with the Prompt:Open IPC message between child
and parent processes can result in the non-sandboxed parent process opening web content
chosen by a compromised child process. When combined with additional vulnerabilities this
could result in executing arbitrary code on the user's computer.

この問題に対処するコミットはこちらで確認できます:Clean up prompt open calls in Prompter.jsm。

問題の概要

問題の詳細な解説とエクスプロイトで使用された手法は、doar-e.github.io で近日公開予定の記事で説明されます。

構成

エクスプロイト は Windows 19H2 64-bit でテストされ、カスタムビルドの Firefox をターゲットにしているため、他の環境で動作させるには多少の作業が必要でも驚かないでください :) ただし、コンパイルせずにエクスプロイトを実行したいだけの場合は、release/firefox-68.0a1.en-US.win64.7z にアップロードしたパッケージ化されたブラウザを用意しました。これには js.exe シェルと、js.exe、firefox.exe、xul.dll のプライベートシンボル情報も含まれています。

このエクスプロイトは、Firefox で BigInt のサポートが有効になっていることを前提としています。これは、about:config で javascript.options.bigint を切り替えることで設定できます。

bigint

エクスプロイトプロセスでは、データ破損を使用して特権 JS 実行(別名ゴッドモード)を獲得します。これは、Jüri Aedla による Pwn2Own2014 で使用された技術 の実装であり、以前に CVE-2019-9810 を悪用した方法とは非常に異なり(はるかに便利です)。つまり、エクスプロイトチェーン中に制御フローが乗っ取られることはありません。

  1. エクスプロイトは CVE-2019-9810 を使用してゴッドモードのデータ破損を実行し、現在のページをリフレッシュします。
  2. 特権 JS を実行できるようになると、現在のフレームの メッセージマネージャー を見つけ、CVE-2019-11708 をトリガーします。
  3. 親プロセスが任意のページにアクセスしたので、再び CVE-2019-9810 を悪用し、そこで特権 JS 実行も獲得します。
  4. この時点でブラウザ全体(サンドボックスを含む)が侵害されます。最初の段階では、slimeshady.exe と呼ばれるローカルペイロードをダウンロードしてドロップします。このペイロードは payload/ にあり、GDI を使用してデスクトップ上にアニメーション化されたスライム・シェイディのスプライトを描画します。また、エクスプロイトはすべてのタブ(既存のタブと新しく作成されたタブの両方)に フレームスクリプト (特権 JS)をドロップして注入し、ナビゲーション全体をバックドア化します。タブのバックドア化は、効果としては CVE-2019-9810/payload と似ています(すべてのタブに任意の JS を注入する)が、今回は ハッキーで汚いフック ではなく、Firefox の機能(Services.mm.loadFrameScript)を使用して実装されています。

実際には、上記では説明されていないさらに微妙な詳細が多数あります。興味があれば、真実を探しに行き、ソースコードや将来の記事を読んでみてください :)

更新 2020年6月13日: @rtfingc / Issue #1 によると、Mozilla は 2020年2月10日のコミットでこのエクスプロイトで示されたデータ破損を緩和しました: Bug 1602485。

ペイロードのビルド

ペイロードをビルドするには、VS 2017 x64 プロンプトから nmake を実行するだけです。

root@kitploit:~
CVE-2019-11708\payload>nmake

Microsoft (R) Program Maintenance Utility Version 14.16.27034.0
Copyright (C) Microsoft Corporation.  All rights reserved.

        taskkill /f /im payload.exe
ERROR: The process "payload.exe" not found.
        if not exist .\bin mkdir bin
        python src\genheaders.py sprites
        cl /O1 /nologo /ZI /W3 /D_AMD64_ /DWIN_X64 /sdl /Febin\payload.exe src\payload.cc /link /nologo /debug:full user32.lib
payload.cc
        del *.obj *.pdb *.idb
        if exist .\bin del bin\*.exp bin\*.ilk bin\*.lib
        start .\bin\payload.exe

これにより、payload\bin ディレクトリ内に payload.exe / payload.pdb ファイルが作成されます。

Firefox のビルド

このエクスプロイトは、以下のリビジョン ID に同期されたローカルの Windows ビルドに対して作成しました: 2abb636ad481768b7c88619080cf224b2c266b2d (自分でビルドしたくない場合は、ここにビルドをアップロードしました: release/firefox-68.0a1.en-US.win64.7z):

root@kitploit:~
$ hg --debug id -i
2abb636ad481768b7c88619080cf224b2c266b2d

そして、以下の mozconfig ファイルを使用しました:

root@kitploit:~
. "$topsrcdir/browser/config/mozconfigs/win64/common-win64"

ac_add_options --disable-crashreporter
ac_add_options --enable-debug-symbols

. "$topsrcdir/build/mozconfig.clang-cl"
. "$topsrcdir/build/mozconfig.lld-link"

# Use the clang version in .mozbuild
CLANG_LIB_DIR="$(cd ~/.mozbuild/clang/lib/clang/*/lib/windows && pwd)"
export LIB=$LIB:$CLANG_LIB_DIR

ac_add_options --enable-js-shell
ac_add_options --enable-jitspew
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-ff64
ツールをダウンロード